Сохранение макросов vim


166

Кто-нибудь знает, как правильно сохранять / повторно использовать макросы, записанные в редакторе vim?

Ответы:


217

Используйте qпосле буквы для записи макроса. Это просто входит в один из регистров копирования / вставки, поэтому вы можете вставить его как обычно с помощью команд "xpили "xPв обычном режиме.

Чтобы сохранить его, вы открываете .vimrc и вставляете содержимое, тогда регистр будет примерно при следующем запуске vim.
Формат примерно такой:

let @q = 'macro contents'

Будьте осторожны с цитатами, хотя. Они должны были бы избежать должным образом.

Итак, чтобы сохранить макрос, вы можете сделать:

  • Из обычного режима: qq
  • введите любые команды
  • Из обычного режима: q
  • открыть .vimrc
  • "qpвставить макрос в вашу let @q = '...'строку

3
Также, если вам нужно вставить специальные символы (например, escape, в моем случае), используйте CTRL-V <ESC>в режиме вставки, чтобы вставить правильный символ. Литерал <ESC>не работает
adam_0

5
Msgstr "Обратите внимание, что вышеуказанный метод с использованием: let не будет работать должным образом для любых макросов, которые вы создаете, заканчиваясь символом <CR> или <NL> (возврат каретки или перевод строки).". vim.wikia.com/wiki/Macros#Saving_a_macro
Paolo

2
Требуются ли кавычки (вокруг содержимого макроса)?
user2472071

15
Ctrl+r Ctrl+r registerNameвходы регистрируют контент без их интерпретации - лучше чем "qp. +1 для метода in-vim.
LAFK говорит восстановить Монику

@ adam_0 Не могли бы вы уточнить это? Может быть, включить пример? Я не могу понять, как встраивать специальные символы, а именно esc. Я пробовал каждую комбинацию ввода побега безрезультатно. «Код ключа» в конечном итоге разрушает макрос, и вся последовательность печатается.
GH05T

21

Для более надежного решения вы можете проверить Marvim .

Это позволит вам сохранить макрос в определенном пространстве имен (или использовать тип файла в качестве пространства имен по умолчанию), а затем вы сможете искать сохраненные макросы и загружать их в регистр, готовый к использованию.

Если вы используете много макросов, это очень полезно.


6
Просто попробуйте это и скажите, как легко настроить marvim - скопируйте один файл в каталог / plugin, затем используйте F3 для сохранения макроса и F2 для запуска.
Рейн Ревере

18

Запишите свои макросы в ~ / .vimrc, чтобы определить макрос, запускаемый CTRL + O, например, добавьте следующую строку в ваш ~ / .vimrc:

map <C-O> MACROTEXT

когда вы записываете макрос, набрав, qaвы можете получить текст макроса, набрав"ap


Использование «ap или его эквивалента не сработало, но вы можете получить ту же информацию: reg
DShook

"ap будет означать макрос, записанный в aреестре
Тайлер Фаул

11

Команду :mkexrc(или :mkvimrc) можно использовать для сохранения всех текущих параметров :mapи :setнастроек в файл. Смотрите :help mkexrcподробности.


4

Вы можете сделать это на своем ~/.vimrc

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

ПРИМЕЧАНИЕ: вы должны использовать двойные кавычки, чтобы иметь возможность использовать специальные клавиши, как в \<this silly example>.

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