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

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

150 голосов
/ 08 января 2010

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

Ответы [ 5 ]

194 голосов
/ 08 января 2010

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

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

let @q = 'macro contents'

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

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

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

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

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

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

18 голосов
/ 08 января 2010

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

map <C-O> MACROTEXT

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

11 голосов
/ 08 января 2010

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

3 голосов
/ 23 октября 2018

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

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

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

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