¿Cómo mostrar la columna actual en la barra de estado en vim?
188
Me gustaría mostrar la columna actual en la barra de estado, como es común en muchos otros editores de texto. Por ejemplo, es bueno saber si está alrededor de la columna 80 o superior.
¿Cómo mostrar la columna actual en la barra de estado?
Si desea mostrar la columna actual del cursor, escriba: echo col ('.').
SibiCoder
Respuestas:
219
Pruebe si la opción de "regla" es lo que está buscando. En mi computadora en la parte inferior derecha muestra la línea y la columna donde tengo el cursor.
:set ruler
EDITAR A COMENTARIOS :
De la ayuda de vim (comando :help ruler):
Si el número de caracteres que se muestra es diferente del número de bytes en el texto (por ejemplo, para una TAB o un carácter de varios bytes), se muestran la columna de texto (número de bytes) y la columna de la pantalla, separadas por un guión.
Puedes intentar cambiarlo con la rulerformatopción, como:set rulerformat=%l,%v
Sí, algo así. Pero eso muestra un valor extraño, por ejemplo 23,62-68, donde 23 parecen ser la línea. ¿Cómo debo interpretar 62-68para la columna?
Jonas
77
62 cuenta las pestañas como un carácter, 68 cuenta las pestañas expandidas
RedGrittyBrick
1
Del comando ': regla de ayuda': "Si el número de caracteres que se muestra es diferente del número de bytes en el texto (por ejemplo, para una TAB o un carácter de varios bytes), tanto la columna de texto (número de bytes) como la pantalla se muestran columnas separadas por un guión ". Puede intentar cambiarlo con la opción 'rulerformat', como ': set rulerformat =% l,% v'
Birei
rulerno funciona con ventanas divididas en Vim.
Mihai
@Jonas No solo pestañas, como dijo RedGrittyBrick, sino también caracteres versus bytes. Esto es muy evidente en los archivos UTF-8 donde un glifo de un solo carácter tiene un punto de código de varios bytes. Por ejemplo, el latín eñe (n con tilde sobre él, pronunciado EN-sí) es un glifo de un solo carácter pero toma dos bytes para representar el punto de código (\ xC3B1), y un tercio (1/3) es un glifo de un solo carácter con un punto de código de tres bytes (\ xE28593).
Esto no funciona para mi. Probablemente necesito algunas configuraciones más.
Jonas
3
Jonas, es posible que deba usar el set laststatus=2en su .vimrcpara mostrar siempre la línea de estado. (0 -> nunca muestra la línea de estado, 1 -> solo si hay al menos dos ventanas, 2 -> siempre muestra la línea de estado).
pabuisson
Usé lo siguiente para proporcionar espacio antes de esto y de las cosas anteriores en la línea de estado: establecer línea de estado + = \ col: \% c,
Esta solución tiene algo ordenado, que diferencia Column y VisibleColumn. Los caracteres no imprimibles se muestran en 2 columnas, pero deben contarse como uno. Si los caracteres no imprimibles la salida es el siguiente: RealColumn-VisibleColumn, Line, Word, Character and Byte.
mxlian
17
O bien, deje la 'regla' sin definir, una ganancia de rendimiento, y presione CTRL-G cuando desee ver la columna actual.
Golpear Ctrl-Anything no suena como una ganancia de rendimiento. Estamos escribiendo personajes. Ningún humano tiene dedos y ojos que vuelan lo suficientemente rápido como para ver este tipo de diferencia de rendimiento.
macetw
10
Me depreciaría usando set ruler porque creo que no es compatible con las opciones de la línea de estado, por ejemplo, si configura la línea de estado para mostrar la ruta completa del archivo en combinación con set ruler
set statusline+=%F
set ruler
Entonces NO muestra el número de columna, sino solo la ruta completa del archivo en la barra de estado. Sin embargo, si pones lo siguiente en tu .vimrc
set statusline+=%F\ %l\:%c
Mostrará todo correctamente, es decir, el
[Ruta de archivo / nombre de archivo] [número de lino]: [número de columna]
Para las otras personas que buscan esta respuesta y no están acostumbradas a trabajar con VIm, personalmente la respuesta más simple que he encontrado es agregar esta línea al final de su archivo .vimrc en su directorio de inicio:
Respuestas:
Pruebe si la opción de "regla" es lo que está buscando. En mi computadora en la parte inferior derecha muestra la línea y la columna donde tengo el cursor.
EDITAR A COMENTARIOS :
De la ayuda de vim (comando
:help ruler
):Puedes intentar cambiarlo con la
rulerformat
opción, como:set rulerformat=%l,%v
fuente
23,62-68
, donde 23 parecen ser la línea. ¿Cómo debo interpretar62-68
para la columna?ruler
no funciona con ventanas divididas en Vim.Vea
:help statusline
las muchas opciones disponibles.Tengo esto en mi
~/.vimrc
entre un montón de otras directivas:que salidas
en mi statusline
No tengo
set ruler
.fuente
set laststatus=2
en su.vimrc
para mostrar siempre la línea de estado. (0 -> nunca muestra la línea de estado, 1 -> solo si hay al menos dos ventanas, 2 -> siempre muestra la línea de estado).Otra forma de hacer esto es hacer 'g Ctrl-G', que imprime la posición actual del cursor de cinco maneras: Columna, Línea, Palabra, Carácter y Byte. (de http://vimdoc.sourceforge.net/htmldoc/editing.html#g_CTRL-G )
fuente
RealColumn-VisibleColumn, Line, Word, Character and Byte
.O bien, deje la 'regla' sin definir, una ganancia de rendimiento, y presione CTRL-G cuando desee ver la columna actual.
fuente
Me depreciaría usando set ruler porque creo que no es compatible con las opciones de la línea de estado, por ejemplo, si configura la línea de estado para mostrar la ruta completa del archivo en combinación con set ruler
set statusline+=%F
set ruler
Entonces NO muestra el número de columna, sino solo la ruta completa del archivo en la barra de estado. Sin embargo, si pones lo siguiente en tu .vimrc
set statusline+=%F\ %l\:%c
Mostrará todo correctamente, es decir, el
[Ruta de archivo / nombre de archivo] [número de lino]: [número de columna]
fuente
Para las otras personas que buscan esta respuesta y no están acostumbradas a trabajar con VIm, personalmente la respuesta más simple que he encontrado es agregar esta línea al final de su archivo .vimrc en su directorio de inicio:
set ruler
fuente