Vim 如何围绕现有文本自动完成一段文本
我在服务器上有一些代码 我需要对现有代码的各个部分重复相同的编辑 例如现行守则: int hello=1 我需要编辑这个Vim 如何围绕现有文本自动完成一段文本,vim,Vim,我在服务器上有一些代码 我需要对现有代码的各个部分重复相同的编辑 例如现行守则: int hello=1 我需要编辑这个 #ifndef X int hello = 1; #else #endif 有没有一种方法可以创建一个自动完成的包装器 #ifndef X {existing code} #else #endif 谢谢。如果您有相同的复杂版本要做,我会为它制作一个宏:help q。如果您有相同的复杂版本要做,我会为它制作一个宏:help q。使用vim和视觉选择选项: snippet
#ifndef X
int hello = 1;
#else
#endif
有没有一种方法可以创建一个自动完成的包装器
#ifndef X
{existing code}
#else
#endif
谢谢。如果您有相同的复杂版本要做,我会为它制作一个宏:help q。如果您有相同的复杂版本要做,我会为它制作一个宏:help q。使用vim和视觉选择选项:
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。注意:我之所以使用换行是因为我在创建代码段时选择了换行,但您也可以更改它。使用vim和可视选择选项:
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是因为我在创建代码段时选择了wrap,但是您也可以更改它