Como mostrar a coluna atual na barra de status no vim?
188
Gostaria de mostrar a coluna atual na barra de status, como é comum em muitos outros editores de texto. Por exemplo, é bom saber se você está na coluna 80 ou acima.
Se você deseja mostrar a coluna atual do cursor, digite: echo col ('.').
SibiCoder # 26/16
Respostas:
219
Tente se definir a opção 'régua' é o que você está procurando. No meu computador, no canto inferior direito, mostra a linha e a coluna em que tenho o cursor.
:set ruler
EDITAR COMENTÁRIOS :
Com a ajuda do vim (comando :help ruler):
Se o número de caracteres exibidos for diferente do número de bytes no texto (por exemplo, para um caractere TAB ou de vários bytes), a coluna de texto (número de bytes) e a coluna da tela serão exibidas, separadas por um traço.
Você pode tentar alterá-lo com a rulerformatopção, como:set rulerformat=%l,%v
Sim, tipo isso. Mas isso está mostrando um valor estranho, por exemplo, 23,62-68onde 23 parecem ser a linha. Como devo interpretar 62-68para a coluna?
Jonas
7
62 está a contar abas como um personagem, 68 está a contar abas expandidas
RedGrittyBrick
1
Do comando ': help ruler': "Se o número de caracteres exibidos for diferente do número de bytes no texto (por exemplo, para um caractere TAB ou de vários bytes), tanto a coluna de texto (número de bytes) quanto a tela coluna são mostrados, separados por um traço ". Você pode tentar alterá-lo com a opção 'rulerformat', como ': set rulerformat =% l,% v'
Birei
rulernão funciona com janelas divididas no Vim.
Mihai
@ Jonas Não apenas guias, como disse o RedGrittyBrick, mas também caracteres versus bytes. Isso é muito aparente nos arquivos UTF-8, nos quais um glifo de caractere único possui um ponto de código de vários bytes. Por exemplo, o eñe latino (n com o til pronunciado EN-sim) é um glifo de caractere único, mas leva dois bytes para representar o ponto de código (\ xC3B1) e um terço (1/3) é um glifo de caractere único com um ponto de código de três bytes (\ xE28593).
Luv2code
27
Veja :help statuslineas muitas opções disponíveis.
Eu tenho isso no meu ~/.vimrcentre um monte de outras diretivas:
Isso não funciona para mim. Eu provavelmente preciso de mais algumas configurações.
Jonas
3
Jonas, talvez seja necessário usar o set laststatus=2no seu .vimrcpara exibir sempre a linha de status. (0 -> nunca exibe a linha de status, 1 -> somente se houver pelo menos duas janelas, 2 -> sempre exibe a linha de status).
pabuisson
Eu usei o seguinte para fornecer espaço antes desta e o material anterior na linha de status: definir linha de status + = \ col: \% c,
Esta solução tem algo interessante, que diferencia Column e VisibleColumn. Caracteres não imprimíveis são exibidos em 2 colunas, mas devem ser contados como um. Se os caracteres não imprimíveis a saída se parece com isso: RealColumn-VisibleColumn, Line, Word, Character and Byte.
Mxlian
17
Ou, deixe a 'régua' desabilitada, um ganho de desempenho e pressione CTRL-G quando desejar ver a coluna atual.
Pressionar Ctrl-Anything não soa como um ganho de desempenho. Estamos digitando caracteres. Nenhum humano tem dedos e olhos que voam rápido o suficiente para ver esse tipo de diferença de desempenho.
macetw
10
Desaprovaria o uso da régua definida porque acredito que não é compatível com as opções da linha de status, por exemplo, se você definir a linha de status para exibir o caminho completo do arquivo em combinação com a régua definida
set statusline+=%F
set ruler
Depois, NÃO exibe o número da coluna, mas apenas o caminho completo do arquivo na barra de status. No entanto, se você colocar o seguinte em seu arquivo .vimrc
set statusline+=%F\ %l\:%c
Ele exibirá tudo corretamente, ou seja, o
[Caminho do arquivo / nome do arquivo] [número da roupa]: [número da coluna]
Para as outras pessoas que procuram esta resposta e não estão acostumadas a trabalhar com o VIm, pessoalmente, a resposta mais simples que encontrei é adicionar esta linha ao final do seu arquivo .vimrc no diretório inicial:
Respostas:
Tente se definir a opção 'régua' é o que você está procurando. No meu computador, no canto inferior direito, mostra a linha e a coluna em que tenho o cursor.
EDITAR COMENTÁRIOS :
Com a ajuda do vim (comando
:help ruler
):Você pode tentar alterá-lo com a
rulerformat
opção, como:set rulerformat=%l,%v
fonte
23,62-68
onde 23 parecem ser a linha. Como devo interpretar62-68
para a coluna?ruler
não funciona com janelas divididas no Vim.Veja
:help statusline
as muitas opções disponíveis.Eu tenho isso no meu
~/.vimrc
entre um monte de outras diretivas:quais saídas
na minha linha de status.
Eu não tenho
set ruler
.fonte
set laststatus=2
no seu.vimrc
para exibir sempre a linha de status. (0 -> nunca exibe a linha de status, 1 -> somente se houver pelo menos duas janelas, 2 -> sempre exibe a linha de status).Outra maneira de fazer isso é fazer 'g Ctrl-G', que imprime a posição atual do cursor de cinco maneiras: Coluna, Linha, Palavra, Caractere e Byte. (em http://vimdoc.sourceforge.net/htmldoc/editing.html#g_CTRL-G )
fonte
RealColumn-VisibleColumn, Line, Word, Character and Byte
.Ou, deixe a 'régua' desabilitada, um ganho de desempenho e pressione CTRL-G quando desejar ver a coluna atual.
fonte
Desaprovaria o uso da régua definida porque acredito que não é compatível com as opções da linha de status, por exemplo, se você definir a linha de status para exibir o caminho completo do arquivo em combinação com a régua definida
set statusline+=%F
set ruler
Depois, NÃO exibe o número da coluna, mas apenas o caminho completo do arquivo na barra de status. No entanto, se você colocar o seguinte em seu arquivo .vimrc
set statusline+=%F\ %l\:%c
Ele exibirá tudo corretamente, ou seja, o
[Caminho do arquivo / nome do arquivo] [número da roupa]: [número da coluna]
fonte
Para as outras pessoas que procuram esta resposta e não estão acostumadas a trabalhar com o VIm, pessoalmente, a resposta mais simples que encontrei é adicionar esta linha ao final do seu arquivo .vimrc no diretório inicial:
set ruler
fonte