Vá para o enésimo símbolo na linha

87

Como mover o cursor para o enésimo símbolo da esquerda no Vim?

Uma das soluções que vejo é pressionar 0n<right-arrow>, ele se moverá para a posição n + 1. Existe alguma maneira mais natural de fazer isso?

Nutel
fonte
1
solução de seta para a direita funcionou para meu problema ... thnx
raj_gt1
1
Quem já usa em <right arrow>vez de lin vim?
LRDPRDX

Respostas:

134

O tubo '|' personagem pode ser o que você deseja:

Para ir para a 25ª coluna em uma linha no modo normal, pressione 25|

Para ir para a 37ª coluna em uma linha no modo normal, pressione 37|

e assim por diante. . .

Herbert Sitz
fonte
Ótimo, era isso que eu procurava
Nutel de
4
@CamilB Tente algo como $3h, que o moverá para o final da linha e, em seguida, 3 caracteres para a esquerda.
Jeff Klein
Mais sobre isso em vim help :help bar. Quando descobri sobre isso, ficou muito mais fácil comentar e descomentar XD. Depois de descobrir isso, não confio em plug-ins de comentário / descomentar externos, a vida de edição de código é muito melhor agora :)
Avi Mehenwal
41

EDITAR: interpretou mal sua pergunta.

você pode avançar para um determinado símbolo digitando fseguido pelo símbolo em questão:

se você quiser passar para o terceiro $, digite:

3f$

para voltar, você usa "F" maiúsculo

F$

para chegar ao final da linha primeiro, você usa "$"

portanto, suas teclas para localizar o terceiro $ do final de uma linha são:

$3F$

Gosto de manter algo assim à mão ao usar o Vim:
http://www.lagmonster.org/docs/vi.html

Ramy
fonte
2
Esse foi o primeiro resultado no google e era isso que eu procurava, obrigado
kgwong
1
este movimento também pode ser adicionado a outros comandos, como: mudar da posição atual para a 2ª aparência do caractere "e" - c2te :)
Vũ Tô
8

Não tenho certeza se você quer dizer o enésimo caractere ou a enésima ocorrência de um caractere; a segunda foi respondida, então responderei a primeira.

^irá levá-lo para o início da linha excluindo os espaços em branco (portanto, para a primeira coluna não branca) e |(barra vertical) ou 0(zero) irá levá-lo para o primeiro caractere. Então l(L minúsculo) o levará para a direita; e 7lo levará sete caracteres à direita. Então, todos juntos, para ir para o (n + 1) ésimo caractere na linha, para n = 7 07l,.

Chris Morgan
fonte
Vejo que você editou a pergunta agora; lem vez da seta para a direita, é o melhor que você obterá. (você está familiarizado com a navegação hjkl?)
Chris Morgan
Eu sei que o verdadeiro vimmer não deve usar setas, mas eu uso alguns outros aplicativos que não suportam atalhos de teclado de baixo nível e a única maneira de navegar são as setas, então para tornar mais fácil alternar entre eles eu uso setas
Nutel
@Vetal: Ocasionalmente fico frustrado quando a rolagem simplesmente não funciona em outros aplicativos ... hjkl são muito melhores do que as setas.
Chris Morgan
Como a resposta de Herbert Sitz aponta, |só vai para o primeiro caractere porque o [count]padrão é 1 - na verdade vai para o [count]º caractere na linha, então 8|é como, 07lexceto que é um único movimento em vez de dois.
hobbs
Acho que devo prestar atenção ao que os personagens fazem. Deveria ter achado improvável que houvesse duas maneiras de fazer a mesma coisa.
Chris Morgan