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.

Como mostrar a coluna atual na barra de status?

Jonas
fonte
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

Birei
fonte
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:

set statusline+=col:\ %c,

quais saídas

col: 64

na minha linha de status.

Eu não tenho set ruler.

romainl
fonte
1
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,
David Baucum
18

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 )

Peter
fonte
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.

ma11hew28
fonte
3
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]

Giovanni Macciocu
fonte
2

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

Jay
fonte