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

166

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

jnadro52
источник

Ответы:

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>.

SergioAraujo
источник