vim surround 插件的使用方法和操作快捷键

hrs 提交于 2022/02/26 - 23:23 , 周六

surround 插件可以快速编辑围绕在内容两端的字符(pairs of things surrounding things),比如成对出现的括号、引号,甚至HTML/XML标签等。

安装配置
推荐您使用vim-plug或Vundle等插件管理器,来安装GitHub上的surround插件。

以下将利用实例来介绍surround插件的主要功能,请注意:

在“原始文本”列中,高亮文字表示光标所在位置;
在“命令”列中,为顺序执行的命令序列。
在“更改效果”列中,为命令执行之后的结果。请参考实例文件并自行测试。
新增环绕字符
在常规模式、插入模式和可视化模式下,可以分别使用ys和S命令来新增环绕字符:

surround00.jpg

请注意:

插入模式下的操作:
首先同时按下CTRL-g键;
然后松开CTRL键;
最后点击s或S键,并输入环绕字符或标签。
可视化模式下的操作:
首先使用快捷键进入不同类型的可视化模式。
比如在Windows下,使用CTRL-Q键进入块视化模式;
然后使用j等移动命令来选中文本;
最后点击S键,并输入环绕字符或标签。
修改环绕字符
使用cs命令可以修改环绕字符:

surround01_0.jpg
删除环绕字符
使用ds命令可以删除环绕字符:

surround02_0.jpg
surround插件主要提供以下命令:

 

ys添加环绕字符
yS添加环绕字符并拆分新行
yss为整行添加环绕字符
ySS为整行添加环绕字符并拆分新行
cs修改环绕字符
cS修改环绕字符并拆分新行
ds删除环绕字符
surround插件可以识别并处理以下目标实体:

( )
{ }
[ ]
< >
`
"
'
t(标签)
w(单词)
自定义快捷键
如果查看surround插件的源码,将会发现快捷键逐一定义在surround.vim文件中:

surround03_0.jpg
也就是说,我们可以直接在vimrc配置文件中,重置或取消插件预定义的快捷键:

" 不定义任何快捷键
let g:surround_no_mappings = 1
" 从plugin/surround.vim复制快捷键定义
” 并按需要进行修改
nmap ds <Plug>Dsurround
nmap cs <Plug>Csurround
nmap cS <Plug>CSurround
nmap ys <Plug>Ysurround
nmap yS <Plug>YSurround
nmap yss <Plug>Yssurround
nmap ySs <Plug>YSsurround
nmap ySS <Plug>YSsurround
" 取消不需要的快捷键
"xmap S   <Plug>VSurround
"xmap gS  <Plug>VgSurround
"imap   <C-S> <Plug>Isurround
imap    <C-G>s <Plug>Isurround
imap    <C-G>S <Plug>ISurround
假设需要输入以下包含多个环绕字符的文本:

{{ nginx_root }}
由于surround插件并不支持.重复命令,如果想要新增多个成对字符,那么需要安装额外的repeat.vim插件。而死板繁琐的替代方案是,自定义快捷键来重复执行命令:

nmap <C-J> ysiw}lysiw{
使用以下命令,可以查看插件的帮助文件:

:help surround

标签