什么是 NeoVim?

[[NeoVim]] 是 Vim 编辑器的一个重构和扩展版本,旨在修复长期存在的问题,提供更好的插件接口,并简化了脚本配置。对于开发者来说,NeoVim 是一个强大的文本编辑器,支持多种编程语言,并且具有高度的可定制性。

安装 NeoVim

1. 使用包管理器安装

对于大多数操作系统,可以使用包管理器来安装 NeoVim。以下是一些常见的操作系统的安装方法:

  • Ubuntu / Debian
sudo apt update
sudo apt install neovim
  • Fedora
sudo dnf install neovim
  • Arch Linux
sudo pacman -S neovim
  • macOS(使用 Homebrew)
brew install neovim

2. 手动安装

如果你希望手动安装 NeoVim,可以从官方 GitHub 仓库 下载源代码,并按照以下步骤编译安装:

git clone https://github.com/neovim/neovim.git
cd neovim
make CMAKE_BUILD_TYPE=Release
sudo make install

配置 NeoVim

NeoVim 的配置文件是 init.vim,默认位于 ~/.config/nvim/ 目录下。你可以使用以下命令创建并打开配置文件:

mkdir -p ~/.config/nvim
nvim ~/.config/nvim/init.vim

1. 基本配置

init.vim 中添加一些基本配置来优化你的编辑体验:

" 启用行号
set number

" 启用语法高亮
syntax on

" 设置缩进
set tabstop=4
set shiftwidth=4
set expandtab

" 启用鼠标
set mouse=a

" 启用剪贴板
set clipboard=unnamedplus

" 搜索时忽略大小写
set ignorecase
set smartcase

2. 安装插件管理器

推荐使用 vim-plug 作为插件管理器。首先,下载并安装 vim-plug:

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

init.vim 文件的顶部添加以下内容,以便使用 vim-plug:

call plug#begin('~/.local/share/nvim/plugged')

" 在这里添加插件

call plug#end()

常用插件推荐

1. 文件树插件:NERDTree

NERDTree 是一个流行的文件浏览插件,方便你在项目中快速导航。

Plug 'preservim/nerdtree'

" NERDTree 配置
nmap <C-n> :NERDTreeToggle<CR>

2. 自动补全插件:coc.nvim

coc.nvim 是一个强大的自动补全插件,支持多种编程语言的智能提示。

Plug 'neoclide/coc.nvim', {'branch': 'release'}

" coc.nvim 配置
" 在 'init.vim' 中添加以下内容来启用 coc.nvim
autocmd BufEnter * silent! call CocActionAsync('highlight')
inoremap <silent><expr> <TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
inoremap <silent><expr> <S-TAB> pumvisible() ? "\<C-p>" : "\<S-TAB>"

3. 语法高亮插件:nvim-treesitter

nvim-treesitter 提供更强大和精准的语法高亮支持。

Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}

" nvim-treesitter 配置
lua <<EOF
require'nvim-treesitter.configs'.setup {
  highlight = {
    enable = true,
  },
}
EOF

4. 模糊搜索插件:fzf.vim

fzf.vim 是一个基于命令行的模糊搜索插件,可以快速查找文件。

Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'

" fzf 配置
nmap <C-p> :Files<CR>

插件

  • https://github.com/folke/flash.nvim 快速跳转