个人VSCode Vim基础配置文件

发布时间 2023-08-02 15:31:45作者: 老铁来了啊

基础配置项

vscode-vim插件由于是一款模拟器,所以它的配置文件是放在settings.json文件中,而不是vimrc文件中,个人也并不推荐将配置放在vimrc文件中,因为这会导致多端同步变的复杂,尽管这款插件可以支持从vimrc文件中读取配置。

下面是一些我会在使用vscode-vim插件时配置的vim选项,直接放入到settings.json文件中即可:

    // 启用vimrc文件
    "vim.vimrc.enable": true,
    // vimrc文件
    "vim.vimrc.path": "$HOME/.vimrc",
    // 启用相对行号
    "editor.lineNumbers": "relative",
    // 绑定vim前导键
    "vim.leader": "<space>",
    // 启用easymotion插件
    "vim.easymotion": true,
    // 启用系统粘贴板作为vim寄存器
    "vim.useSystemClipboard": true,
    // 由vim接管ctrl+any的按键,而不是vscode
    "vim.useCtrlKeys": true,
    // 突出显示与当前搜索匹配的所有文本
    "vim.hlsearch": true,
    // 普通模式下的非递归按键绑定
    "vim.normalModeKeyBindingsNonRecursive": [],
    // 插入模式下的非递归按键绑定
    "vim.insertModeKeyBindings": [],
    // 命令模式下的非递归按键绑定
    "vim.commandLineModeKeyBindingsNonRecursive": [],
    // 可视模式下的非递归按键绑定
    "vim.operatorPendingModeKeyBindings": [],
    // 下面定义的按键将交由vscode进行处理,而不是vscode-vim插件
    "vim.handleKeys": {
        "<C-a>": false,
        "<C-z>": false,
        "<C-x>": false,
        "<C-c>": false,
        "<C-v>": false,
        "<C-f>": false,
        "<C-w>": false,
        "<C-n>": false,
    }

热键配置项

基本上vim的所有模式你都可以配置在下面的4个选项中:

// 普通模式下的非递归按键绑定
"vim.normalModeKeyBindingsNonRecursive": [],
// 插入模式下的非递归按键绑定
"vim.insertModeKeyBindings": [],
// 命令模式下的非递归按键绑定
"vim.commandLineModeKeyBindingsNonRecursive": [],
// 可视模式下的非递归按键绑定
"vim.operatorPendingModeKeyBindings": [],
// 下面定义的按键将交由vscode进行处理,而不是vscode-vim插件
"vim.handleKeys": {
    "<C-a>": false,
    "<C-f>": false
}

还可以使用$HOME/.vimrc文件配置,键盘映射,等与其他ide-vim插件通用配置放在此处

" Key Remapping
imap jk <Esc>

也可以在vscode中配置,在INSERT模式下使用jj退回到NORMAL模式:

  "vim.insertModeKeyBindings": [
    {
      "before": [
        "j",
        "j"
      ],
      "after": [
        "<Esc>"
      ]
    },
  ],