Использовать 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, потому что я выбрал его при создании фрагмента, но вы также можете изменить его.