ВИМ: Почему оператор точки работает по-другому? - PullRequest
0 голосов
/ 02 февраля 2019

Я хочу понять, что хранится в регистре точек (.) Vim.

Рассмотрим следующий текст:

This is Line one
This is Line two
This is Line three

С курсором на первой строке, если я это сделаю A;<esc> Я могу повторить то же действие для следующей строки с помощью j.

Однако, если я выполню действие, например, удаление последнего символа в первой строке с помощью $x, а затем попытаюсь повторить его дляСледующая строка на j., она не удаляет последний символ строки, вместо этого она просто удаляет символ под курсором.

Так почему команда точка может запомнить позицию в первом примере A;<esc> тогда как не в состоянии сделать то же самое для $x?

1 Ответ

0 голосов
/ 02 февраля 2019

С :help .:

.                       Repeat last change, with count replaced with [count].
                        Also repeat a yank command, when the 'y' flag is
                        included in 'cpoptions'.  Does not repeat a
                        command-line command.

При A; изменение заключается в вставке ; в конце текущей строки.A перемещает курсор и переключается в режим вставки.

При $x сначала $ перемещает курсор, затем команда x удаляет символ.Они не связаны друг с другом, поэтому изменение - это только удаление символа в текущей позиции курсора.

(Другими словами, движение является только частью изменения, если команда принимает оператор движения после команды, например d, или если в команде неявно указано движение, например A.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...