как автозаполнить часть текста вокруг существующего текста - PullRequest
1 голос
/ 11 апреля 2019

У меня есть код на сервере.

Мне нужно повторять одно и то же редактирование вокруг частей существующего кода.

Например, существующий код:

int hello = 1;

Мне нужно отредактировать это

#ifndef X 
int hello = 1;
#else
#endif

Есть ли способ создать оболочку для автозаполнения?

#ifndef X
{existing code}
#else
#endif

Спасибо.

Ответы [ 2 ]

2 голосов
/ 12 апреля 2019

Использовать vim Ultisnips с возможностью выбора VISUAL:

snippet wrap "inserts text around visual selection" w
#ifndef X
${0:${VISUAL}}
#else
#endif
endsnippet

После установки Ultisnips установите сопоставление для редактирования фрагментов:

map <Leader>u :UltiSnipsEdit<cr>

Теперь вы можете копироватьфрагмент выше и измените его в соответствии с вашими потребностями.По умолчанию используется триггер UltiSnips Tab , но вы можете легко его изменить:

let g:UltiSnipsExpandTrigger="<tab>"
let g:UltiSnipsJumpForwardTrigger="<c-b>"
let g:UltiSnipsJumpBackwardTrigger="<c-z>"

Как его использовать?

Выберите строку, которую хотите "обернуть" другимитекст, нажмите Tab , затем введите wrap и, наконец, Tab .ПРИМЕЧАНИЕ. Я использую слово wrap, потому что я выбрал его при создании фрагмента, но вы также можете изменить его.

2 голосов
/ 11 апреля 2019

Если у вас есть такое же сложное издание, я бы сделал для него макрос (:help q).

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