# neovim 配置体验

# 背景

使用vimneovim)也有三四年了,在此记录下常用的一些插件

顺便将相关配置同步到 github上,方便后续换电脑的时候进行配置同步

# neovim 简介

截止目前(2022-02-03),neovimgithub上已经有了 50K 的 star,而 vim具有 26Kstar

NeovimVim的一个雄心勃勃的重构。主要目标是:

  1. 重构代码以改善维护
  2. 实施新的高级功能
  3. 展示一个更好、更强大的插件系统
  4. 开放的开发模式,随时接受贡献,接受的标准也很明确。

具有以下特性

  1. 现代图形用户界面
  2. 从任何语言访问API,包括C/C++, C#, Clojure, D, Elixir, Go, Haskell, Java, JavaScript/Node.js, Julia, Lisp, Lua, Perl, Python, Racket, Ruby, Rust
  3. 嵌入式、可编写脚本的终端仿真器
  4. 异步作业控制
  5. 多个编辑器实例之间的共享数据(shada)。
  6. 支持XDG基础目录
  7. 与大多数Vim插件兼容,包括RubyPython插件

neovim 官网

# 安装

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分支、进程等。所有的命令行工具可以生成列表输出的都可以再通过管道 pipefzf上进行搜索和查找

优点如下:

  1. GO 语言编写,编译完生成可执行文件没有任何依赖
  2. 搜索/查找速度飞快
  3. 功能全面/可视化界面体验很棒
  4. 周边插件丰富 (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

github fzf.vim

通过 vim-plug 插件管理器进行安装

init.vim 文件中增加插件

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

运行效果如下呐

  1. 文件搜索

此外,通过设置iTerms的按键映射,当按下Ctrl+P的时候自动触发:Files命令,实现文件查找的快捷键

其他配置:

推荐使用 fd 替换默认的查找命令,可以在bashrc中增加如下配置

export FZF_DEFAULT_COMMAND="fd --exclude={.git,.idea,.vscode,.sass-cache,node_modules} --hidden --type f"
  1. 内容搜索

fzf.vim 提供了 :Ag 命令,可以进行文件内容搜索,但是在此之前需要安装ag

运行效果如下:

通过 iTerms 设置快捷键 Command+Shift+F进行全局搜索,效果杠杆的~

# nerd-tree

nerd-treevim中的文件管理插件

安装:

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

# 参考链接

neovim

vim-plug

Vim 到底可以配置得多漂亮?

最后更新: Mon, 29 Jan 2024 16:00:59 GMT

0 评论

加载中...
访问量:-