在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": "/**",
}
相关推荐
xskukuku2 小时前
VSCode中的Codex插件如何调用第三方API
vscode·ai·codex
lijfrank6 小时前
MacOS 下 VS Code + LaTeX + Skim 双向同步配置
vscode·macos·pdf·latex·mactex
AI进化营-智能译站8 小时前
Jazzy ROS2入门指南系列05-配置VsCode实现ROS2项目开发
ide·vscode·ai·编辑器
EvenBoy13 小时前
IDEA中使用CodeX
java·ide·intellij-idea
时光之源13 小时前
Visual Studio | Marketplace创建发布者(Create Publisher)时无法创建的问题解决方案
ide·vscode·visual studio·plugin·cursor
Aray123413 小时前
VS Code 中使用 Claude Code 调用 GPUStack 本地大模型及 ECC 安装教程
vscode·ecc·gpustack·claude code
啾啾啾66616 小时前
VScode用cookie登录时,输入cookie值后按回车没反应
ide·vscode·编辑器
fqbqrr16 小时前
2604,vim可定制对话框
vim
iwS2o90XT17 小时前
开发一个VS Code主题插件,定制你的IDE
ide·jupyter·postman
yc_12241 天前
用 Visual Studio 远程调试 Linux:从零到流畅的完整指南
linux·ide·visual studio