Neovim配置

花了两天时间搞懂了neovim的配置,总结一下。Neovim是一个强大的文本编辑器,可以提供高效的编辑体验。    

## 下载安装nvim

### 首先下载nvim

可以使用包管理器下载:sudo apt install neovim但是版本比较低(0.7.x),可以在官方下载压缩包Home - Neovim

### 然后解压

```shell

tar xzf nvim-linux64.tar.gz
```

这会将文件解压缩到当前目录中的`nvim-linux64`目录中。

### 添加到环境变量中

export PATH=$PATH:~/nvim-linux64/bin

如果你想在每次登录时自动添加该路径到PATH环境变量中,可以将上述命令添加到你的~/.bashrc~/.zshrc文件中。

### 检验是否安装成功

nvim --version

nvim

## neovim配置

### 前置知识

1.neovim配置的入口文件是~/.config/nvim/init.vim或者~/.config/nvim/init.lua.

对于lua方式的管理更加灵活,现代的nvim配置一般是通过lua文件进行配置的

2.包管理器和插件

3.snippet和LSP

Snippet和LSP都是和代码编辑器相关的技术。

Snippet是一组预定义的代码块,可以在输入特定的缩写或关键字后快速插入到文档中。例如,在编写JavaScript代码时,你可以输入for,然后按下Tab键,编辑器就会自动插入一个for循环的代码块。

LSP(Language Server Protocol)是一种协议,用于在不同的代码编辑器和语言服务器之间进行通信,以提供代码补全、代码重构、语法检查、文档提示等功能。通过LSP,编辑器可以向语言服务器发送请求,并接收服务器返回的响应。这样,不同的编辑器就可以共享同一种语言服务器,从而提高代码编辑的一致性和效率。

Snippet和LSP都可以提高代码编辑的效率和质量。Snippet可以让你快速插入常用的代码块,而LSP可以提供更准确和智能的代码补全、语法检查等功能。大多数现代的代码编辑器都支持Snippet和LSP技术,例如VS Code、Sublime Text、Atom等。

4.DAP:

DAP 即调试适配协议( Debug Adapter Protocol ),顾名思义,它是用来对多种调试器进行抽象统一的适配层,将原有 IDE 和调试工具直接交互的模式更改为和 DAP 进行交互。该模式可以让 IDE 集成多种调试器变得更简单,且灵活性更好。

dap的思路和lsp是一样的,也是将调试这个步骤与编辑器分开,进行解耦操作,这种思想简单来说就是标准化一个抽象协议,用于开发工具如何与具体调试器通信。

至于lint和format就可以简单理解为是语法的静态分析(lsp的server本身也有这个能力,但是可以添加其他工具增强)和代码的格式化

### AI方法

  1. 安装插件管理器:建议使用像vim-plug或dein.vim这样的插件管理器。可以在它们的官方网站上找到详细的安装说明。

  2. 可以使用curl或wget等工具下载vim-plug的安装脚本。例如,使用curl下载:

    $ curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
        https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
    

    如果你使用wget,可以输入以下命令:

    $ wget [https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim ↗](https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim) \
        -O ~/.local/share/nvim/site/autoload/plug.vim
  3. 配置插件:在安装插件管理器后,需要在配置文件中添加插件列表。在使用插件之前,需在neovim的配置文件(一般为~/.config/nvim/init.vim)中添加如下内容:

call plug#begin()

" 添加插件列表
" Plug '插件名'

call plug#end()

其中,Plug '插件名'是添加插件的命令。在添加完插件后,需要运行:PlugInstall命令来安装插件。比如:

Plug 'jiangmiao/auto-pairs' 
Plug 'morhetz/gruvbox'

这里还要在后面加上一句话:colorscheme gruvbox就可以把主题换成gruvbox.

这是最终的init.vim

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 插件管理
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
​
call plug#begin('~/.config/nvim/plugged')
​
" 插件格式就是 Plug '插件名' 下面为例子
Plug 'jiangmiao/auto-pairs' 
Plug 'morhetz/gruvbox'
call plug#end()
​
colorscheme gruvbox
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 通用设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let mapleader = ","      " 定义<leader>键
set nocompatible         " 设置不兼容原始vi模式
filetype on              " 设置开启文件类型侦测
filetype plugin on       " 设置加载对应文件类型的插件
set noeb                 " 关闭错误的提示
syntax enable            " 开启语法高亮功能
syntax on                " 自动语法高亮
set t_Co=256             " 开启256色支持
set cmdheight=1          " 设置命令行的高度
set showcmd              " select模式下显示选中的行数
set ruler                " 总是显示光标位置
set laststatus=2         " 总是显示状态栏
set number               " 开启行号显示
set cursorline           " 高亮显示当前行
set whichwrap+=<,>,h,l   " 设置光标键跨行
set ttimeoutlen=0        " 设置<ESC>键响应时间
set virtualedit=block,onemore   " 允许光标出现在最后一个字符的后面
set history=100          " 设置历史记录条数
​
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 代码缩进和排版
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
​
set autoindent           " 设置自动缩进
set cindent              " 设置使用C/C++语言的自动缩进方式
set cinoptions=g0,:0,N-s,(0    " 设置C/C++语言的具体缩进方式
set smartindent          " 智能的选择对其方式
filetype indent on       " 自适应不同语言的智能缩进
filetype plugin on       " 载入文件类型插件
set expandtab            " 将制表符扩展为空格
set tabstop=4            " 设置编辑时制表符占用空格数
set shiftwidth=4         " 设置格式化时制表符占用空格数
set softtabstop=4        " 设置4个空格为制表符
set smarttab             " 在行和段开始处使用制表符
set nowrap               " 禁止折行
set backspace=2          " 使用回车键正常处理indent,eol,start等
set sidescroll=10        " 设置向右滚动字符数
set nofoldenable         " 禁用折叠代码
​
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 代码补全
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
​
set wildmenu             " vim自身命名行模式智能补全
set completeopt-=preview " 补全时不显示窗口,只显示补全列表
​
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 搜索设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
​
set hlsearch            " 高亮显示搜索结果
set incsearch           " 开启实时搜索功能
set noignorecase        " 搜索时大小写不敏感
​
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 缓存设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
​
set nobackup            " 设置不备份
set noswapfile          " 禁止生成临时文件
set autoread            " 文件在vim之外修改过,自动重新读入
set autowrite           " 设置自动保存
set confirm             " 在处理未保存或只读文件的时候,弹出确认
​
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 编码设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
​
set termencoding=utf-8
set fileencodings=utf8,ucs-bom,gbk,cp936,gb2312,gb18030
​
  1. 配置neovim:可以在配置文件中添加各种设置来定制neovim的行为。以下是一些常见的配置选项:
  • 设置缩进:set tabstop=4 shiftwidth=4 expandtab
  • 启用行号:set number
  • 启用语法高亮:syntax on
  • 启用自动补全:set completeopt=menuone,noinsert,noselect
  1. 配置键映射:可以将某些按键映射到特定的命令,以提高编辑效率。在配置文件中添加如下内容:
" 将<F2>键映射到保存当前文件
noremap <F2> :w<CR>

" 将<F3>键映射到打开文件浏览器
noremap <F3> :Explorer<CR>

其中,noremap是禁止递归映射的命令,<F2><F3>是按键名称,:w<CR>:Explorer<CR>是要映射到的命令。

以上是配置neovim的一般步骤,可以根据自己的需求进行定制。同时,网上有很多neovim的配置示例,可以参考一下别人的配置来提高工作效率。

### b站up的做法视频地址:https://www.bilibili.com/video/BV1no4y1s7B9/?spm_id_from=333.788.top_right_bar_window_default_collection.content.click

博客地址:https://github.com/Fireond/dotfiles/blob/main/doc/fvim/init.md

使用了stow对dotfiles进行管理(Dotfiles是指以.开头的隐藏文件,它们通常用于存储用户的个人配置和环境变量等信息。常见的dotfiles包括.bashrc.vimrc.tmux.conf等,它们可以让用户在不同的系统和终端环境中保持一致的配置和习惯。):

使用包管理器安装stow,然后mkdir ~/.dotfiles,之后可以把所有的dotfiles放进这个文件夹进行集中管理,写完后在~/.dotfiles这个路径下使用stow xxx 就可以把xxx软链接到~里面

### 使用知乎博主已经搭建好的环境

我的现代化Neovim配置 - 知乎

比较简单,下载好nvim后执行一行指令就可以开箱即用,不过对于vim我还不是很熟悉,而且出现了一些错误,后面再学习一下。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值