VS Code中的vim
概念
Operator
- d 删除
- c 修改
- y 复制
- gc 注释,gu大小写
Motion :控制鼠标移动,选取文本对象
- G,$,0,w,b,}等
- [n]j,[n]gg,
- iw,i(,it
learder key
避免一些特殊功能命令与基础命令冲突。
surroud模式
ys,cs,ds
sneak模式
s/S 两个字符快速motion
dzPe:z表示使用sneak模式,删除遇到后面第一个字符“Pe”之前的内容
2yszPe”:底层执行的是ys2zPe”,遇到后面第二个字符“Pe”之前的内容,加上双引号。
实用操作
- 转到定义:gd,gh 查看函数说明
- 前进后退,Ctrl+i,Ctrl+o
- 重命名 f2
窗口切换
Ctrl+数字,切换视图【+0打开侧边栏】
Ctrl+Tab,切换当前视图的文件
Alt+数字,切换当前视图的文件
vim 插入
I在行首插入A在行尾插入O在行前插入(另起一行)o在行后插入(另起一行)
vim搜索(需配置f/F,s/S)
需要在配置文件中开启使用 sneak:
单行内搜索
t+单个字符+回车正向移动到下一个字符所在之处的前一个字符上T+单个字符+回车反向移动到上一个字符所在之处的后一个字符上f+单个字符+回车正向移动到下一个字符所在之处F+单个字符+回车反向移动到上一个字符所在之处
快速移动时用 f,结合修饰符(c、d)时用t
基于全局进行跳转(基于两个字符进行跳转)
s+ 两个字符 全局查找(和f查找类似,向下查找)S+ 两个字符 全局查找(向上查找)
把s/S的功能添加到f/F(需添加配置)
f替换sF替换S
这样F ,f可以同时搜索一个字符和两个字符
;重复上次的字符查找命令(跳转到下一个字符的位置),反转方向查找上次的字符查找命令(跳转到上一个字符的位置)
给 s/S添加新的功能(需添加配置)
s删除当前字符C删除从当前光标到行尾的字符S删除本行字符并进入 Insert 模式
vim 全局搜索(和VS Code中的搜索功能类似)
/向后查找?向前查找n/N调到下一个/上一个要查找的词的位置/+ 上下左右 查看搜索历史- 输入单词的前几个字符进行搜索就可以
/+#向上查找(精确匹配)/+*向下查找(精确匹配)
基本操作公式:
数字+操作+区域
模式
operator【d,y,c,ys,cs】+motion【iw,t,s】
重命名
前进、后退。Ctrl+i,Ctrl+o
inside模式
ci+括号
ciw
surround模式
csi+符号+符号,将旧的包含符号替换为新的
ysiw+符号
vim 文本对象
文本是结构化的,可以快速选择
vim 文本对象用法
- 操作符(operator) + (内部
i/ 外部a) + 文本对象 - 可视化模式 + (内部
i/ 外部a)+ 文本对象
vim 文本对象
w一个单词(或)一对()b一对()[或]一对[]{或}一对{}B一对块{}<或>一对<>tXML 标签'一对’"一对”- ```一对`
s一个句子(以.,!或?结尾的语句)p一个段落
vim 文本对象实践示例
v+i+b选中括号里面的内容v+i+(选中括号里面的内容(包含括号)d+i+b删除括号里面的内容v+i+w选中当前单词
vim-textobj-arguments
i+a不包含分隔符a+a包含分隔符
实践技巧
d+a+a删除一个参数c+i+a修改一个参数
vim-textobj-entire
d+a+e删除当前文本所有内容d+i+e删除当前文本所有内容,但是不包含前面和后面的空格
作者:溪阳
链接:https://juejin.cn/post/7134701599833882655
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Walon的技术博客!
