常用操作
cw: 向后删除当前单词 I: 到行首并进入编辑模式 0i ^i ea | wi: 在当前单词后插入
C : 删除当前字符到行尾所有内容 cb: 删除单词
bi: 在当前单词开始处添加 d + $ : 删除当前到行尾为止 dd: 删除当前行
viw | diw | ciw 选择|删除 当钱单词
daa 删除⼀个参数
cia 修改⼀个参数
删除到某个地方所有的内容
- 移动的时候⽤ f
- 结合 c / d 使⽤ t
删除函数
- % 匹配括号
- vim-indent-object
- vii
- vai
- vaI dap 基于段落 text-object daI 基于 vim-indent-object
移动
- 字符: h j k l
- 基于单词/字串的移动:
- e|E: 移动到(单词|字串)的结尾
- b|B: 移动到上一个单词|字串的开头
- w: 移动到单词的开头
- ge: 移动到上一个单词的结尾
- 行首: 0 ^(到第一个不是blank字符的位置)
- 行位: $ g_(到本行最后一个不是blank字符的位置).
- { 跳转上⼀个段落
- } 跳转下⼀个段落
标记
- 单⽂件 m+⼩写字⺟ mm
- 多⽂件 m+⼤写字⺟ mM
- 跳转 ' 跳转到标记的⾏
- ` 跳转到标记的⾏和列(更精准)
- gd jump to definition
- 使⽤ :jumps 查看
插入
- 行首: I
- 行尾: A
- 行前: O
- 行后: o
操作
- d: 删除
c+ 移动命令:c用于删除选定的文本并进入插入模式。例如:cw:删除光标到单词末尾的文本,并进入插入模式。c$:删除光标到行末的文本,并进入插入模式。c2w:删除光标后的两个单词,并进入插入模式。
- C : 删除当前字符到行尾所有内容
- y: 复制 操作 ( 并进入insert模式 )
- x ( s ): 删除当前字符
- X : 删除光标前的字符
- dd ( S ) 删除当前光标的字符 ( 并进⼊ insert 模 )
- 复制当前行: yy
- 粘贴: p
- r: 替换当前字符
- R: 替换多个字符
- u: undo
- ctrl + r: redo
vim-surround
- c s hange existing surround to desired
- y s dd desired surround around text defined by
- d s elete existing surround
- S Surround when in visual modes (surrounds full selection)
掌握悬浮显示&⼤⼩写&注释
- 悬浮显示 gh hover
- ⼤⼩写
- normal gu gU
- 可视化 u U
- ⼤⼩写互换 ~
- 注释
- gc 单⾏注释
- gC 多⾏注释 tip: normal 和 可视化模式通⽤
选择模式
- v: 选择字符
- V: 选择行
- c-v: 块
- o: 切换可视区的光标位置
- gv 会到上一次选择的区域
- A | I : 选中多多行后进行的批量编辑
操作
删除: d
$ 删除至行尾
0 删除至行首
l 删除后一个字符
h 删除前一个字符
j 删除一行和一个下换行
k 删除一行和一个上换行
数字 + d
c 跟 d一样 , 只不过操作完成后进入了insert模式
基于单词/字串移动
- e: 移动到单词的结尾
- w: 移动到单词的开头
- b: 移动到上一个单词的结尾
- ge: 移动到上一个单词的开头k ![[Pasted image 20241215230653.png]]
文本对象
i: 内部 a 外部 operator + (内部/外部)+ ⽂本对象 可视化模式 + (内部/外部)+⽂本对 b | (或) ⼀对() B {或} ⼀对块{} s ⼀个句⼦ p ⼀个段落 t XML标签
- vim-textobj-arguments
- ia 不包含分隔符
- aa 包含分隔符
- ivim-textobj-entire
- e 删除当前⽂本所有内容,但是不包含前⾯和后⾯的空格
- ae 删除当前⽂本所有内容
移动
- Ctrl-f(forward)向下滚动⼀屏
- Ctrl-b(backward)向上滚动⼀屏
- Ctrl-d 向下滚动半屏
- Ctrl-u 向上滚动半屏
- Ctrl-e 向下滚动⼀⾏
- Ctrl-y 想上滚动⼀⾏
- zz 将当前⾏置于屏幕中央
- zt(top) 将当前⾏置于屏幕顶部附近
- zb(bottom) 将当前⾏置于屏幕底部
- gg 跳到⽂件⾸
- G 跳到⽂件尾
- ⾏数+gg 跳到指定⾏
- ⾏数+G 跳到指定⾏
Ctrl + o:这个命令会让你返回到上一个光标位置。Ctrl + i:如果你想前进到下一个光标位置,可以使用这个命令。
搜索
单行
f 正向移动到下⼀个 {char} 所在之处 t 正向移动到下⼀个 {char} 所在之处的前⼀个字符上 F 反向移动到上⼀个 {char} 所在之处 T 反向移动到上⼀个 {char} 所在之处的后⼀个字符上 ; 重复上次的字符查找命令 , 反转⽅向查找上次的字符查找命令
- 使⽤技巧
- 移动的时候⽤ f
- 结合 c / d 使⽤ t
全局
- / 向后查
- ? 向前查
- n/N
- /# 向上查
- /* 向下查
电脑配置
长按快速移动
javascript
# 全局开启
>>> defaults write -g ApplePressAndHoldEnabled -bool false
# 全局关闭
>>> defaults write -g ApplePressAndHoldEnabled -bool true
# vscode开启
>>> defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
>>> defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool true
# firefox开启
>>> defaults write org.mozilla.firefox ApplePressAndHoldEnabled -bool false
# firefox关闭
>**>> defaults write org.mozilla.firefox ApplePressAndHoldEnabled -bool truejson

讨论区
欢迎留下想法与补充