Ответ 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, с другой стороны, пропустит вас по всему, что не является пространством.