这篇文章是我学习在 VSCode 下使用 VIM 的笔记,主要参考的是 B 站 up 主 薄涛 TV 和 Learn VIM 教程。
普通模式 --NORMAL-- 转换为 插入模式 --INSERT-- 的几种方法:
i
在光标前插入I
在行首插入o
在下一行插入O
在上一行插入a
在光标后插入A
在行尾插入这个主要就是使用 ESC
键退出插入模式,在 VSCode 中,我把它映射成了 jj
。
进入 --VISUAL-- 模式:v
在可视模式中再按一次 v
即可由可视模式退出到普通模式,或者直接 ESC
。
:
ESC
普通模式下:
h
: 向左移动j
: 向下移动k
: 向上移动l
: 向下移动w
: 跳到下一个单词的开头b
: 跳到本单词或者上一个单词的开头(当光标在本单词的开头,则前往上一个单词的开头)e
: 跳到本单词或者下一个单词的结尾ge
: 跳到上一个单词的结尾0
: 跳到行首^
: 跳到从行首开始的第一个非空字符$
: 跳到行尾gg
: 跳到第一行G
: 跳到最后一行nG
: 跳到第 n 行:n
: 跳到第 n 行f{char}
: 光标跳到下个 {char} 所在位置F{char}
: 反向移动到上一个 {char} 所在位置t{char}
: 光标跳到下一个 {char} 的前一个字符的位置T{char}
: 光标跳到下一个 {char} 的后一个字符的位置;
: 重复上次的字符查找命令,
: 反向查找上次的查找命令Ctrl + d : 向下滚动半屏 Ctrl + u : 向上滚动半屏 zt 将当前行置于屏幕顶部附近 zz 将当前行置于屏幕中央 zb 将当前行置于屏幕底部 H 跳转到屏幕的顶部 M 跳转到屏幕的中间 L 跳转到屏幕的底部 ( 跳转到上一个句子 ) 跳转到下一个句子 { 跳转到上一个段落 } 跳转到下一个段落
普通模式下:
d
: 删除(delete)c
: 修改(删除并进入插入模式)(change)y
: 复制(yank)v
: 选中并进入 VISUAL 模式dd
: 删除一整行。类似的还有 cc
、yy
。
Ndd
: 其中 N 表示的是数字,例如 2dd
表示删除两行(向下执行),同样还有 Ncc
、Nyy
。
小 tip: d
和 c
附带剪切效果,也就是可以用 p
复制删除的内容。
i + object
: 内部文本对象a + object
: 外部文本对象
简单的说就是,i 不包括包围文本对象的空白或者括号等,而 a 包括了包围文本对象的空白或者括号等。iw / aw i( / a( 或 ib / ab i{ / a{ 或 iB / aB i" / a" i' / a' i` / a` i< / a< i[ / a[
结合跳转的一些例子:
y$
: 复制当前位置到行尾的所有内容dw
: 删除当前位置到下一个单词的开头c}
: 修改当前位置到这个段落的结尾d(
: 删除到句子的开头结合数字的一些例子:
y2h
: 向左拷贝两个字符d2w
: 删除后两个单词c2j
: 修改后面两行结合 i 和 a 的一些例子:
di(
: 删除括号内的内容di{
: 删除大括号内的内容diw
: 删除光标所在的单词da(
: 删除括号和括号内的内容da{
: 删除大括号和大括号内的内容daw
: 删除光标所有的单词以及周围的空白df<char>
: 删除到下一个 char 字符~
: 将光标下的字母改变大小写3~
: 将光标位置开始的 3 个字母改变其大小写g~~
: 改变当前行的大小写gUU
: 将当前行的字母改为大写guu
: 将当前行的字母改成小写gUaw(gUiw)
: 将光标下的单词改成大写guaw(guiw)
: 将光标下的单词改成小写u
: 撤销Ctrl + r
: 恢复撤销p
: 粘贴x
: 删除当前光标所在的字符r
: 替换当前光标所在的字符一些使用 VSCode 开发中常用的操作:
gd
: 进入函数定义Ctrl+o
: 从函数定义中返回gh
: 查看函数参数等信息gt
: 切换到下一个标签页gT
: 切换到上一个标签页4gt
: 切换到第 4 个标签页Ctrl + 0
来将光标从编辑器跳转到文件栏,在文件栏可以使用 j
和 k
进行移动,可以使用 Space
展开或者关闭文件夹,使用 l
可以将光标选中的文件在编辑器中打开。还有如果使用侧边栏打开文件,可以使用 Ctrl + 1
跟 Ctrl + 2
实现跳转。
xp
: 调换相邻的两个字符ddp
: 调换相邻的两行
这种组合拳最好是形成肌肉记忆,而不是去试图理解它的意思。VSCode 的 VIM 插件默认将 <leader>
设为 Space
.
<leader><leader> s <char>
: 搜索 char 字符其他的一些操作可以查看 VSCode 的 VIM 插件的介绍页
ds"
: 删除两侧的 "y s <motion> <desired>
: 通过 motion 在指定内容两侧增加字符cs"'
: 把两侧的 " 改为 '本文作者:歪比巴卜
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!