vim 快捷键_VIM学习笔记 环绕字符编辑(surround)
surround 插件可以快速编辑围绕在内容两端的字符(pairs of things surrounding things),比如成对出现的括号、引号,甚至HTML/XML标签等。
安装配置
推荐您使用vim-plug或Vundle等插件管理器,来安装GitHub上的surround插件。
以下将利用实例来介绍surround插件的主要功能,请注意:
- 在“原始文本”列中,高亮文字表示光标所在位置;
- 在“命令”列中,为顺序执行的命令序列。
- 在“更改效果”列中,为命令执行之后的结果。请参考实例文件并自行测试。
新增环绕字符
在常规模式、插入模式和可视化模式下,可以分别使用ys
和S
命令来新增环绕字符:
请注意:
- 插入模式下的操作:
- 首先同时按下CTRL-g键;
- 然后松开CTRL键;
- 最后点击s或S键,并输入环绕字符或标签。
- 可视化模式下的操作:
- 首先使用快捷键进入不同类型的可视化模式。
比如在Windows下,使用CTRL-Q键进入块视化模式; - 然后使用j等移动命令来选中文本;
- 最后点击S键,并输入环绕字符或标签。
- 首先使用快捷键进入不同类型的可视化模式。
修改环绕字符
使用cs
命令可以修改环绕字符:
删除环绕字符
使用ds
命令可以删除环绕字符:
surround插件主要提供以下命令:
ys
添加环绕字符yS
添加环绕字符并拆分新行yss
为整行添加环绕字符ySS
为整行添加环绕字符并拆分新行cs
修改环绕字符cS
修改环绕字符并拆分新行ds
删除环绕字符
surround插件可以识别并处理以下目标实体:
( )
{ }
[ ]
< >
`
"
'
t
(标签)w
(单词)
自定义快捷键
如果查看surround插件的源码,将会发现快捷键逐一定义在surround.vim文件中:
也就是说,我们可以直接在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<上一篇 | 目录 | 下一篇>
vim 快捷键_VIM学习笔记 环绕字符编辑(surround)相关推荐
- vim 快捷键_VIM学习笔记 自动补全详解(Auto-Completion Detail)
在插入模式下,利用自动补全(Insertion-Completion)功能,vim能够根据正在输入的字符,查找匹配的关键字并显示在弹出菜单(popup menu)中.通过选择匹配项,可以补全输入的部分 ...
- vim 离线安装_VIM学习笔记 插件列表(Plugin)
由于zhihu的垃圾编辑器不支持表格,请查看以下完整格式: http://yyq123.github.io/learn-vim/learn-vim-plugin.html 说明: 本列表完全基于作者的 ...
- 正则表达式学习笔记005--脱字符和美元符的认识与应用
正则表达式学习笔记005--脱字符和美元符的认识与应用 以前写的课程都没有附上源码,很抱歉! 交流群1:251572072 交流群2:170933152 也可以自己下载: 正则表达式学习笔记005-- ...
- 正则表达式学习笔记004--连字符和范围描述符的认识与应用
正则表达式学习笔记004--连字符和范围描述符的认识与应用 以前写的课程都没有附上源码,很抱歉! 交流群1:251572072 交流群2:170933152 也可以自己下载: 正则表达式学习笔记004 ...
- vim 寄存器 操作_VIM学习笔记 寄存器 (Registers)
将寄存器与各种删除.复制.粘贴命令组合使用,能够大大提高编辑文本的效率. 指定寄存器 在复制或删除文本时,可以使用"register命令将文本放入指定的寄存器中.例如以下命令,将复制的文本放 ...
- vim查找关键字_VIM学习笔记 对话框(Dialog)
查找对话框 使用以下命令,将会打开一个查找对话框: :promptfind [string] 如果在命令中指定了[string]值,那么就会查找该字符串:如果没有指定[string]值,那么将会查找上 ...
- linux2.6驱动学习笔记之字符驱动
1.字符驱动组成 1.1字符驱动的模块加载与卸载 //设备结构体模板 struct xxx_dev_t { struct cdev cdev; ...... }xxx_dev; 在字符驱动模块加载函数 ...
- vi(vim)编辑器 学习笔记
vi是非图形化的编辑器 vim是vi的加强版. 三种使用模式 一般模式用户可以进行光标的移动,删除字符以及复制 编辑模式下,用户可以插入或者删除字符 命令模式下,可以保存文件或者退出编辑器 移动操作 ...
- 18离线帮助文档_VIM学习笔记 Zeavim离线文档查看器
Zeal是开源的跨平台软件,用于离线浏览各种开发文档.Zeal使用Dash提供的文档集(Docsets),涵盖近200种开发语言. Zeavim插件,可以在Vim中调用Zeal来查看离线文档. 安装配 ...
最新文章
- g标签 怎么设置svg_SVG(可缩放矢量图形)图片添加、高斯模糊、渐变与g标签
- js的时间函数实现一个电子表
- 给thinkphp加个分页样式
- svm 图片加标签_基于半监督的SVM多标签图数据分类算法研究
- Chapter7-5_Multilingual BERT
- 四川大学锦城学院计算机考试题,四川大学锦城学院期考试试题(B卷)_15889.doc
- 变身吧,无人机:多种姿势可以选择,你喜欢X还是O?
- 抽象类继承 java_java继承抽象类
- OFFICE拼写语法检查:全部忽略、全部更正的功能
- ArcMap下停靠栏的设计与实现
- mysql 修改 character_set_database_如何将character_set_database latin1 改为 gbk(转)
- OpenNI和Kinect安装中文教程
- 程序员跳槽和面试,猎头不会告诉你的那些事儿
- 透过数字化转型再谈数据中台(三):一文遍历大数据架构变迁史
- Linux的进程空间管理
- 爱创课堂每日一题第二十三天- Expires和Cache-Control?
- APP被Rejected 的各种原因翻译(转)
- v.douyin.com生成制作抖音缩短口令网址php接口方法
- android逆向知乎,Android逆向之路---为什么从后台切换回app又显示广告了
- 电赛公开课整理(一),电路基础,截图+模电知识【15000字】【原创】
热门文章
- .NET开发框架 ABP
- Prettier 是 javascript 代码灵活美化工具
- 《Mining Text Data》阅读笔记---第1章 An Introduction to Text Mining
- 关于在自己的程序中使用其它窗口的菜单
- Keras中RNN、LSTM、GRU等输入形状batch_input_shape=(batch_size,time_steps,input_dim)及TimeseriesGenerator详解
- php后缀名隐藏,php隐藏后缀名的方法是什么
- hadoop的同类技术_Hadoop和Spark的区别是什么?现在都流行用哪种技术?
- java 导出密钥_java-如何从密钥库中导出.key和.crt
- amp sqlserver中 什么意思_股票术语中的做空到底是什么意思?
- 请求过程中,需要证书认证,这种情况下如何处理