启用插件 链接到标题
Win11 链接到标题
插件设置:Settings-user
页面,Neovim Executable Paths: Win32
内容设置为C:\Users\zwyyy\scoop\apps\neovim\current\bin\nvim.exe
,Neovim Init Vim Paths: Win32
内容无需设置。
WSL 链接到标题
插件设置:Settings-Remote [WSL:Debian]
页面,Neovim Executable Paths: Linux
内容设置为/usr/bin/nvim
,Neovim Init Vim Paths: Linux
内容无需设置。
MacOS 链接到标题
插件设置:Settings-user
页面,Neovim Executable Paths: Darwin
内容设置为 /opt/homebrew/bin/nvim
,Neovim Init Vim Paths: Darwin
内容无需设置。
key bindings 中查找ctrl+c
,删除与neovim
有关的两项,否则会导致插入模式下无法使用ctrl+c
复制(我没有选择删除)。
设置 jk
为 esc
链接到标题
已于 1.11.1 版本废弃 链接到标题
编辑 keybings.json
,添加
{
"command": "vscode-neovim.compositeEscape1",
"key": "j",
"when": "neovim.mode == insert && editorTextFocus",
"args": "j"
},
{
"command": "vscode-neovim.compositeEscape2",
"key": "k",
"when": "neovim.mode == insert && editorTextFocus",
"args": "k"
}
使用 gc 作为注释快捷键 链接到标题
已废弃 链接到标题
原先解决方案是在 neovim 的配置目录的 lua/vscode/config
目录下新建 keymaps.lua
文件,内容为:
local keymap = vim.keymap
-- local opts = { noremap = true, silent = true }
-- vscode.neovim用于注释代码的按键映射
keymap.set("v", "gc", "<Plug>VSCodeCommentary")
keymap.set("n", "gc", "<Plug>VSCodeCommentary")
keymap.set("o", "gc", "<Plug>VSCodeCommentary")
keymap.set("n", "gcc", "<Plug>VSCodeCommentaryLine")
同时修改init.lua
,添加require("vscode.config.keymaps")
。
注意的是,这一方案随着 vscode 的 vscode.neovim 插件的更新已经失效。需要利用 neovim 中的 comment 插件来实现。
comment.nvim 链接到标题
利用 comment.nvim
来实现 vscode 的调用 gc
快捷键注释。
文件结构目录如下:
├── LICENSE
├── README.md
├── init.lua
├── lazy-lock.json
├── lazyvim.json
├── lua
│ ├── config
│ │ ├── autocmds.lua
│ │ ├── keymaps.lua
│ │ ├── lazy.lua
│ │ └── options.lua
│ ├── plugins
│ │ ├── colorscheme.lua
│ │ ├── disabled.lua
│ │ └── example.lua
│ └── vscode
│ ├── config
│ │ ├── keymaps.lua
│ │ ├── lazy.lua
│ │ └── options.lua
│ └── plugins
│ ├── comment.lua
│ └── disabled.lua
└── stylua.toml
init.lua
的内容如下:
if vim.g.vscode then
-- if true then
-- Vscoe extension
require("vscode.config.options")
require("vscode.config.keymaps")
-- require("vscode.init")
require("vscode.config.lazy")
-- require("vscode.plugins.disabled")
else
-- bootstrap lazy.nvim, LazyVim and your plugins
require("config.lazy")
end
lua/vscode/config/lazy.lua
的内容如下:
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup("vscode.plugins")
由于 vscode.neovim
是使用本机的 neovim 作为后端的,lua/config/lazy.lua
这一段代码就是让 vscode.neovim
也能使用 lazy.nvim
来管理插件,并且能够启用 lua/vscode/plugins
中的插件。
lua/vscode/plugins/comment.lua
的内容如下:
return {
{
"numToStr/Comment.nvim",
lazy = false,
},
}
lua/vscode/config/lazy.lua
与 lua/vscode/plugins/comment.lua
配合起来即通过 lazy.nvim
插件管理并启用了 Comment.nvim
插件,之后 vscode 在 normal 模式下也可以通过 gc
或者 ngc
(其中 n 表示数字)来注释一行或者多行了。
同时 lua/vscode/plugins/disabled.lua
在 vscode 中禁用了 neovim 的 tokyonight
主题,防止 vscode 的代码高亮出现异常。
同步系统剪贴板 链接到标题
lua/vscode/config/options.lua
中内容修改为:
-- clipboard
local opt = vim.opt
opt.clipboard = "unnamedplus" -- Sync with system clipboard
与 LazyVim 的融合 链接到标题
LazyVim 有一个 extras 机制,打开 nvim,输入 :LazyExtras
,根据提示勾选 vscode
即可。
这样,init.lua
可以写成
require("config.lazy")
if vim.g.vscode then
else
require("config.osc52")
end
也可以实现 kgc
来注释多行代码。
但是依旧存在问题,此种模式虽然 VsCode 不再会出现高亮异常问题,但是 vscode-neovim 的 <C-w>(h/j/k/l)
会被 LazyVim 插件本身占用。
使用 neovim 的一些插件 链接到标题
Comment.nvim
已安装,还需要安装 flash.nvim
,以及 nvim-treesitter
、nvim-treesitter-textobjects
和 nvim-ts-context-commentstring
即可。
见配置文件仓库。
总结 链接到标题
配置文件已存放于远程仓库 neovim_config