# neovim 配置体验
# 背景
使用vim(neovim)也有三四年了,在此记录下常用的一些插件
顺便将相关配置同步到 github上,方便后续换电脑的时候进行配置同步
# neovim 简介
截止目前(2022-02-03),neovim在 github上已经有了 50K 的 star,而 vim具有 26Kstar
Neovim是 Vim的一个雄心勃勃的重构。主要目标是:
- 重构代码以改善维护
- 实施新的高级功能
- 展示一个更好、更强大的插件系统
- 开放的开发模式,随时接受贡献,接受的标准也很明确。
具有以下特性
- 现代图形用户界面
- 从任何语言访问
API,包括C/C++, C#,Clojure,D,Elixir,Go,Haskell,Java,JavaScript/Node.js,Julia,Lisp,Lua,Perl,Python,Racket,Ruby,Rust - 嵌入式、可编写脚本的终端仿真器
- 异步作业控制
- 多个编辑器实例之间的共享数据(
shada)。 - 支持
XDG基础目录 - 与大多数
Vim插件兼容,包括Ruby和Python插件
# 安装
neovim 支持多种安装方式,如:直接下载、包管理器安装、源码安装等诸多方式
本人所用系统为CentOS 8,选择通过yum安装
安装命令如下
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
yum install -y neovim python3-neovim
此时,已经nvim使用neovim了,为方便期间,设置别名,操作如下:
echo "alias vim=\"nvim\"" >> ~/.bashrc
到此,通过执行type vim能看到 vim已经被映射到了nvim,方便后续使用nvim
# 包管理器
# vim-plug
vim-plug简单理解就是一个容器,里面可以配置很多插件,然后使用命令让它自己去下载,然后配置到neovim中去
官网地址:github vim-plug
使用方式如下:进入命令模式,执行 PlugInstall 即可安装所配置的插件

# 常用插件
单有neovim还不够,其强大的生态更是不可获取的,下面是我常用的插件以及配置
# FZF (fuzzy finder)
FZF是一款使用 GO语言编写的交互式的 Unix命令行工具。可以用来查找任何 列表 内容,文件、Git分支、进程等。所有的命令行工具可以生成列表输出的都可以再通过管道 pipe 到 fzf上进行搜索和查找
优点如下:
- GO 语言编写,编译完生成可执行文件没有任何依赖
- 搜索/查找速度飞快
- 功能全面/可视化界面体验很棒
- 周边插件丰富 (vim, tmux, fuzzy auto-completion)
链接:fzf github
# 安装 fzf
在centos 8下只能通过源码安装
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
无奈,国内的机器没法访问github,只能曲线下载了,从gitee找到对应的项目 gitee fzf
git clone --depth 1 https://gitee.com/yzymickey/fzf.git ~/.fzf
~/.fzf/install
安装后需重启终端或重新加载bashrc文件,重启后即可输入fzf进行文件查找了
# 重新加载 bashrc
source ~/.bashrc
FZF 命令行使用效果如下:
截至目前我们已经安装了了fzf,但是尚未和nvim建立任何整合,整合则需要借助 fzf.vim 插件
# 安装 fzf.vim
通过 vim-plug 插件管理器进行安装
在 init.vim 文件中增加插件
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
运行效果如下呐
- 文件搜索
此外,通过设置iTerms的按键映射,当按下Ctrl+P的时候自动触发:Files命令,实现文件查找的快捷键
其他配置:
推荐使用 fd 替换默认的查找命令,可以在bashrc中增加如下配置
export FZF_DEFAULT_COMMAND="fd --exclude={.git,.idea,.vscode,.sass-cache,node_modules} --hidden --type f"
- 内容搜索
fzf.vim 提供了 :Ag 命令,可以进行文件内容搜索,但是在此之前需要安装ag
运行效果如下:
通过 iTerms 设置快捷键 Command+Shift+F进行全局搜索,效果杠杆的~
# nerd-tree
nerd-tree 是vim中的文件管理插件
安装:
Plug 'preservim/nerdtree'
在init.vim中可以设置键映射,通过 F2即可打开 NerdTree
map <F2> :NERDTreeToggle<CR>
# 键盘映射
该配置写在init.vim中
" 窗口切换快捷键"
map <Leader>wc <C-w><C-c><Esc>
map <Leader>ws <C-w><C-s><Esc>
map <Leader>wv <C-w><C-v><Esc>
map <Leader>ww <C-w><C-w><Esc>
map <Leader>wh <C-w><C-h><Esc>
" 保存快捷键
map <Leader>s :w<CR>
init.vim 配置连接 github









