В Vim я бы хотел вернуться на слово. Противоположность `w`


207

Когда вы используете vim, вы можете перемещаться вперед слово за словом с помощью w. Как мне вернуться назад?


8
viemu.com/vi-vim-cheat-sheet.gif В нем много клавиш vim в удобном графическом формате. Я настоятельно рекомендую распечатать его и иметь рядом с вашим компьютером, если вы собираетесь часто использовать vim.
Сэм Бринк


1
Также смотрите: stackoverflow.com/questions/5125270/… если вы
хотите вернуться

Ответы:


283

Используйте, bчтобы вернуться на слово.

Вы также можете захотеть проверить Wи Bперейти / вернуться назад WORD(который состоит из последовательности непустых символов, разделенных пробелом, в соответствии с :h WORD).


42
Ради полноты geвернёмся к концу слова. gEбудет идти назад до концаWORD
Питер Ринкер

4
@ Питер Ринкер: и так eи Eпойдет вперед.
Бенуа

1
Какая разница между B и B? Или W и W? Поведение кажется таким же.
Кейси Паттон

@CaseyPatton: версии в верхнем регистре обрабатывают любую последовательность непробельных символов как слова; строчная похожа на \w|\S. Смотрите :help wordи :help WORDдля более подробной информации.
rninty

Также стоит рассмотреть ge и gE для перехода назад к концу предыдущего слова. Кроме того , см stackoverflow.com/questions/5125270/...
arcseldon

79

Это помогает мне думать об этом как:

b перейти к началу текущего или предыдущего слова

w перейти к началу следующего слова

e перейти к концу текущего или следующего слова

ge идти до конца предыдущего слова

Попробуйте :h word-motionsподробнее и как их совместить с операциями.



2

С другой стороны , если вы используете w, b, W, и Bдля навигации линий перепрыгивая через слова, рассмотреть следующие альтернативные варианты , которые могут быть быстрее , если они используются правильно.

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

или

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

Если ваши слова разделены пробелами

Если ваши слова разделены, <space>вы можете перепрыгивать слова через пробелы:

f<space>;;;;где ;повторяет предыдущую команду, поэтому вы прыгаете вперед пробелами

F<space>;; прыгать назад в пространстве

Если ваши слова разделены пунктуацией, а не пробелами

просто замените <char>пунктуацию, например.

Метод пунктуации неэффективен для прокрутки, но если вы знаете, куда хотите прыгнуть, он обычно может попасть туда за один или два прыжка

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.