Questão Como mostrar a coluna atual na barra de status no vim?


Eu 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?


154


origem


Se você quiser mostrar a coluna atual do cursor, digite: echo col ('.'). - SibiCoder


Respostas:


Tente se a opção 'régua' é o que você está procurando. No meu computador na parte inferior direita mostra a linha e coluna onde eu tenho o cursor.

:set ruler

EDITAR COMENTÁRIOS:

A partir da 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 TAB ou um caractere multi-byte), ambos   a coluna de texto (número do byte) e a coluna da tela são mostradas,   separados por um traço.

Você pode tentar mudar isso com rulerformat opção, como :set rulerformat=%l,%v


184



Sim quase isso. Mas isso está mostrando um valor estranho, por ex. 23,62-68 eram 23 parecem ser a linha. Como devo interpretar 62-68 para a coluna? - Jonas
62 está contando guias como um caractere, 68 está contando guias expandidas - RedGrittyBrick
A partir do comando ': help ruler': "Se o número de caracteres exibidos for diferente do número de bytes no texto (por exemplo, para um TAB ou um caractere multi-byte), tanto a coluna de texto (número do byte) 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
ruler não funciona com janelas divididas no Vim. - Mihai
@Jonas Não apenas as abas, como RedGrittyBrick disse, mas também caracteres versus bytes. Isso é muito aparente em arquivos UTF-8, em que um glifo de caractere único possui um ponto de código de vários bytes. Por exemplo, o latim eñe (n com til sobre ele, pronunciado EN-yea) é 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


Vejo :help statusline para as muitas opções disponíveis.

Eu tenho isso na minha ~/.vimrc entre 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.


26



Isso não funciona para mim. Eu provavelmente preciso de mais algumas configurações. - Jonas
Jonas, você pode ter que usar o set laststatus=2 na tua .vimrc para sempre exibir a linha de status. (0 -> nunca exibir a linha de status, 1 -> somente se houver pelo menos duas janelas, 2 -> sempre exibir a linha de status). - pabuisson
Eu usei o seguinte para fornecer espaço antes desta e das coisas anteriores na linha de status: set statusline + = \ col: \% c, - David Baucum


Ou deixe a 'régua' indefinida, um ganho de desempenho e pressione CTRL-G quando você quiser ver a coluna atual.


18



Acertar Ctrl-Anything não parece 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


Outra maneira de fazer isso é fazer 'Ctrl-G', que imprime a posição atual do cursor de cinco maneiras: coluna, linha, palavra, caractere e byte. (por http://vimdoc.sourceforge.net/htmldoc/editing.html#g_CTRL-G)


17



Essa solução tem algo legal, que diferencia Column e VisibleColumn. Caracteres não imprimíveis são exibidos em 2 colunas, mas devem ser contados como um. Se caracteres não imprimíveis, a saída se parece com isto: RealColumn-VisibleColumn, Line, Word, Character and Byte. - mxlian


Eu iria depreciar usando a 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 de arquivo completo em combinação com a régua definida

set statusline+=%F

set ruler

Então, ele NÃO exibe o número da coluna, mas apenas o caminho de arquivo completo na barra de status. No entanto, se você colocar o seguinte no seu .vimrc

set statusline+=%F\ %l\:%c

Ele irá exibir tudo corretamente, ou seja, o

[Filepath / filename] [linenumber]: [número da coluna]


9





Para as outras pessoas que estão procurando por essa resposta e não estão acostumadas a trabalhar com VIm, pessoalmente a resposta mais simples que encontrei é adicionar essa linha ao final do seu arquivo .vimrc em seu diretório inicial:

set ruler


1