Подтвердить что ты не робот

Какая разница между b и B в Vim?

Я googled и что то, что он говорит:

Чтобы вернуться к слову, используется b. Еще раз, B будет содержать больше символов в том, что Vim считает одним словом.

Я не понимал, что B отличает от b. Можете ли вы привести мне пример, чтобы понять, почему я понимаю? Спасибо.

[EDIT] На самом деле мне интересно, потому что в онлайн-игре va я попытался вернуться к СЛОВАм! с b, но это не сработало. Однако, когда я попробовал это с Vim, установленным на моем компьютере, он работал с b. Так это только для того, чтобы заставить игрока использовать B с помощью подсказки?

Вот картина игры:

enter image description here

4b9b3361

Ответ 1

Как и большинство капитализированных пар перемещений, b перемещается по слову, но b перемещается по WORD. Разница заключается в том, что vim считает слово "буквой" буквой, цифрами и подчеркиваниями (и вы можете настроить это с помощью параметра iskeyword), но "WORD" всегда есть что-то, что не является пробелом.

Итак, учитывая это:

foo-bar-baz

Если ваш курсор находится на z и вы нажмете b, курсор вернется в начало baz, затем в дефис, затем вернется в начало bar и так далее, Каждое из них представляет собой другое "слово" для vim: foo, -, bar, -, baz.

Но если вы нажмете b, курсор переместится полностью на f, потому что foo-bar-baz - все не-пробелы и, следовательно, одно слово WORD.

:help word внутри vim также объясняет это.


Что касается игры vim: я думаю, что игра рассматривает валуны как пунктуацию. Попробуйте ввести его в vim следующим образом:

not WORDS*!

С курсором на !, b вернет вас к *, потому что *! - это все знаки препинания и, следовательно, одно слово. Но это * на самом деле является валуном, поэтому вы не можете двигаться туда, поэтому ничего не происходит. b, с другой стороны, пропустит вас по всему, что не является пространством.

Ответ 2

Google не туда, куда нужно идти, когда вам нужно объяснение для функции Vim: научитесь использовать :help. Ответы на большинство ваших вопросов есть.

Кроме того, вам нужно пройти $ vimtutor. Это гораздо полезнее, чем эта игра.

Ответ 3

B обрабатывает знаки препинания как часть слова, используя только пробелы как разделители слов; b не обрабатывает пунктуацию как часть слова.