VSCode 安装NeoVim扩展(详细)

目录

1、安装NeoVim扩展

2、windows安装Neovim软件

3、优化操作相关的配置:

5、Neovim最好的兼容性配置

6、技巧和特点

6.1 故障排除

6.2、Neovim 插件组合键设置

6.3、跳转列表


1、安装NeoVim扩展

在扩展商店搜索NeoVim,安装扩展

2、windows安装Neovim软件

下载安装Neovim.exe软件包 0.9.0版本或更新版本(建议0.10版本),下载地址为:https://neovim.io/doc/

  • 在VSCode上扩展配置中设置Neovim的安装路径,你需要明确Neovim安装的完整路径,比如windows下是: "C:\Neovim\bin\nvim.exe" ,linux下是 "/usr/local/bin/nvim"。
  • 设置id是"vscode-neovim.neovimExecutablePaths.win32/linux/darwin",win32/linux/darwin分别对应你的系统

方法一:通过命令行打开setting.json

方法二:在扩展商店打开

3、优化操作相关的配置:

方法1:在设置->功能->扩展->Experimental:Affinity里添加

asvetliakov.vscode-neovim = 1

方法2:

在setting.json里添加

settings.json: "extensions.experimental.affinity": { "asvetliakov.vscode-neovim": 1 },

4、NeoVim init.vim配置

由于许多Vim插件可能会在VSCode中引起问题,因此建议从空的init.vim开始。有关支持哪些类型的插件的指南,请参见故障排除。

在Github上创建问题之前,请确保您可以使用空init.vim重现问题。没有VSCode扩展。

确认Neovim是否跑在VSCode里,可以在init.vim里添加如下配置:

if exists('g:vscode') " VSCode extension 
else " ordinary Neovim endif

用lua语言是:

if vim.g.vscode then -- VSCode extension 
else -- ordinary Neovim end

为了有条件激活插件,vim-plug有一些解决方案。packer.nvim和lazy.nvim已经内置支持了通过cond=vim.g.vscode配置。配置vim插件看插件的帮助文档。

5、Neovim最好的兼容性配置

尽管该扩展努力与旧版本的Neovim尽可能兼容,但一些旧版本可能有一些不再存在的怪癖。有鉴于此,建议在一些旧版本中使用某些配置设置,以获得最佳体验。这些可以在维基上找到。

6、技巧和特点

  • 文件和编辑器管理命令比如:e / :w / :q / :vsplit / :tabnext /等等被映射到相应的VSCode命令且行为可能不同。

6.1 故障排除

通过:Output:Focus on Output View 并且选择vscode-neovim来看log

在VSCode设置里使能vscode-neovim.neovimClean,设置之后启动Nvim不带你的插件(nvim -- clean).

Neovim插件可以做任何事情。尤其是视觉效果会导致视觉伪影。vcode -neovim尽其所能地融合了Nvim和VSCode的视觉效果,但它还远远不够完美。您可能需要禁用一些会导致视觉效果的Nvim插件。

  • 如果遇到渲染问题(视觉伪影),请尝试按CTRL-L强制Nvim重新绘制。
  • 如果你得到无法初始化vcode -neovim: 命令 'type'已经存在的消息,卸载其他使用registerTextEditorCommand("type",…)的VSCode扩展(如VSCodeVim或Overtype)。
  • 如果你有任何性能问题(通常是光标抖动),请确保你没有使用这些类型的扩展:
  • 任何经常渲染装饰器的东西:

        行号扩展(VSCode内置了对正常/相对行号的支持)

        缩进指南扩展(VSCode有内置的缩进指南)

        括号高亮显示扩展(VSCode有内置功能)

  • 延迟扩展主机的VSCode扩展,如“括号对着色器”
  • 增加延迟并导致性能问题的Vim插件。
  • 确保禁用不需要的插件,因为许多插件在VSCode中没有意义,可能会导致问题。

你不需要任何代码,高亮,补全,LSP插件以及任何生成窗口/缓冲区的插件(nerdtree和类似的),模糊查找器等。

许多导航/文本对象/编辑插件应该是好的。

如果你不确定,禁用所有其他扩展(在终端输入code --disable-extensions),重新加载VSCode窗口,在报告它之前看看问题是否仍然存在。

6.2、Neovim 插件组合键设置

配置:

  • compositeTimeout
  • compositeKeys(组合键)

例子:

在你的setting.json里添加

  • jj组合键,在插入模式,快速输入jj会退出插入模式
{ "vscode-neovim.compositeKeys": { "jj": { "command": "vscode-neovim.escape", }, }, 
}
  • jk组合键,在插入模式,快速输入jk会退出插入模式并保存修改
{ "vscode-neovim.compositeKeys": { "jk": { // Use lua to execute any logic "command": "vscode-neovim.lua", "args": [[ "local code = require('vscode')", "code.action('vscode-neovim.escape')",     "code.action('workbench.action.files.save')", ], ], }, }, }

组合退出命令迁移:

已弃用" vcode -neovim. compositeescape1 "和" vcode -neovim. compositeescape2 "命令。 迁移:   

  1. 在keybindings.json中使用vcode -neovim. compositeescape删除键绑定。  
  2. 在settings.json中配置compositeKeys来替换删除的键绑定。 

例子:

如果你有下列的按键绑定在keybindings.json:

{ "key": "j", "command": "vscode-neovim.compositeEscape", "when": "neovim.mode == insert && editorTextFocus", "args": "j" 
}

然后你应该移除并增加下列的配置settings.json:

{ "vscode-neovim.compositeKeys": { "jj": { "command": "vscode-neovim.escape" } } 
}

6.3、跳转列表

VSCode的跳转列表被使用代替Neovim的,这是为了使VSCode的本地导航(鼠标点击,跳转到定义等)可以通过跳转列表进行导航。 

如果你使用客制化映射,确认绑定workbench.action.navigateBack / workbench.action.navigateForward

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/30477.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重学java 77.JDK新特性 ③ Stream流

The road is long,it can be really hard.Whatever you do,you hold on to that foolishly hopeful smile —— 24.6.19 Stream流 stream流中的"流"不是特指"IO流",它是一种"流式编程"(编程方式),可以看做是"流水线 package S109Stream;im…

【Python机器学习实战】 | Lasso回归和弹性网回归详细分析研究

🎩 欢迎来到技术探索的奇幻世界👨‍💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…

react使用OpenLayers实现类似船某网在地图放大时展示具体船舶符号缩小时显示聚合小点效果

一、效果 如图所示,地图缩小(即比例尺放大)时,显示聚合小绿点; 地图放大(比例尺缩小)时,展示具体船舶符号: 二、思路 1)设置2个图层,一个展示…

计网重点面试题-TCP三次握手四次挥手

三次握手 第一次握手(syn1) 客户端会随机初始化序号(client_isn),将此序号置于 TCP 首部的「序列号」字段中,同时把 SYN 标志位置为 1,表示 SYN 报文。接着把第一个 SYN 报文发送给服务端,表示向服务端发…

Microsoft Edge 查看已保存账号的密码

1、打开更多菜单选项 打开浏览器右上角的“...”设置及其他,快捷键:ALTF。 2、打开设置选项 选择“设置”,快捷键:g 3、点击密码 在“个人资料”选项中找到密码选项 4、电子钱包 电子钱包会显示“站点和应用”所保存的账户信息…

JAVAEE之网络原理(2)_传输控制协议(TCP)的连接管理机制,三次握手、四次挥手,及常见面试题

前言 在上一节中,我们简单介绍了 TCP 协议的相关概念和格式,而且还介绍了TCP 协议原理中的 确认应答机制、超时重传机制,在本节中我们将会继续介绍 TCP协议原理中的其他机制。 连接管理机制(安全机制) 在正常情况下&…

lvgl的应用:移植MusicPlayer(基于STM32F407)

目录 概述 1 软硬件环境 1.1 UI开发版本 1.2 MCU开发环境 1.3 注意点 2 GUI Guider开发UI 2.1 使用GUI Guider创建UI 2.2 GUI Guider编译项目和测试 2.2.1 GUI Guider编译项目 2.2.2 编译 2.3 了解GUI Guider生成代码 3 移植项目 3.1 Keil中加载代码 3.2 调用G…

漏洞挖掘 | 记一次src挖掘-小程序敏感信息泄露

权当是一次漏洞挖掘的思路分享 闲言 就现在的一个web漏洞挖掘强度还是非常高的,所以我们不妨把我们的眼光投向一个之前可能未曾涉及到的区域———小程序 是的微信小程序,这玩意的防范能力和过滤能力其实对比web方向是要弱小很多的 进入正题 以下就是…

Javase.抽象类和接口

抽象类和接口 【本节目标】1.抽象类1.1抽象类的概念1.2 抽象类语法1.3 抽象类特性1.4 抽象类的作用 2. 接口2.1 接口的概念2.2 语法规则2.3 接口使用2.4 接口特性2.5 实现多个接口2.6 接口间的继承2.7 接口使用实例2.8Clonable 接口和深拷贝2.9 抽象类和接口的区别 3. Object类…

GT_BERT文本分类

目录 GT-BERT结束语代码实现整个项目源码(数据集模型) GT-BERT 在为了使 BERT 模型能够得到广泛的应用,在保证模型分类准确率不降低的情况下,减少模型参数规模并降低时间复杂度,提出一种基于半监督生成对抗网络与 BERT 的文本分类模型 GT-BERT。模型的整…

【ajax基础04】form-serialize插件

目录 一:form-serialize插件 作用: 语法格式: 一:form-serialize插件 作用: 快速且大量的收集表单元素的值 例如上图对于多表单元素的情形,单靠通过”选择器获取节点.value”值的形式,获取…

使用 GCD 实现属性的多读单写

使用 Grand Central Dispatch (GCD) 实现多读单写的属性 首先需要确保在多线程环境下的线程安全性。可以使用 GCD 提供的读写锁机制 dispatch_rwlock_t 或者 dispatch_queue_t 来实现这个功能。 Swift版本的实现 怎样创建一个并发队列 ?// 使用 Swift 来实现的首…

.net 奇葩问题调试经历之1——在红外相机获取温度时异常

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不仅仅是技术还有人心,人心不可测,海水不可量,唯有技术,才是深沉黑夜中的一座闪烁的灯塔序言 我们在研发中,经常除了造产品…

吉时利Keithley2602B数字源表

吉时利Keithley2602B数字源表 2601B、2602B、2604B 系统 Sourcemeter SMU 仪器 2601B、2602B 和 2604B 系统 Sourcemeter SMU 仪器为 40W DC / 200W 脉冲 SMU,支持 10A 脉冲,3A 至 100fA 和 40V 至 100nV DC。它们将精密电源、实际电流源、6 位数字万用…

使用asyncua模块的call_method方法调用OPC UA的Server端方法报错:asyncio.exceptions.TimeoutError

使用asyncua模块的call_method方法调用OPC UA的Server端方法报错:asyncio.exceptions.TimeoutError 报错信息如下: Traceback (most recent call last): asyncio.run(main()) File “D:\miniconda3\envs\py31013\lib\asyncio\runners.py”, line 44, in…

反激开关电源整流桥选型及计算

整流桥的作用就是把输入交流电压整形成直流电压,把正弦波整成馒头波,由于整流管的单向导电 性,在输入电压瞬时值小于滤波电容上电压时整流桥,在这个时候是不导通的,使整流桥的电流变 成2-3ms左右的窄脉冲。为获得所需…

【数据结构】选择题

在数据结构中,从逻辑上可以把数据结构分为(线性结构和非线性结构) 当输入规模为n时,下列算法渐进复杂性中最低的是() 时间复杂度 某线性表采用顺序存储结构,每个元素占4个存储单元&#xf…

13.3 Go 性能优化

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

【MAVEN学习 | 第1篇】Maven介绍与安装

文章目录 前言 一. Maven主要作用1.1 依赖管理1.2 项目构建 二. Maven安装和配置2.1 安装2.2 配置环境变量2.3 命令测试2.4 配置文件(1)依赖本地缓存位置(本地仓库位置)(2)配置国内阿里镜像(3&a…

WPS相同字体但是部分文字样式不一样解决办法

如下图,在使用wps编辑文档的时候发现有些电脑的文字字体很奇怪,但是把鼠标移到这个文字的位置,发现它和其他正常文字的字体是一样的,都是仿宋_GB2312 正常电脑的文字如下图所示 打开C:\Windows找到Fonts这个文件夹 把仿宋_GB2312这…