Какова наилучшая стратегия для кусков кода и макросов в vim? - PullRequest
5 голосов
/ 10 сентября 2008

Поскольку я больше развиваюсь с помощью vim, я хочу копировать блоки полезного кода, похожие на «шаблоны» в Eclipse.

Я думал создать отдельный файл для каждого фрагмента кода и просто прочитать их с помощью

:r code-fornext

но это кажется довольно примитивным. Поглядывая вокруг, я нахожу упомянутые макросы vim и кое-что о «картах», но ничего такого, что кажется простым.

Я ищу, например, что-то вроде «Шаблонов» в Eclipse, поэтому я вставляю фрагмент кода с курсором в центре. Или «Макросы» JEdit, которые я могу записывать, выполняя сложные удаления и переименовывая в одну строку, затем я могу воспроизвести его снова на 10 других строках, чтобы он сделал то же самое с ними.

Есть ли у vim что-то похожее на эти две функции?

Ответы [ 2 ]

8 голосов
/ 10 сентября 2008

Чтобы записать макросы в Vim, в командном режиме нажмите клавишу q и другую клавишу, которой вы хотите назначить макрос. Для быстрого удаления макросов я обычно просто нажимаю qq и назначаю макрос клавише q. Когда вы находитесь в режиме записи, бегите по клавишам. Когда вы закончите, убедитесь, что вы вернулись в командный режим и снова нажмите q, чтобы остановить запись. Затем, чтобы воспроизвести макрос вручную, вы можете набрать @q. Чтобы воспроизвести ранее запущенный макрос, вы можете набрать @@ или 10 раз запустить его, набрав 10@q или 20@q и т. Д.

В итоге:

+----------------------------------+-------------------------------------+
| start recording a macro          | qX (X = key to assign macro to)     |
+----------------------------------+-------------------------------------+
| stop recording a macro           | q                                   |  
+----------------------------------+-------------------------------------+
| playback macro                   | @X (X = key macro was assigned to)  |
+----------------------------------+-------------------------------------+
| replay previously played macro   | @@                                  |
+----------------------------------+-------------------------------------+

Что касается фрагментов кода, я обнаружил и начал использовать плагин Vim под названием snipMate, который имитирует функцию фрагментов TextMate. Вы можете получить плагин здесь:

http://www.vim.org/scripts/script.php?script_id=2540

И короткая статья об использовании snipMate (вместе с короткой заставкой, показывающей его использование):

http://www.catonmat.net/blog/vim-plugins-snipmate-vim/

Надеюсь, вы найдете это полезным!

0 голосов
/ 17 сентября 2008

На vim.wikia вы найдете категорию советов , посвященную расширению фрагментов и сокращений. Вы также увидите список плагинов, которые упрощают определение сложных фрагментов / шаблонов-файлов.

НТН,

...