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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

吉时利Keithley2602B数字源表

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

[Linux] 文件系统

UNIX操作系统将文件组织成一个有层次的树形结构: 标准目录: 根目录: /tmp目录 主目录: 这就是主目录 一般与系统有关的信息都存放在etc目录下 注意: /etc/passwd存放的是用户账户信息,不是密码信息&#xf…

项目中选择Entity Framework Core还是Dapper?

我是将 Dapper 还是 Entity framework core 用于下一个 .NET 项目?当你必须做出这个决定时,总是令人困惑,为了项目的成功,你需要做出正确的决定。让我来帮你... 介绍 使用 .NET 开发的应用程序可以根据其使用的对象关系映射器 &…

课程设计---哈夫曼树的编码与解码(Java详解)

目录 一.设计任务&&要求: 二.方案设计报告: 2.1 哈夫曼树编码&译码的设计原理: 2.3设计目的: 2.3设计的主要过程: 2.4程序方法清单: 三.整体实现源码: 四.运行结果展示&…

SkyWalking 极简入门

1. 概述 1.1 概念 SkyWalking 是什么? FROM Apache SkyWalking 分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。 提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体…

milvus元数据解析工具milvusmetagui介绍使用

简介 milvusmetagui是一款用来对milvus的元数据进行解析的工具,milvus的元数据存储在etcd上,而且经过了序列化,通过etcd-manager这样的工具来查看是一堆二进制乱码,因此开发了这个工具对value进行反序列化解析。 在这里为了方便交…

建材租赁管理系统软件教程,操作简单佳易王租赁管理系统操作教程

建材租赁管理系统软件教程,操作简单佳易王租赁管理系统操作教程 一、软件操作教程 以下软件操作教程以,佳易王租赁管理系统为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 租赁登记: a、租赁登记可以记录日…

sklearn之各类朴素贝叶斯原理

sklearn之贝叶斯原理 前言1 高斯朴素贝叶斯1.1 对连续变量的处理1.2 高斯朴素贝叶斯算法原理 2 多项式朴素贝叶斯2.1 二项分布和多项分布2.2 详细原理2.3 如何判断是否符合多项式贝叶斯 3 伯努利朴素贝叶斯4 类别贝叶斯4 补充朴素贝叶斯4.1 核心原理4.2 算法流程 前言 如果想看…

Python | Leetcode Python题解之第160题相交链表

题目: 题解: class Solution:def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode:A, B headA, headBwhile A ! B:A A.next if A else headBB B.next if B else headAreturn A

吴恩达机器学习 第三课 week1 无监督学习算法(上)

目录 01 学习目标 02 无监督学习 03 K-means聚类算法 3.1 K-means聚类算法原理 3.2 k-means算法实现 3.3 利用k-means算法压缩图片 04 总结 01 学习目标 (1)了解无监督学习算法 (2)掌握K-means聚类算法实现步骤 &#xff…

it职业生涯规划系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,职业介绍管理,答题管理,试题管理,基础数据管理 前台账户功能包括:系统首页,个人中心,在线答题&#xff0…

基于SSM+Jsp的书店仓库管理系统

摘要:仓库作为储存货物的核心功能之一,在整个仓储中具有非常重要的作用,是社会物质生产的必要条件。良好的仓库布局环境能够对货物进入下一个环节前的质量起保证作用,能够为货物进入市场作好准备,在设计中我们根据书店…

基于matlab的RRT算法路径规划(附带案例源码)

文章中的所有案例均为博主手动复现,用于记录博主学习路径规划的过程,如有不妥,欢迎在评论区交流 目录 1 标准RRT1.1 算法原理1.2 演示 2 GBRRT2.1 算法原理2.2 算法演示 3 RRT-STAR3.1 算法原理3.2 算法演示 4 RRT-CONNECT4.1 算法原理4.2 算…

实现农业现代化与乡村振兴战略的融合发展方案

政策背景 “一号文件”精神贯彻 数字乡村试点精神全面实施 工业化思维谋划农业发展 数字乡村建设纳入县级“十四五”发展规划 乡村振兴实施目标 2020年:乡村振兴取得重要进展 2035年:乡村振兴取得决定性进展,农业农村现代化基本实现 205…

在 Ubuntu 18.04.4 LTS上安装 netmap

文章目录 步骤运行配置文件编译安装使用netmap 步骤 sudo su sudo apt-get update sudo apt install build-essential sudo apt-get install -y git sudo apt-get install -y linux-headers-$(uname -r)rootVM-20-6-ubuntu:/home/ubuntu/netmap/LINUX# git clone https://gith…

反激开关电源EMI电路选型及计算

EMI :开关电源对电网或者其他电子产品的干扰 EMI :传导与辐射 共模电感的滤波电路,La和Lb就是共模电感线圈。这两个线圈绕在同一铁芯上,匝数和相位都相 同(绕制反向)。 这样,当电路中的正常电流(差模&…

回归算法详解

回归算法详解 回归分析是一类重要的机器学习方法,主要用于预测连续变量。本文将详细讲解几种常见的回归算法,包括线性回归、岭回归、Lasso 回归、弹性网络回归、决策树回归和支持向量回归(SVR),并展示它们的特点、应用…

Ubuntu-基础工具配置

基础工具配置 点击左下角 在弹出界面中点击 以下命令都是在上面这个界面执行(请大家注意空格) 命令输入完后,回车键就是执行,系统会提示输入密码(就是你登录的密码) 1.安装net工具 :(ifconfi…

uniapp 微信小程序自定义分享图片

场景&#xff1a;微信小程序用户&#xff0c;点击小程序里商品的分享按钮时&#xff0c;想要不同的商品展示不用的分享内容&#xff0c;比如分享图片上展示商品的图片、价格等信息。分享的UI图如下&#xff1a; 实现方法&#xff1a; 1. 分享按钮&#xff1a;<button open-…

Mysten Labs宣布推出Walrus:一种去中心化存储和数据可用性协议

Walrus是为区块链应用和自主代理提供的创新去中心化存储网络。Walrus存储系统今天以开发者预览版的形式发布&#xff0c;面向Sui开发者征求反馈意见&#xff0c;并预计很快会向其他Web3社区广泛推广。 通过采用纠删编码创新技术&#xff0c;Walrus能够快速且稳健地将非结构化数…