thumbnail
VSCODE搭配VIM使用以及VIM常用命令汇总

前言

结合了官方文档和一些博主的分享内容,并根据公司的GIT操作要求在这里总结了一篇比较简要的文章,希望多多少少可以帮到大家


一、VSCODE使用VIM

1.安装VIM插件

vim插件有很多很多,我们可以选择被使用率最高的那个

打开vscode,ctrl + shift + x,搜索vim,就是下图这个

在这里插入图片描述

复制配置

然后我们可以把vim文档中的配置先复制到我们自己的 ctrl + shift + p 设置json文件里

{
  "vim.easymotion": true,
  "vim.incsearch": true,
  "vim.useSystemClipboard": true,
  "vim.useCtrlKeys": true,
  "vim.hlsearch": true,
  "vim.insertModeKeyBindings": [
    {
      "before": ["j", "j"],
      "after": ["<Esc>"]
    }
  ],
  "vim.normalModeKeyBindingsNonRecursive": [
    {
      "before": ["<leader>", "d"],
      "after": ["d", "d"]
    },
    {
      "before": ["<C-n>"],
      "commands": [":nohl"]
    }
  ],
  "vim.leader": "<space>",
  "vim.handleKeys": {
    "<C-a>": false,
    "<C-f>": false
  }
}

vim.handlekeys中屏蔽了某些组合键,防止和vscode快捷键冲突

<C-f>就是禁用了vim的Ctrl + F ,因为vim的Ctrl + F 是翻页,vscode的则是查找

不过这里还是建议用vim的查找功能吧,毕竟用都用vim了,还不来点全套的吗


2.其它配置

修改底部状态栏颜色

有时候不同模式可能不好分辨,这时候把vscode底部状态栏颜色改下就很容易区分了,前提你得先让底部状态栏可见

例如:

普通模式 墨绿色

在这里插入图片描述

插入模式 酒红色

在这里插入图片描述

可视化模式 灰蓝色

在这里插入图片描述

settings.json 配置如下

// vim基础3种模式对应的颜色
"vim.statusBarColors.normal": "#61d6af5d",
"vim.statusBarColors.insert": "#c75d9b52",
"vim.statusBarColors.visual": "#5168b35e",
"vim.statusBarColorControl": true,
// vim折叠代码防止自动展开
"vim.foldfix": true,
// 工作区自定义颜色,这里复制一下就可以了,不同vim模式下面的值是会跟着上面设置的自动改变的
"workbench.colorCustomizations": {
    "statusBar.background": "#61d6af5d",
    "statusBar.noFolderBackground": "#61d6af5d",
    "statusBar.debuggingBackground": "#61d6af5d",
    "statusBar.foreground": "#fff"
}

二、常用操作命令

VIM的命令厉害的太厉害,简单的太简单。因为还有很多高难度的表达式替换命令需要大家细细琢磨,所以这里简单梳理下常用的到的命令吧

光标操作

在你学会走之前,你要先学会爬。在你学会修改文件前,你要先学会移动光标。现在,给我学!

以后玩游戏上下左右就都改成 J K H L


文章部分

命令 说明
gg 跳转至文件头
G 跳转至文件尾
行号 + G 或 : + 行号 跳转到指定行的开头
N + % 跳转到文件 N% 处
{ 和 } 按段落移动,上移/下移
ctrl + b / f 上/下翻一屏
ctrl + u / d 上/下翻半屏
ctrl + y / e 向上/下滚动一行
z + t / z / b 将当前行移动到屏幕 顶端/中央/底端
H / M / L 将光标移动到屏幕 顶端 /中央 / 底端
gd 跳转到局部变量定义处

词组部分

命令 说明
w(小写) 词组正向跳转到下一个单词开始 (以空格和符号作为分隔)
W(大写) 词组正向跳转到下一个单词开始 (以空格作为分隔)
e(小写) 词组正向跳转到下一个单词结尾 (以空格和符号作为分隔)
E(大写) 词组组正向跳转到下一个单词结尾 (以空格作为分隔)
b(小写) 词组反向跳转(以空格和符号作为分隔)
B(大写) 词组反向跳转(以空格作为分隔)

行部分

命令 说明
0 到行头
$ 到行尾
^ 到本行第一个不是blank字符的位置(blank:空格、tab、回车等)
g_ 到本行最后一个不是blank字符的位置
* 跳转至下一个与当前光标相同的字符上,可跨行
# 跳转至上一个与当前光标相同的字符上,可跨行
% 匹配括号移动 ( 、{ 、[
f 和 F 正向 / 反向 行内查找字符,可跨行
; 和 , 配合 f 和 t 实现 重复 / 反向重复操作
/ 和 ? 后面 / 前面文本中查找内容,n / N 搭配用于向后 / 向前查找下一个

代码操作

代码标记

命令 说明
m + {a-z} 在当前文件,标记光标所在位置
:marks 显示所有标记
` + {a-z} 和 ‘ + {a-z} 移动到标记 位置 / 行首
` + . 移动到最后修改的地方
:delmarks a-c 删除标记a、b、c ,如果一个字母则是删除单个
:delmarks ! 删除当前缓冲区所有标记

代码排版

命令 说明
>> 和 << 文本行右移 / 左移
gq + N + q 重新对 N行 排版
gq 和 gqq 对选中内容重新排版,两个qq表示重排本行
~ 对选中内容大小写转换
u 和 U 可视模式将内容转为小写 / 大写
zc 和 zo 收起折叠 / 打开折叠

插入模式

命令 说明
i / I 光标后插入 / 在本行第一个非空字符处插入
a / A 光标后插入 / 在本行最后一个字符处插入
o / O 在本行下面 / 上面 插入新的一行
N + cc 修改N行

复制粘贴

命令 说明
yy 或 Y 复制当前行
N + p 复制后,在光标位置下一行开辟 N 行进行粘贴操作
p 和 P 光标后 / 光标前粘贴

删除剪切

命令 说明
N + dd 删除(剪切)当前行在内的以下 N 行,不加 N 则是删除本行
d 删除(剪切)可视模式选中的区域
D 删除(剪切)光标后本行所有内容,包括光标所在字符
d0 删除(剪切)光标前本行所有内容,不包括光标所在字符
daw 和 das 删除(剪切)一个词或一个句子,光标不用在句首
N + x / X 正向 / 反向按字符删除(剪切)
df + 字符 从光标处删除至指定字符
ci / di / yi + 引号 修改 / 剪切 / 复制引号内的内容
ca / da / ya + 引号 修改 / 剪切 / 复制包括引号在内的内容
caw / daw / yaw 修改 / 剪切 / 复制光标所在单词

总结

最后给大家一张很经典的图吧

在这里插入图片描述

上一篇
下一篇