在VSCode中使用Vim模式

VSCode作为前端,NeoVim作为后端通过 VSCode中的插件 VSCode Neovim 实现。相比VSCode中的其他Vim模拟器插件性能更好

1. 环境说明

  • 操作系统:Windows 10 专业版 22H2
  • VSCode版本:1.103.2
  • NeoVim版本:v0.11.4
  • VSCode Neovim:1.18.24

2. 安装NeoVim及配置

默认已安装好NeoVim,如不知道自行百度

安装 NeoVim 插件管理器 vim-plug 建议开启科学上net

powershell 复制代码
iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |`
    ni "$(@($env:XDG_DATA_HOME, $env:LOCALAPPDATA)[$null -eq $env:XDG_DATA_HOME])/nvim-data/site/autoload/plug.vim" -Force

NeoVim的配置文件夹路径

shell 复制代码
C:\Users\<用户名>\AppData\Local\nvim\

如果Local文件夹中发现没有nvim文件夹,自己新建nvim文件夹。需要添加 NeoVim 配置文件,Windows 的 NeoVim 配置文件在 C:/Users/(你的用户名)/AppData/Local/nvim/init.vim,如果路径不存在,则新建

新建 init.vim 文件之后在文件中写以下内容

vim 复制代码
call plug#begin()
Plug 'tpope/vim-surround'
call plug#end()

然后打开NeoVim 输入 :PlugInstall 来安装 Vim插件 (需要安装git)

3. 安装VSCode NeoVim插件及配置

在VSCode 插件商城搜索VSCode Neovim 如下图所示

独立进程 为了性能更优, 建议使用单独的进程运行 VSCode Neovim 插件: Extensions > Experimental: Affinity

还需设置NeoVim 安装路径,你需要改成你的电脑上安装NeoVim程序的路径

Vscode-neovim › Neovim Executable Paths: Win32 添加 NeoVim程序的路径

shell 复制代码
C:\\Program Files\\Neovim\\bin\\nvim.exe

VSCode Neovim插件和 Neovim程序 不使用同一个 init.vim 配置文件,所以这里做区分

设置VSCode NeoVim配置文件 init.vim 路径 ,这个需要自己新建init.vim配置文件,新建配置文件的地方不做要求

VSCode Neovim 插件知道配置文件的路径 Vscode-neovim › Neovim Init Vim Paths: Win32

我自己新建在如图所示的位置

4. VSCode快捷键设置

shell 复制代码
// 将键绑定放在此文件中以覆盖默认值
[
    // 任务:运行生成任务
    {
        "key": "alt+b",
        "command": "workbench.action.tasks.build",
        "when": "taskCommandsRegistered"
    },
    {
        "key": "ctrl+shift+b",
        "command": "-workbench.action.tasks.build",
        "when": "taskCommandsRegistered"
    },
    // 查看:切换主侧栏可见性
    {
        "key": "ctrl+shift+b",
        "command": "workbench.action.toggleSidebarVisibility"
    },
    {
        "key": "ctrl+b",
        "command": "-workbench.action.toggleSidebarVisibility"
    }
]

5. 个人配置的VSCode

json 复制代码
{
    // 关闭本地历史记录功能
    "workbench.localHistory.enabled": false,
    // 自动保存
    "files.autoSave": "afterDelay",
    // 自动格式化的设置
    "editor.formatOnPaste": true,
    "editor.formatOnSave": true,
    // 字体设置 (需自行下JetBrains Mono字体)
    "editor.fontFamily": "JetBrains Mono, 'Courier New', monospace",
    "editor.fontSize": 18,
    "editor.fontLigatures": true,
    // 主题设置
    "workbench.colorTheme": "One Dark Pro",
    // 启用自动猜测编码
    "files.autoGuessEncoding": true,
    // 平滑滚动和光标闪烁的设置
    "editor.smoothScrolling": true,
    "workbench.list.smoothScrolling": true,
    "editor.cursorBlinking": "smooth",
    "editor.cursorSmoothCaretAnimation": "on",
    // 自动换行功能(但还是同一行, 视觉上效果)
    "editor.wordWrap": "on",
    // 按下回车键时如何接受代码建议的行为
    "editor.acceptSuggestionOnEnter": "smart",
    // 建议列表中如何预先选择建议
    "editor.suggestSelection": "recentlyUsed",
    // 启用自定义对话框样式
    "window.dialogStyle": "custom",
    // 控制着是否在编辑器的概览标尺中显示断点标记
    "debug.showBreakpointsInOverviewRuler": true,
    // 显示匹配的括号对
    "editor.guides.bracketPairs": "active",
    // 新建文件时的默认语言类型
    "files.defaultLanguage": "${activeEditorLanguage}",
    // 控制编辑器在键入一行后是否自动格式化该行。
    "editor.formatOnType": true,
    // 排除指定文件或文件夹的配置
    "files.exclude": {
        ".vscode": true
    },
    // 设置行号的显示格式
    "editor.lineNumbers": "relative",
    // 设置菜单栏的可见性
    "window.menuBarVisibility": "compact",
    // 设置活动栏(Activity Bar)的位置
    "workbench.activityBar.location": "bottom",
    // 禁止在资源管理器中删除文件时显示确认提示
    "explorer.confirmDelete": false,
    // VSCode NeoVim插件设置
    "extensions.experimental.affinity": {
        "asvetliakov.vscode-neovim": 1
    },
    "vscode-neovim.neovimExecutablePaths.win32": "C:\\Program Files\\Neovim\\bin\\nvim.exe",
    "vscode-neovim.neovimInitVimPaths.win32": "C:\\Users\\admin\\init.vim",
    "vscode-neovim.compositeKeys": {
        "jj": {
            "command": "vscode-neovim.lua",
            "args": [
                "vim.api.nvim_input('<ESC>')\nrequire('vscode-neovim').action('workbench.action.files.save')"
            ]
        },
        "jk": {
            "command": "vscode-neovim.escape"
        }
    },
    // Code Runner插件设置
    "code-runner.runInTerminal": true,
    // C/C++ 插件设置
    "C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, AccessModifierOffset: -4, AllowShortFunctionsOnASingleLine: Empty, AllowShortLambdasOnASingleLine: Empty, IndentWidth: 4, ObjCBlockIndentWidth: 4 }",
    "C_Cpp.clang_format_style": "{ BasedOnStyle: Google, AccessModifierOffset: -4, AllowShortFunctionsOnASingleLine: Empty, AllowShortLambdasOnASingleLine: Empty, IndentWidth: 4, ObjCBlockIndentWidth: 4 }",
    "C_Cpp.doxygen.generatedStyle": "/**",
}
相关推荐
Murphy_lx2 小时前
vim指令
linux·编辑器·vim
小猪写代码2 小时前
vim 编辑器
linux·编辑器·vim
nmxiaocui2 小时前
Linux vi/vim
linux·运维·vim
XJxsmyj522 小时前
vim复制本地到linux服务器上,换行缩进过大,不对的问题
linux·编辑器·vim
柳岸风2 小时前
Android Studio Meerkat | 2024.3.1 Gradle Tasks不展示
android·ide·android studio
piaopiaolanghua2 小时前
PyCharm旧版本下载地址
ide·python·pycharm
风槐啊3 小时前
邪修实战系列(3)
java·ide·spring boot·spring·tomcat
临风.8 小时前
使用Pycharm进行远程ssh(以Featurize为例)
ide·pycharm·ssh·featurize
不秃的开发媛9 小时前
Java开发入门指南:IDE选择与数据库连接详解
java·数据库·ide