Múltiples buffers, mismo archivo, diferentes configuraciones


10

¿Es posible editar un archivo con diferentes configuraciones al mismo tiempo? Más precisamente, me gustaría tener múltiples buffers en la misma instancia de Vim que tengan el mismo contenido (cambiar un buffer afecta el contenido del otro buffer inmediatamente), pero diferentes posiciones del cursor, diferentes marcas, diferentes resaltados de sintaxis, etc.

Los casos de uso comunes incluyen editar diferentes partes del mismo archivo de manera independiente (sin, por ejemplo, ingresar al modo visual en una instancia, romper la selección del modo visual actual en la otra instancia) y editar archivos de formato mixto (por ejemplo, HTML y Javascript) sin tener que cambiar la configuración . (Un enfoque alternativo para el segundo caso de uso sería cambiar la configuración automáticamente en función de la posición del cursor, pero eso está fuera del alcance de esta pregunta).

Un editor cuya mención podría sorprender llama a esto "amortiguadores indirectos".

Respuestas:


2

El uso de varias ventanas para ver el mismo búfer le permite ver, editar, seleccionar, ... en diferentes partes de un búfer.

El resaltado de sintaxis es un asunto más complicado, dependiendo de lo que desee exactamente. Vim ya admite resaltar diferentes partes de un búfer con diferentes sintaxis. Por ejemplo, si tiene un búfer de tipo de archivo html, las <style>etiquetas se resaltarán como CSS, las <script>etiquetas se resaltarán como javascript, etc. Esto se hace utilizando el :syn includecomando y luego definiendo las regiones de sintaxis relevantes a las que se debe aplicar la sintaxis.

Una alternativa es usar el :ownsyntaxcomando para especificar el resaltado de sintaxis que se usa para una ventana específica.

Las marcas son el punto adhesivo. Las marcas en minúsculas son específicas de un búfer y las marcas en mayúsculas son globales, pero no hay marcas específicas de ventanas.


1
Si uso varias ventanas, ¿eso significa que tienen que estar en pantalla todo el tiempo? ¿Qué sucede si cierro una ventana mientras otra ventana muestra el mismo búfer? ¿Se pierde la posición del cursor en esa ventana? ¿Hay algo parecido :ownsyntaxa otras configuraciones, como sangría, comando del compilador, etc.?
Gilles 'SO- deja de ser malvado'

@Gilles Puede tener dos ventanas que nunca están juntas en la pantalla colocándolas en pestañas separadas, manteniendo así la configuración específica de la ventana, la posición del cursor, etc. Esto podría ayudar, dependiendo de su caso de uso específico.
Rico
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.