El resaltado de sintaxis falla en clone-indirecta-búfer-otra-ventana

7

Normalmente uso buffers indirectos mientras edito el código python en modo python, los creo ejecutando clone-indirect-buffer-other-window. Si bien el resaltado de sintaxis del búfer principal se ve bien, a veces es incorrecto en el indirecto. Específicamente, parece que algunas citas de cierre se ignoran y los fragmentos grandes de mi código se colorean como si fueran parte de una cadena literal larga.

No he encontrado referencias de esto en otra parte, y no tengo idea de por qué podría estar sucediendo. ¿Alguien sabe por qué es esto y / o cómo resolverlo?

Esta pregunta podría estar relacionada, ya que no menciona los búferes indirectos (solo tengo este problema con ellos), y también mi búfer indirecto no se actualiza al resaltado de sintaxis adecuado incluso si espera varios minutos.

jmlorenzi
fuente
¿Por qué estás usando un buffer indirecto en primer lugar? Puede mostrar el búfer principal en dos ventanas diferentes, si eso es lo que busca.
Lindydancer
1
Si el problema existe con la versión pública más reciente de Emacs, considere presentar un informe de error con la mayor cantidad de detalles posible sobre el problema. Si está utilizando una versión anterior de Emacs, intente la versión pública más reciente. Si está utilizando Emacs Trunk, también considere presentar un informe de error con muchos detalles.
leyes
Los búferes indirectos de @Lindydancer son más útiles si quiero mantener abiertos dos lugares fijos de un búfer largo después de cambiar mis ventanas a otros búferes
jmlorenzi
@lawlist Sí, jugaré para obtener más detalles y enviar el error. Acabo de reproducir el error con inemacs -q
jmlorenzi

Respuestas:

0

Los amortiguadores indirectos apestan. Pueden parecer "justo lo que necesito", pero es muy raro el caso, y luego, tarde o temprano te encuentras con problemas. IOW, creo que son una molestia atractiva .

Le recomiendo que pruebe y descubra por qué quiere usar memorias intermedias indirectas y luego intente buscar otras formas de obtener el mismo resultado.

Por ejemplo, tú dices:

indirect buffers are more useful if I want to keep two fixed places
of a long buffer open after switching my windows to other buffers

Hay muchas otras formas que son mucho menos intrusivas que el uso de buffers indirectos. Por ejemplo, usando registros , marcadores o tal vez con un paquete que intenta recordar qué punto se usó para sus buffers individualmente en cada ventana. Por ejemplo, en la rama maestra de Emacs ahora hemos habilitado switch-to-buffer-preserve-window-pointde forma predeterminada, lo que debería proporcionar parte del comportamiento que estaba buscando a través de buffers indirectos.

Stefan
fuente
1
Esto no proporciona una respuesta a la pregunta. Para criticar o solicitar una aclaración de un autor, deje un comentario debajo de su publicación. - De la opinión
erikstokes
Si no lo reconoce como una respuesta válida, es porque no está lo suficientemente familiarizado con los buffers indirectos.
Stefan
@Stefan, aunque tenga razón, tampoco está siguiendo el formato solicitado de este sitio: si puede responder la pregunta, escriba una respuesta. Si la pregunta no es válida y debe cambiarse, escriba un comentario.
Trevoke
La pregunta es definitivamente válida, y la he escuchado muchas veces, por eso creo que es importante responderla tal como es, en lugar de tratar de lograr que el autor la "arregle". Prefiero perder algunos puntos de repetición que seguir dogmáticamente alguna política.
Stefan
1
Estoy de acuerdo con Stefan. La pregunta y la respuesta son válidas. La respuesta podría formularse más neutral. Por ejemplo, "Los amortiguadores indirectos apestan." Podrían reemplazarse por "Los amortiguadores indirectos".
Tobias
0

Puede probar el paquete Just Another Cloning .

Instalación: poner jac.elen cualquier directorio de su load-pathy poner

 (autoload 'jac "jac")

en su archivo de inicio.

Uso: con el búfer que desea clonar, escriba M-x jac RET.

Copia el contenido del búfer del búfer original y sincroniza las modificaciones de texto de ambos búferes, pero no toca las propiedades del texto. De esa forma, Fontlock puede hacer su trabajo en ambos buffers de forma independiente. Eso hace posible diferentes modos principales, incluso el resaltado posible.

Tal vez, también evita el error al resaltar diferentes regiones de un archivo phyton. (Solo inténtalo.)

Tobias
fuente