Movendo-se (eficientemente) verticalmente no Vim

27

Quando quero chegar a uma certa parte de uma palavra no Vim (horizontalmente), simplesmente pressiono w, b, f ou t (alguma coisa). Existe uma boa maneira de fazer isso verticalmente? Por exemplo, quero chegar a uma determinada palavra ou letra de uma linha que esteja abaixo ou acima da linha em que estou atualmente.

PS: Sem usar: (número da linha)

janoChen
fonte

Respostas:

29

H, Me Lmoverá o cursor para o topo, o meio e o fundo da tela, respectivamente. Posteriormente, você pode pressionar zzpara centralizar a tela na linha em que seu cursor está.

Alison R.
fonte
5
E zb e zt movem a tela na parte inferior e superior, respectivamente #
Jani Hartikainen
11
  • você pode usar a seta para cima / para baixo para mover uma linha
  • você pode digitar um número e, em seguida, usar a seta para cima / para baixo para mover para cima / para baixo o número de linhas
  • pequenos gsaltos para a primeira linha do documento
  • capital Gpula para a última linha do documento
  • etc.

há um bilhão de outras maneiras diferentes, o vim é muito flexível a esse respeito. Eu recomendaria obter uma folha de dicas do vim primeiro para os comandos básicos e, em seguida, conforme tiver tempo, consulte a documentação do vim sobre este assunto.

Link para uma folha de fraude: Cheat Sheet

Além disso:

  • /+ string + (Enter)pesquisa a próxima ocorrência de string do cursor até o final do documento
  • ? - faz o mesmo, mas do cursor para trás, em direção ao início do documento

fonte
6

Eu pulo procurando por strings únicas para onde quero ir. No Vim, você pode fazer isso com:

/seqüência de pesquisa

Costumo rolar para frente e para trás usando n e N depois de inserir uma pesquisa.

Também rolo usando Ctrl-F e Ctrl-B para percorrer o código rapidamente. Mas eu uso o truque de pesquisa com mais frequência. Às vezes, você pode se perder ao pesquisar os resultados com n e N. Um bom comando para se orientar é o Ctrl-G, que imprime algo assim na parte inferior da tela do Vim:

Linha "script.pl" 219 de 328 --66% - col 19-23

James Thompson
fonte
+1 para <CTRL> -F e <CTRL> -B, embora eu tenha tendência a "trapacear" e usar <PgUp> e <PgDown> quase sempre!
technomalogical 25/01
4

tente:: ele motion.txt e: ele up-down-movimentos

Ele tem toda a lista de possíveis movimentos de cima para baixo

Michael
fonte
3

Você também pode saltar para uma linha específica no documento emitindo Ngg onde Né o número da linha que você deseja saltar.

mloskot
fonte
1
quer dizer NG...
Peter
1
Eu uso Ngg, também (ambas as variantes de trabalho)
soulmerge
1
Bem como:N
viraptor
2

como mencionado anteriormente H, M, L (como alto, médio e baixo), minúsculas hjkl são os comandos típicos de jogos de console para esquerda, baixo, cima, direita e funcionam da mesma maneira no vi (j, k funciona no gmail, se você ativar comandos principais)


fonte
1

<Ctrl>+D - baixa

<Ctrl>+U - acima

sml
fonte
Isso é meio rolo de página. Para rolagem de página inteira, use <c-f>e<c-b>
Al.G.
1

Além dos movimentos verticais regulares, eu uso uma versão modificada do /programming/4946421/vim-moving-with-hjkl-in-long-lines-screen-lines . Normalmente, movo-me com as teclas de seta, não com o hjkl (usuário muito tempo de outros editores antes de encontrar o Vim, muito acostumado a alternar as setas / Home / end / PgUp / PgDn, mesmo após mais de 5 anos de uso exclusivo do Vim).

function! ScreenMovement(movement)
   if &wrap
      return "g" . a:movement
   else
      return a:movement
   endif
endfunction
map <expr> <C-Down> ScreenMovement("j")
map <expr> <C-Up> ScreenMovement("k")
map <expr> <C-Home> ScreenMovement("0")
map <expr> <C-End> ScreenMovement("$")

Mantendo Ctrl pressionado, eu posso ir visualmente para o início / fim ou para cima / baixo das linhas de exibição. Para mim, isso é mais eficiente do que as alternativas, pelo menos.

Quase esqueci: eu precisava modificar o .Xdefaults para que ele funcionasse especificamente no urxvt, mas esse provavelmente é um problema fora do tópico (com respostas no Google).

Daniel Andersson
fonte