surround 插件可以快速编辑围绕在内容两端的字符(pairs of things surrounding things),比如成对出现的括号、引号,甚至HTML/XML标签等。
安装配置
推荐您使用vim-plug或Vundle等插件管理器,来安装GitHub上的surround插件。
以下将利用实例来介绍surround插件的主要功能,请注意:
- 在“原始文本”列中,高亮文字表示光标所在位置;
- 在“命令”列中,为顺序执行的命令序列。
- 在“更改效果”列中,为命令执行之后的结果。请参考实例文件并自行测试。
新增环绕字符
在常规模式、插入模式和可视化模式下,可以分别使用ys
和S
命令来新增环绕字符:
![27f7a51fc16c750296bab6c5e7ddc44d.png](https://img-blog.csdnimg.cn/img_convert/27f7a51fc16c750296bab6c5e7ddc44d.png)
请注意:
- 插入模式下的操作:
- 首先同时按下CTRL-g键;
- 然后松开CTRL键;
- 最后点击s或S键,并输入环绕字符或标签。
- 可视化模式下的操作:
- 首先使用快捷键进入不同类型的可视化模式。
比如在Windows下,使用CTRL-Q键进入块视化模式; - 然后使用j等移动命令来选中文本;
- 最后点击S键,并输入环绕字符或标签。
- 首先使用快捷键进入不同类型的可视化模式。
修改环绕字符
使用cs
命令可以修改环绕字符:
![7d7ec7e25f39edbc0f6ad245caf6138d.png](https://img-blog.csdnimg.cn/img_convert/7d7ec7e25f39edbc0f6ad245caf6138d.png)
删除环绕字符
使用ds
命令可以删除环绕字符:
![05e38db9d8e9cbcb285bb0819d6b7b98.png](https://img-blog.csdnimg.cn/img_convert/05e38db9d8e9cbcb285bb0819d6b7b98.png)
surround插件主要提供以下命令:
ys
添加环绕字符yS
添加环绕字符并拆分新行yss
为整行添加环绕字符ySS
为整行添加环绕字符并拆分新行cs
修改环绕字符cS
修改环绕字符并拆分新行ds
删除环绕字符
surround插件可以识别并处理以下目标实体:
( )
{ }
[ ]
< >
`
"
'
t
(标签)w
(单词)
自定义快捷键
如果查看surround插件的源码,将会发现快捷键逐一定义在surround.vim文件中:
![1524f44fd10c8de842a9a3c51e778f71.png](https://img-blog.csdnimg.cn/img_convert/1524f44fd10c8de842a9a3c51e778f71.png)
也就是说,我们可以直接在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
使用感受
一,舍本逐末。为了输入环绕字符的小需求,而发明碾压一切的大轮子。颇有些杀鸡用牛刀的意味。而且平白多出来的快捷键和命令,不但冗长而且别扭,操作起来总有种有苦难言的感觉。
二,盛名之下,其实难副。对于一个被不断被提及的知名插件,从功能和体验上都差强人意,着实让人失望。也许,这就是见面不如闻名吧。
以上,皆为一家之言,还请自行斟酌。
Ver: 2.0 | YYQ<上一篇 | 目录 | 下一篇>