Добавить ключи к более ранней записи в vim - PullRequest
0 голосов
/ 21 октября 2018

Я знаю, что такое запись в vim .

Допустим, у меня уже есть запись в регистре, и мне не хватает еще нескольких ключей, которые я хочу добавить в эту последовательность.Есть ли способ добавить эти ключи к более ранней записи в vim?

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Вставка макроса

Вы можете вставить свой регистр в текущий файл, выполнив это (скажем, регистр "a"):

:put a

Если яхотите удалить последнее слово строки, а я хочу стереть пробел перед ним, перейти к началу строки и перейти на одну строку вниз

Исходный регистр "a":

$diw

Вставка регистра

:put a

В режиме вставки нам нужно вставить макрос буквально, поэтому нам нужно использовать Ctrl-r Ctrl-r a

Примечание: второй Ctrl-r необходим для захвата Esc или Введите .

Модификация макроса

Модификация регистра "a":

$diwx0j

В приведенном выше примере мы только что добавили x0j

ПереназначениеМакрос

Затем вы можете сделать визуальный выбор и вернуться к регистру «a»:

0vg_"ay

0 ........ goes to the beginning of the line
v ........ visual selection
g_ ....... goes to the end of the line without line break
"ay  ..... copy to the register "a"

Если вы хотите переключать режимы, вы можете буквально набрать Esc, набрав Ctrl-v Esc

Вы также можете использовать «let», чтобы установить регистр, в этом случае регистр «a» для перехода на следующую строку и перехода к следующей строке:

let @a="V~\<Esc>0j"

Параметр let позволяет вам сохранять макросы в вашем ~/.vimrc, что пригодится для тех ситуаций, когда вам нужен макрос ежедневно.

Еще одно преимущество использования «let» для назначения и переназначенияваш макрос таков, что вы можете вставить специальные ключи следующим образом:

:let @a="iHello World\<Return>bye\<Esc>"

Необходимо использовать двойные кавычки, иначе это не будет работать должным образом.

Примечание: Для ввода орграфа ^[ введите Ctrl-v Esc и оно представляет собой Esc в буквальном смысле.

0 голосов
/ 21 октября 2018

Использование заглавной буквы добавит к регистру, поэтому qA продолжит запись макроса @a.

С :help q:

q{0-9a-zA-Z"}       Record typed characters into register {0-9a-zA-Z"}
                    (uppercase to append).

Примечание: это работаетдля всего, что связано с регистрами, поэтому "Ayw также добавит следующее слово к регистру "a.

...