推荐一款基于vim的超可扩展文本编辑器neovim

2024-04-14 22:12

本文主要是介绍推荐一款基于vim的超可扩展文本编辑器neovim,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、简介

Vim是一个基于流行的Vi编辑器的文本编辑器,最初是在20世纪70年代发布的。Vim代表“改进的Vi”,它拥有广泛的用户基础和广泛的可用插件和扩展。

Neovim是Vim的一个分支,创建于2014年,旨在解决Vim的一些缺点,并提供额外的特性和功能。Neovim向后兼容Vim,并支持Vim的大部分功能。

二、neovim特性

  • 相比 Vim 改进了性能和稳定性

  • 支持异步插件和脚本

  • 改进了对现代用户界面框架和 Unicode 字符的支持

  • 更好的终端集成和 UI 支持

  • 支持对代码的本机调试和分析支持

  • 改进了对 Lua 脚本的支持

三、安装neovim

由于neovim跨平台,可在Windows、Linux、MacOS系统上安装。

Windows上安装

仅支持Win8+

  • 使用Winget安装
winget install Neovim.Neovim
  • 使用Chocolatey安装
choco install neovim

MacOS上安装

  • 使用Homebrew安装
brew install neovim
  • 使用MacPorts安装
sudo port selfupdate
sudo port install neovim
  • 直接下载压缩包安装

x86_64版本的

curl -LO https://github.com/neovim/neovim/releases/download/nightly/nvim-macos-x86_64.tar.gztar -xzvf nvim-macos-x86_64.tar.gzsudo mv nvim-macos-x86_64 /usr/local/cd /usr/localsudo mv nvim-macos-x86_64 nvimecho 'export PATH="/usr/local/nvim/bin:$PATH"' >> ~/.zshrc

arm64版本的

curl -LO https://github.com/neovim/neovim/releases/download/nightly/nvim-macos-arm64.tar.gztar -xzvf nvim-macos-arm64.tar.gzsudo mv nvim-macos-arm64 /usr/local/cd /usr/localsudo mv nvim-macos-arm64 nvimecho 'export PATH="/usr/local/nvim/bin:$PATH"' >> ~/.zshrc

Linux上安装

直接下载压缩包安装

curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gztar -xzvf nvim-linux64.tar.gzsudo mv nvim-linux64 /usr/local/cd /usr/localsudo mv nvim-linux64 nvimecho 'export PATH="/usr/local/nvim/bin:$PATH"' >> ~/.zshrc

基于CentOS系的使用yum安装

yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpmyum install -y neovim python3-neovim

基于Debian系的使用apt-get安装

sudo apt-get install neovim

基于Fedora系的使用dnf安装

sudo dnf install -y neovim python3-neovim

四、配置neovim

Vim采取硬编码的路径来存储插件和配置文件。通常是~/.vim目录。尽管更改这个硬编码路径并非不可能,但与NeoVim如何构建其配置目录相比,仍然需要做很多工作。

NeoVim遵循XDG基本目录规范。遵循此规范的程序将其配置文件存储在由XDG_CONFIG_HOME环境变量指定的目录中。按照惯例,它通常指向~/.config目录。

因此,NeoVim将所有插件和配置文件存储在~/.config/nvim目录,使其符合XBD规范。

可以直接复用原vim配置

直接做一个软链接链到neovim的配置

先在~/.config下创建nvim目录cd ~/.configmkdir nvimln -s ~/.vimrc ~/.config/nvim/init.vim做一个判断设置不同的命令
if has('nvim')" NeoVim specific commands
else" Standard Vim specific commands
endif

流行的插件

  • LazyVim:简化Neovim的配置。

  • CoC.nvim:是Neovim的语言服务器协议客户端,它为各种编程语言提供代码补全、语法高亮显示和错误检查。

  • Vim-Plug:是一个流行的 Vim 插件管理器,但它也适用于 Neovim。它可以轻松安装和管理 Neovim 插件,并支持延迟加载和自动更新等功能。

  • nvim-tree.lua:是一个用于Neovim的文件系统资源管理器,它提供了项目目录结构的树状视图。它支持基本的文件管理功能,如创建、删除和重命名,并可以自定义各种图标和主题。

  • nvim-telescope:这是一个高度可扩展的列表模糊查找器。

  • nvim-treesitter:提供了一种简单的方法来使用Neovim中的tree-siter,还提供了高亮显示等功能。

如何安装配置插件

使用vim-plug来便利安装

安装vim-plug

Linux、MacOS

sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'

Windows

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
使用示例

在call plug#begin()和call plug#end()中间列出所要安装的插件即可,如下:

call plug#begin()" 默认的插件存储目录:
"   - Vim (Linux/macOS): '~/.vim/plugged'
"   - Vim (Windows): '~/vimfiles/plugged'
"   - Neovim (Linux/macOS/Windows): stdpath('data') . '/plugged'" 可以在begin里面指定插件的目录"   - e.g. `call plug#begin('~/.vim/plugged')`
"   - 避免使用vim标准目录名:plugin
"   - 必须使用单引号包裹" Shorthand notation for GitHub; translates to https://github.com/junegunn/vim-easy-align
Plug 'junegunn/vim-easy-align'" Any valid git URL is allowed
Plug 'https://github.com/junegunn/seoul256.vim.git'" Using a tagged release; wildcard allowed (requires git 1.9.2 or above)
Plug 'fatih/vim-go', { 'tag': '*' }" Using a non-default branch
Plug 'neoclide/coc.nvim', { 'branch': 'release' }" Use 'dir' option to install plugin in a non-default directory
Plug 'junegunn/fzf', { 'dir': '~/.fzf' }" Post-update hook: run a shell command after installing or updating the plugin
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }" Post-update hook can be a lambda expression
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }" If the vim plugin is in a subdirectory, use 'rtp' option to specify its path
Plug 'nsf/gocode', { 'rtp': 'vim' }" On-demand loading: loaded when the specified command is executed
Plug 'preservim/nerdtree', { 'on': 'NERDTreeToggle' }" On-demand loading: loaded when a file with a specific file type is opened
Plug 'tpope/vim-fireplace', { 'for': 'clojure' }" Unmanaged plugin (manually installed and updated)
Plug '~/my-prototype-plugin'" Initialize plugin system
" - Automatically executes `filetype plugin indent on` and `syntax enable`.
call plug#end()
" You can revert the settings after the call like so:
"   filetype indent off   " Disable file-type-specific indentation
"   syntax off            " Disable syntax highlighting
常用的命令
  • PlugInstall:安装插件

  • PlugUpdate:安装或更新插件

  • PlugClean:移除未列出的插件

  • PlugUpgrade:更新vim-plug插件自身

  • PlugStatus:检查插件状态

vim-plug地址:

在这里插入图片描述

注意

敲命令的时候使用nvim

在这里插入图片描述

这篇关于推荐一款基于vim的超可扩展文本编辑器neovim的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/904161

相关文章

Spring Boot 中整合 MyBatis-Plus详细步骤(最新推荐)

《SpringBoot中整合MyBatis-Plus详细步骤(最新推荐)》本文详细介绍了如何在SpringBoot项目中整合MyBatis-Plus,包括整合步骤、基本CRUD操作、分页查询、批... 目录一、整合步骤1. 创建 Spring Boot 项目2. 配置项目依赖3. 配置数据源4. 创建实体类

Java子线程无法获取Attributes的解决方法(最新推荐)

《Java子线程无法获取Attributes的解决方法(最新推荐)》在Java多线程编程中,子线程无法直接获取主线程设置的Attributes是一个常见问题,本文探讨了这一问题的原因,并提供了两种解决... 目录一、问题原因二、解决方案1. 直接传递数据2. 使用ThreadLocal(适用于线程独立数据)

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

防近视护眼台灯什么牌子好?五款防近视效果好的护眼台灯推荐

在家里,灯具是属于离不开的家具,每个大大小小的地方都需要的照亮,所以一盏好灯是必不可少的,每个发挥着作用。而护眼台灯就起了一个保护眼睛,预防近视的作用。可以保护我们在学习,阅读的时候提供一个合适的光线环境,保护我们的眼睛。防近视护眼台灯什么牌子好?那我们怎么选择一个优秀的护眼台灯也是很重要,才能起到最大的护眼效果。下面五款防近视效果好的护眼台灯推荐: 一:六个推荐防近视效果好的护眼台灯的

智能交通(二)——Spinger特刊推荐

特刊征稿 01  期刊名称: Autonomous Intelligent Systems  特刊名称: Understanding the Policy Shift  with the Digital Twins in Smart  Transportation and Mobility 截止时间: 开放提交:2024年1月20日 提交截止日

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

centos 6安装 vim

centos 安装vim 1.首先查询当前当前vim所依赖的包存在不存在.检查缺少哪个几个依赖包 [root@bogon firstCopy]# rpm -qa|grep vivimvim-common-7.4.160-5.el7.x86_64vim-enhanced-7.4.160-5.el7.x86_64vim-filesystem-7.4.160-5.el7.x86_64vim-