VSCode中Vim使用

文章目录

    • Vim插件设置及键映射
    • Vim模式及转换
    • 光标移动
    • 操作符和动作
  • 常用命令
    • 常用剪切,删除,复制命令
    • 常用粘贴命令
    • 常用替换命令
  • Tips
    • 切换大小写
    • 其它跳转方式
    • 其它有用小技巧

Vim插件设置及键映射

{
  /* vim */
  "vim.easymotion": true,
  "vim.incsearch": true,
  "vim.useSystemClipboard": true,
  // "vim.hlsearch": true, 搜索到的结果一直高亮显示,对/字符串的搜索方式来说,不设置这一项更好
  // "vim.sneak": true, // s 跳转到下面第一次出现指定两个字符的地方
  "vim.useCtrlKeys": true, //结合下面的"vim.handleKeys"配置
  //vim插入模式
  "vim.insertModeKeyBindings": [
    {
      "before": ["j", "j"],
      "after": [""]
    }
  ],
  //普通模式
  "vim.normalModeKeyBindingsNonRecursive": [
     // easymotion 快速跳转 ,s + 
    {
      "before": ["","s"],
      "after": ["","","s"]
    },
    {
      "before": ["H"],
      "after": ["^"]
    },
    {
      "before": ["L"],
      "after": ["$"]
    },
    // leader(或者说空格)+u代替Ctrl+u使页面向上滚动半屏
    {
      "before":["leader","u"],
      "after":[""]
    },
    {
      "before":["leader","d"],
      "after":[""]
    },
    // 删到行首,删到行尾  暂时只能用leader + H/L
    {
      "before": ["leader","H"],
       "after": ["d","^"]
    },
    {
       "before": ["leader","L"],
        "after": ["d","$"]
    }
  ],
  //可视模式
  "vim.visualModeKeyBindingsNonRecursive": [
    {
      "before": ["H"],
      "after": ["^"]
    },
    {
      "before": ["L"],
      "after": ["$"]
    }
  ],
  "vim.leader": "",
  "vim.handleKeys": {
    "": false,
    "": false,
    // 带有vim插件的vscode,它的Ctrl+w是由vscode控制,非vim插件扩展快捷键控制。若改为true,则就是了。
    "": false
  },
}

Vim模式及转换

普通模式 NORMAL 插入模式 INSERT 可视模式 VISUAL 命令模式 : 替换模式REPLACEVSCode中Vim使用_第1张图片:若配置了"vim.sneak": true则s与S就不起作用

光标移动

VSCode中Vim使用_第2张图片
上图有个小错误,是ngg或nG
zt 屏幕滚动使得当前行成为屏幕的最上面一行
zz 中间一行
zb 最下面一行
% 移动到与光标所在括号相对应的另一半括号上(只对小括号,中括号和大括号有用)

操作符和动作

操作符opertator:告诉我们要干什么

动作motion:告诉我们干什么

操作符opertator 动作motion
d 剪切 i(inner)
c 删除并进入插入模式 a(around)
y 复制

e:entire全部 u:撤销操作 .:再次执行刚执行过的命令
di(:删除( )中的所有内容
da(:删除( )中同时包括( )的所有内容
yie:复制全文

常用命令

常用剪切,删除,复制命令

x 向后剪切一个字符,前面加上n,连续删除n个
X 向前剪切一个字符,前面加上n,连续删除n个
dd 剪切当前行
dgg 剪切当前位置到第一行的所有内容
dG 剪切当前位置到最后一行的所有内容
d$ 剪切当前位置到本行行末
d0 剪切当前位置到本行行首
dngg或dnG 剪切当前行到第n行的所有内容
d3d或3dd 剪切当前行开始的3行
dw 剪切当前单词
diw 剪切当前光标所停留单词,或输入gbw(Tips其它有用小技巧中详说)
db 剪切光标所停留单词到开头
dfn 剪切到当前行到下一个n字符
cfn 删除到n字符(包括n)并进入写入模式
ct" 删除所有的内容,直到遇到双引号"并进入写入模式
以此类推

或选中文本,进入可视模式,再进行操作,这样更加直观,准确一些

常用粘贴命令

p 粘贴到当前光标的右边
P 粘贴到当前光标的左边
np(nP) 重复粘贴内容n次

若复制或剪切的是行,则:p 粘贴到当前行的下一行 P 上一行

常用替换命令

rx 用字符x替换光标位置的字符
nrx 用x字符替换光标位置前的n个字符
R 进入替换模式
v进入可视模式后选中你想替换的单词,F2可重命名

Tips

切换大小写

~ 将光标下的字母改变大小写
3~ 将光标位置开始的3个字母改变其大小写
g~ 改变当前行字母的大小写,
gUU 将当前行的字母改成大写
guu 将当前行的字母改成小写
gUaw或gUiw 将光标下的单词改成大写
guaw或gUaw 将光标下的单词改成小写

其它跳转方式

  1. 查找并跳转,键在vscode中用空格敲出来(图片在vim插件介绍和使用页面截的,不止图片上那么多,可自行查阅尝试)
    VSCode中Vim使用_第3张图片
  2. /string,n下翻查询结果,N上翻查询结果,enter跳转(string代表你想查找的内容,这种方法不常用)

其它有用小技巧

VSCode中Vim使用_第4张图片
ysaw+字符 ’,",(,{,<,[ ):为文本内容添加相应的字符,如ysaw+(,那么test变为 (test)

gd(go to destination):相当于ctrl+鼠标左键,跳转到定义声明或具体描述的地方

Ctrl + o:回到原来的地方

gb:光标置于单词的任意位置,输入一个gb,就选中一相同的单词(想选中4个相同的单词就连续输入gb4次

gh(go to hover):相当于悬浮查看一些签名

gt(go to tab):跳到下一个标签页

gT(go to tab):跳到上一个标签页

ngt(go to tab):跳到第n个标签页

Ctrl + 0:跳转到侧边栏,并可以用jk上下移动,空格打开文件或者文件夹

l:从侧边栏回到未跳转前的文件工作区,或者新打开的文件工作区

Ctrl + 2:增加一个工作区栏,以此类推,Ctrl + 1跳到第一个工作区栏

Ctrl + ]:跳到定义处,或在定义处查询它的引用

开始使用vscode中vim的时候特别不习惯,因为之前没有使用过。但是差不多一个星期之后,哇,原来这么好用。慢慢熟练就好啦~


参考链接

新手如何正确入门vim?

指尖飞舞:vscode + vim 高效开发(系列视频)

vim常用命令总结 (转)

vscode和chrome使用vim
非常感谢!!!


你可能感兴趣的:(常用工具,vscode,vim,编辑器,开发工具,前端)