No Vim, gostaria de voltar uma palavra. O oposto de `w`

207

Ao usar o vim, você pode avançar palavra por palavra com w. Como eu vou para trás?

joslinm
fonte
8
viemu.com/vi-vim-cheat-sheet.gif Possui muitas teclas vim em um formato gráfico fácil. Eu recomendo imprimi-lo e tê-lo ao lado do seu computador, se você estiver usando muito o vim.
Sam Brinck
possível duplicata Como mover uma palavra deixada em vi editor
Arslan Ali
1
Veja também: stackoverflow.com/questions/5125270/... se interessado em ir para trás para o fim da palavra anterior - usando ge ea GE
arcseldon

Respostas:

283

Use bpara voltar uma palavra.

Você também pode fazer check-out We Bavançar / voltar a WORD(que consiste em uma sequência de caracteres não em branco separados por espaços em branco, de acordo com :h WORD).

gefei
fonte
42
Para completar ge, o retrocesso retornará ao final de uma palavra. gEvai voltar para o final de umWORD
Peter Rincker 9/02/12
4
@ Peter Rincker: e ee Eirá para a frente.
Benoit
1
Qual é a diferença entre be B? Ou w e W? O comportamento parece o mesmo.
Casey Patton
@CaseyPatton: as versões em maiúsculas tratam qualquer sequência de espaço não em branco como palavras; minúsculas é semelhante a \w|\S. Veja :help worde :help WORDpara mais detalhes.
Rninty
Também vale a pena considerar ge e gE para voltar ao final da palavra anterior. Além disso, consulte stackoverflow.com/questions/5125270/…
arcseldon
79

Ajuda-me pensar nisso como:

b para ir para o início da palavra atual ou anterior

w para ir no começo da próxima palavra

e para ir para o final da palavra atual ou seguinte

ge para ir ao final da palavra anterior

Tente :h word-motionsobter mais detalhes e como combiná-los com operações.

Steve McKinney
fonte
7

use "b" para voltar - apenas testado no vi - funciona bem.

FreudianSlip
fonte
2

Alternativamente, se você usar w, b, W, e Bpara linhas Navegar por esperando sobre as palavras, considere as seguintes alternativas que podem ser mais rápido se usado corretamente.

f<char>    # jump to next occurrence of <char> to right (inclusive)

ou

F<char>    # jump back to next occurrence of <char> to left (inclusive)

Se suas palavras são separadas por espaços

Se suas palavras estiverem separadas por, <space>você pode pular as palavras por espaços:

f<space>;;;;onde ;repete o comando anterior, então você avança por espaços

F<space>;; pular para trás pelo espaço

Se suas palavras são separadas por pontuação e não por espaços

apenas substitua <char> por pontuação, por exemplo.

O método de pontuação não é eficiente para rolar, mas se você souber onde deseja pular, geralmente pode chegar lá em um ou dois pulos

irmão-bilo
fonte