Збереження макросів Vim


166

Хтось знає, як правильно зберегти / повторно використовувати макроси, записані всередині редактора vim?

Відповіді:


216

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

Щоб зберегти його, ви відкриєте .vimrc і вставити вміст, тоді реєстр буде приблизно наступного разу, коли ви запустите vim.
Формат такий:

let @q = 'macro contents'

Але будьте обережні з цитатами. Їм треба було б уникнути належним чином.

Отже, для збереження макросу ви можете:

  • У звичайному режимі: qq
  • введіть будь-які команди
  • У звичайному режимі: q
  • відкрити .vimrc
  • "qpщоб вставити макрос у свій let @q = '...'рядок

3
Крім того, якщо вам потрібно вставити спеціальні символи (наприклад, втеча, в моєму випадку), використовуйте CTRL-V <ESC>в режимі вставки, щоб вставити правильний символ. Буквальне <ESC>не працює
adam_0

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

2
Чи потрібні лапки (навколо вмісту макросу)?
user2472071

15
Ctrl+r Ctrl+r registerNameвходи реєструють вміст, не інтерпретуючи їх - краще, ніж "qp. +1 для методу in-vim.
LAFK повідомляє, що

@ adam_0 Чи можете ви детальніше розглянути це? Можливо, включіть приклад? Я не можу зрозуміти, як вставити спеціальні символи, а саме esc. Я намагався будь-яку комбінацію введення втечі безрезультатно. "Код клавіші" в кінцевому підсумку знищує макрос і вся послідовність виводиться на друк.
GH05T

21

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

Це дозволить вам зберегти макрос у певній просторі імен (або використовувати тип файлу як простір імен за замовчуванням), а згодом ви зможете шукати збережені макроси та завантажувати їх у реєстр, готовий до використання.

Якщо ви повторно використовуєте багато макросів, це дуже корисно.


6
Просто хочете зафіксувати це і сказати, як легко встановити marvim- скопіюйте один файл у каталог / плагін, а потім скористайтесь F3, щоб зберегти макрос та F2 для запуску.
Raine Revere

18

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

map <C-O> MACROTEXT

коли ви записуєте макрос, ввівши, qaви можете отримати текст макросу, ввівши"ap


Використання "ap чи еквівалент не спрацювало, але ви можете отримати ту саму інформацію за
адресою

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