Mover-se (eficientemente) verticalmente no Vim

25

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

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

    
por 2 revs, 2 users 100%janoChen 06.04.2010 / 15:37

10 respostas

25

H , M e L moverão o cursor para o topo, meio e fundo da tela, respectivamente. Posteriormente, você pode acessar zz para centralizar a tela na linha em que seu cursor está.

    
por 23.01.2010 / 20:14
10
  • 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 subir / descer tantas linhas
  • small g pula para a primeira linha do documento
  • capital G pula para a última linha do documento
  • etc.

Há milhares de outras maneiras diferentes, o vim é muito flexível a esse respeito. Eu recomendaria obter uma folha de dicas vim primeiro para comandos básicos, e então, conforme você tiver tempo, vá até a documentação do vim sobre este assunto.

Link para uma folha de dicas: Folha de dicas

Além disso:

  • / + string + (Enter) procura a próxima ocorrência de string do cursor para frente até o final do documento
  • ? - faz o mesmo, mas do cursor para trás, em direção ao início do documento
por 23.01.2010 / 20:05
8
  • { } leva você ao começo / fim do próximo parágrafo
  • ( ) o mesmo para frases
  • ^ $ o primeiro e último caractere da linha

Referência rápida / folha de dicas aqui

    
por 23.01.2010 / 20:09
6

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

/ string de pesquisa

Eu normalmente rola para frente e para trás usando n e N depois de inserir uma pesquisa.

Eu 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 passar pelos resultados da pesquisa com n e N. Um bom comando para se orientar é Ctrl-G, que imprime algo assim na parte inferior da tela do Vim:

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

    
por 23.01.2010 / 20:25
3

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

    
por 23.01.2010 / 20:11
3

tente: ele move.txt e: ele move para baixo

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

    
por 24.01.2010 / 02:57
2

como mencionado anteriormente H, M, L (como em alta, média, baixa) letras minúsculas h j k l são os comandos típicos do jogo de console para a esquerda, para baixo, para cima, para a direita e funcionam da mesma forma no vi (j, k funcionam no gmail se você ativar comandos de tecla)

    
por 23.01.2010 / 20:25
2

Você deve experimentar o easymotion plugin do Lokaltog: link

    
por 06.04.2012 / 22:26
1

<Ctrl>+D - baixo

<Ctrl>+U - up

    
por 16.06.2010 / 11:18
1

Além dos movimentos verticais regulares, uso uma versão modificada de link . Eu costumo me mexer com as setas do teclado, não com o hjkl (muito menos usuário de outros editores antes de achar o Vim, também acostumado a setas / Home / end / PgUp / PgDn para mudar, mesmo após 5+ anos de uso exclusivo do Vim). p>

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("$")

Ao pressionar Ctrl, posso ir visualmente para iniciar / terminar ou subir / descer linhas de exibição. Para mim isso é mais eficiente que as alternativas, pelo menos.

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

    
por 23.05.2017 / 13:33