En Vim, me gustaría retroceder una palabra. Lo contrario de `w`

207

Cuando usa vim, puede avanzar palabra por palabra con w. ¿Cómo voy hacia atrás?

joslinm
fuente
8
viemu.com/vi-vim-cheat-sheet.gif Esto tiene muchas de las claves vim en un formato gráfico fácil. Recomiendo imprimirlo y tenerlo al lado de su computadora si va a usar mucho vim.
Sam Brinck
posible duplicado de Cómo mover una palabra a la izquierda en vi editor
Arslan Ali
1
También vea: stackoverflow.com/questions/5125270/… si está interesado en retroceder al final de la palabra anterior, usando ge y gE
arcseldon el

Respuestas:

283

Use bpara retroceder una palabra.

También es posible que desee verificar Wy Bavanzar / retroceder a WORD(que consiste en una secuencia de caracteres no en blanco separados con espacios en blanco, según :h WORD).

gefei
fuente
42
Para completar ge, irá hacia atrás hasta el final de una palabra. gEirá hacia atrás hasta el final de unWORD
Peter Rincker
44
@ Peter Rincker: y ey Eseguirá adelante.
Benoit
1
¿Cuál es la diferencia entre by B? O w y W? El comportamiento parece lo mismo.
Casey Patton el
@CaseyPatton: las versiones en mayúscula tratan cualquier secuencia de espacios en blanco como palabras; minúscula es similar a \w|\S. Ver :help wordy :help WORDpara más detalles.
rninty
También vale la pena considerar ge y gE para ir hacia atrás hasta el final de la palabra anterior. Además, consulte stackoverflow.com/questions/5125270/…
arcseldon el
79

Me ayuda pensar en ello como:

b ir al comienzo de la palabra actual o anterior

w ir al principio de la siguiente palabra

e para ir al final de la palabra actual o siguiente

ge ir al final de la palabra anterior

Intente :h word-motionsobtener más detalles y cómo combinarlos con las operaciones.

Steve McKinney
fuente
7

use "b" para retroceder, recién probado en vi, funciona bien.

FreudianSlip
fuente
2

Alternativamente, si se utiliza w, b, W, y Ba las líneas Navegar usando la esperanza sobre las palabras, considerar las siguientes alternativas que pueden ser más rápido si se usa correctamente.

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

o

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

Si tus palabras están separadas por espacios

Si sus palabras están separadas por <space>usted, puede saltar las palabras por espacios:

f<space>;;;;donde ;repite el comando anterior, así que saltas por espacios

F<space>;; saltar hacia atrás por el espacio

Si sus palabras están separadas por signos de puntuación y no por espacios

simplemente reemplace <char>con puntuación, por ejemplo.

El método de puntuación no es eficiente para desplazarse, pero si sabe hacia dónde quiere saltar, generalmente puede llegar en uno o dos saltos.

hermano-bilo
fuente