【Vim】Vscode 配置 Vim

文章目录

  • Vscode 配置 vim
    • 一、Vim 简介
    • 二、Vscode 配置 vim
      • 1. 安装
      • 2. 配置
        • - mac系统
        • - Windows
    • 三、配置项说明
    • 四、参考链接
    • 五、总结

Vscode 配置 vim

强烈建议安装后查看参考链接中的指尖飞舞:vscode + vim 高效开发(系列视频)


一、Vim 简介

Vim 是 Vi Mproved(改进) 是一款强大的编辑器,基于 Linux 平台下的 Vi 开发。因为操作是基于命令方式,所以能够跨平台安装,功能强大,具有以下特点:

  • 内存占用低
  • 以命令为中心,可以使用少量命令执行复杂的文本相关任务
  • 具有高度可配置性,并使用简单的文本来存储其配置
  • vim 支持海量插件(vim awsome平台 )
  • 支持多个窗口,使用此功能能够拆分多个窗口
  • 支持多个缓冲区
  • 支持多各选项卡,允许处理多个文件
  • 支持录制功能,允许以重复方式录制和播放 Vim 命令

基于如此强大的编辑功能,使用者一学多用,但因以命令为核心,学习 Vim,需要学习大量的 vim 命令。

但掌握其命令核心后,很多需要 鼠标配合 或者 按多个按键 的操作简化为一条简单的 vim 命令


二、Vscode 配置 vim

1. 安装

  • 点击 vscode 扩展,搜索 vim 安装
    【Vim】Vscode 配置 Vim_第1张图片

2. 配置

- mac系统

  • mac 系统的电脑需要执行以下的 bash 命令
    作用应该是禁用某种按键布局
    $ defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false         # For VS Code
    $ defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false # For VS Code Insider
    $ defaults write com.visualstudio.code.oss ApplePressAndHoldEnabled -bool false    # For VS Codium
    $ defaults delete -g ApplePressAndHoldEnabled                                      # If necessary, reset global default
    
    【Vim】Vscode 配置 Vim_第2张图片
  • 之后将 Vim 文档中的配置代码复制至 setting.json (全局配置)文件中即可
    {
      "vim.easymotion": true,
      "vim.incsearch": true,
      "vim.useSystemClipboard": true,
      "vim.useCtrlKeys": true,
      "vim.hlsearch": true,
      "vim.insertModeKeyBindings": [
        {
          "before": ["j", "j"],
          "after": [""]
        }
      ],
      "vim.normalModeKeyBindingsNonRecursive": [
        {
          "before": ["", "d"],
          "after": ["d", "d"]
        },
        {
          "before": [""],
          "commands": [":nohl"]
        }
      ],
      "vim.leader": "",
      "vim.handleKeys": {
        "": false,
        "": false
      }
    }
    

- Windows

  • windows 则不需要执行 bash 命令,但是将配置代码(红框下方)设定至 vscode 的 全局 setting.json 后,windows 的快捷键将被 Vim 接管
    即windows 系统的快捷键不起作用
    【Vim】Vscode 配置 Vim_第3张图片

  • 复制配置代码(同上)到 Vscode setting.json 文件即可

    {
      "vim.easymotion": true,
      "vim.incsearch": true,
      "vim.useSystemClipboard": true,
      "vim.useCtrlKeys": true,
      "vim.hlsearch": true,
      "vim.insertModeKeyBindings": [
        {
          "before": ["j", "j"],
          "after": [""]
        }
      ],
      "vim.normalModeKeyBindingsNonRecursive": [
        {
          "before": ["", "d"],
          "after": ["d", "d"]
        },
        {
          "before": [""],
          "commands": [":nohl"]
        }
      ],
      "vim.leader": "",
      "vim.handleKeys": {
        "": false,
        "": false
      }
    }
    

复制时,注意 json 格式


三、配置项说明

// vim setting
    "vim.easymotion": true,               //easymotion 功能启用
    "vim.incsearch": true,                  //incsearch 功能启用
    "vim.useSystemClipboard": true,        //使用系统剪贴板,启用   
    "vim.useCtrlKeys": true,               //使用 Ctrls 按键
    "vim.hlsearch": true,                  //启用 hlsearch
    "vim.insertModeKeyBindings":[          //insert 模式下的按键绑定
        {
        "before": ["j", "j"],              //使用 before 代替 after 中的按键或者命令(这里的 befor 和 after 对象均为数组)
        "after": [""]
        },
        {
            "before":[""],
            "after":[""]
        }, 
        {
            "before":[""],
            "after":[""]
        },
         {
            "before":[""],
            "after":[""]
         },                  
        {
            "before":[""],
            "after":[""]
        }
    ],
    "vim.normalModeKeyBindingsNonRecursive": [           //normal 模式下的按键绑定 (同上)
        {
        "before": ["", "d"],
       "after": ["d", "d"] 
        },
        {
        "before": [""], 
        "commands": [":nohl"] 
         },
         {
            "before":[""],
            "after":[""]
        }, 
        {
            "before":[""],
            "after":[""]
        },
         {
            "before":[""],
            "after":[""]
         },                  
        {
            "before":[""],
            "after":[""]
        }
    ],
    "vim.leader": "",            //leader 按键的指定,这里规定为了 space(空格) 键,j
    "vim.handleKeys": {                //这里制定了 ctrl A 键起作用,下同(说明:ctrl A 在 Vim 中有特殊含义)
        "": false,
        "": false
    },
    //--------------------------  

四、参考链接

  • 指尖飞舞:vscode + vim 高效开发(系列视频)
    讲的很清晰,逻辑严密,强烈建议一键三连,视频中解释了一些命令代表的英文单词,理解了相关的单词含义,使用命令将会得心应手
  • Vim 简介
    余下章节应该也有讲到 Vim 相关的操作
  • 在VSCode里面配置Vim正确姿势(细节解析)
    一些配置项的说明
  • 新手如何正确入门 Vim
    这里讲到了强制转换按键的问题
  • vim入门教程(共3讲)
    第一讲讲到了配置文件,第三讲讲到了 vim awsome,以及 vim 中配置插件的方式,以一及百,如果在终端中使用 Vim 的方式,可以尝试相关的插件安装方法
  • Vim 官方文档
    如果忘记 vim 命令可以查阅文档,耗时长,但是效果佳

五、总结

  • 模式说明
    参考链接中有几个视频讲到了 vim 的命令模式,他们均讲到了是两种模式,但是在第一个参考链接中,讲到的是四种模式,理解应该为四种模式:
    • normal 正常模式:在该模式下执行大量的文本命令才起作用
    • visual 视图模式:按 v 进入这种模式,可实现对文件内容多行的编辑
    • insert 插入模式:可以进行文档的内容插入
    • 命令模式: 在 Normal 模式下,键入 “:” 后添加 vim 命令(如:wq)则进行 文件内容之外的操作
  • 按键绑定的问题
    新手如何正确入门 Vim 参考链接中讲到了按键绑定的问题,视频中的 up 主将上下左右键绑定为空,使之不能起作用,如果是初入门的选手,比如我,是比较赞成的,但是按键的使用因人而异,不必强求。
    使用上面的方式置空上下左右键,同样也可以置空键盘上的page up/down,Home/End,或许使用 Vim 命令操作熟悉之后,以后更换键盘时,可以使用布局更小的键盘
  • 查看文档
    查看文档十分重要,许多问题搜索虽然能够快速解决,但是问题的根本愿解决方式大部分都是来自文档
  • Vim 常用命令

你可能感兴趣的:(Vim)