Números inferior direito no Vim

6

Na parte inferior direita do editor vim, há dois números que exibem o número da linha e da coluna no seguinte formato:

495,30 

Mas em certas linhas, esse formato é usado:

496,9-30

O que o formato acima com o - significa? O cursor ainda está na coluna 30 , mas o que é isso 9 ?

    
por Andreas Grech 13.12.2009 / 22:52

3 respostas

7

Refere-se à posição do cursor em relação a caracteres especiais (por exemplo: tab).

Diga que sua tela era assim (tela pequena, eu sei):

1 x x x x x x x x x x - - - - - - - - - - - - - - - 
2 - - - - - - - - - - - - - - - - - - - - - - - - -
3 - - - - - - - - - - - - - - - - - - - - - - - - - 
4 - - - - - - - - - - - - - - - - - - - - - - - - -
5 - - x            ---           ---          --- x
6 - - - - - - - - - - - - - - - - - - - - - - - - -
7 - - - - - - - - - - - - - - - - - - - - - - - - -
8 x x x x x x x x x x x x x x x x x x x x x x x x x

Qualquer caractere único (exceto unicode) = 1 byte
3 linhas anexadas (---) = Tab = 1 byte
1 espaço (-) = 1 byte

A guia

está configurada para exibir mais de 8 colunas.

Se o cursor estivesse no último X da linha 1, o Vim mostraria 1,10. Se fosse no primeiro X na linha 5, mostraria 5,3. O último X na linha 8 representa 8,25. No entanto, como o segundo X na linha 5 é separado por 3 sequências de tabulação, se o cursor estiver no último X, ele mostrará 5,7-25.

  • O primeiro 5 é obviamente o número da linha
  • O 7 representa o número do byte na coluna (2 espaços, um x, 3 guias e o último x = 7)
  • O 25 representa a coluna como você a vê no console. Usando 25 espaços seria na mesma posição como 2 espaços, um x, 3 guias e outro x. Como você pode ver, o 25º X na linha 8 se alinha com o último X na linha 5.
por 13.12.2009 / 23:19
5

Na página de ajuda do "options.txt" do Vim (grifo meu):

If the number of characters displayed is different from the number of bytes in the text (e.g., for a TAB or a multi-byte character), both the text column (byte number) and the screen column are shown, separated with a dash.

For an empty line "0-1" is shown.

For an empty buffer the line number will also be zero: "0,0-1".

Por exemplo, se o primeiro caractere de uma linha fosse uma guia e o Vim estivesse configurado para exibir guias com mais de 8 colunas, sua régua diria de 1 a 8 porque uma guia ainda é apenas um byte, mas seu cursor estaria a oitava coluna.

Você veria situações semelhantes ao pesquisar arquivos contendo caracteres estendidos do Unicode, já que eles exigem mais de um byte para armazenar, mas ainda usam apenas uma coluna na tela.

    
por 13.12.2009 / 23:06
3

Nos exemplos acima, o número de bytes é menor do que a coluna de tela (por exemplo, 9-30, 7-25). Isso ocorre quando o caractere de byte único exibido ocupa mais de uma coluna de tela.

Também é possível ter o número de bytes maior que a coluna da tela. Isso ocorre quando mais de um byte é exibido em uma (ou menos) coluna (s). Um exemplo são os caracteres multibyte, como '\xa0' (em notação hexadecimal), que podem aparecer na tela em uma única coluna.

Como exemplo, na linha 5, se o segundo caractere é de dois bytes e o quarto caractere também é dois bytes, à medida que você se move ao longo da linha 5, os números das colunas mudam da seguinte forma:

5,1
5,2   (two-byte character, appears in a single column)
5,4-3
5,5-4 (two-byte character, appears in a single column)
5,7-5
    
por 13.12.2012 / 23:59

Tags