1. 前言
目前最常用的环境还是linux的服务器,所以最终选择的是nvim作为自己的首要编辑器,毕竟没有写一些比较大型的项目。在经过多次的摸索后,我还是选择了Neovim + Coc.nvim,放弃了 YCM。
在文章的最后,有完整的init.vim文件,这个文件是我目前正在使用的,相对于文中的部分有变动。本文希望在你学习和使用vim的过程中,帮助你熟悉相关的环境配置。
这里假设在没有root权限的情况,考虑的是软件的源码安装(相比之下,直接用各个发行版的命令安装会更加简单)。
2.Neovim 和插件安装
2.1 Neovim 安装
neovim:下载地址
选择最新的release 的版本,
这里除了source code 是源码外,其他的都是编译好的,直接
wget https://github.com/neovim/neovim/releases/download/v0.4.3/nvim-linux64.tar.gz
tar -zxvf nvim-linux64.tar.gz
然后把neovim路径下的bin加入到~/.bashrc,然后在source一下就算是成功了。
2.2 插件安装
1. Vim-Plug
vim-plug是一个我很喜欢的vim的插件管理工具,使用下面的命令可以进行安装(其他平台和工具的安装方法地址中有):
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'
这样,这个~/.local/share/nvim/site/autoload/plug.vim就会在你的目录下,并且vim会被调用。
创建nvim的配置文件(这个配置文件和vim的'.vimrc')一样:
mkdir ~/.config/nvim/
nvim ~/.config/nvim/init.vim
然后把
call plug#begin('~/.vim/plugged')
call plug#end()
加入到init.vim中,这样以后在call begin和call end 之间加上插件就可以使用了。
之后的每个插件在init.vim文件中配置好后,要进行保存退出,再次进入nvim,使用命令 :PlugInstall安装
2. indentLine
indentLine此插件提供的一个可视化的缩进,把Plug 'Yggdroot/indentLine',放到init.vim的call begin和call end之间,同时加入一些简单的配置:
let g:indent_guides_guide_size = 1 " 指定对齐线的尺寸
let g:indent_guides_start_level = 2 " 从第二层开始可视化显示缩进
效果如图:
3. vim-monokai
vim-monokai,这个插件是nvim的一个主题,monokai这个配色是我最喜欢的,从开始用sublime的时候我一直都用的是这个主题。
在 call begin 和 call end 之间加上Plug 'crusoexia/vim-monokai',然后把
colo monokai
加到后面。
效果:
4.vim-airline
vim-airline给nvim 提供一个强大的状态栏和标签栏,当打开多个文本时,可以用它进行快速的切换,是一个很强大的工具。
在 call begin 和 call end 之间加上:
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes' "airline 的主题
然后在init.vim里加上一些个性的配置:
" 设置状态栏
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#left_alt_sep = '|'
let g:airline#extensions#tabline#buffer_nr_show = 0
let g:airline#extensions#tabline#formatter = 'default'
let g:airline_theme = 'desertink' " 主题
let g:airline#extensions#keymap#enabled = 1
let g:airline#extensions#tabline#buffer_idx_mode = 1
let g:airline#extensions#tabline#buffer_idx_format = {
'0': '0 ',
'1': '1 ',
'2': '2 ',
'3': '3 ',
'4': '4 ',
'5': '5 ',
'6': '6 ',
'7': '7 ',
'8': '8 ',
'9': '9 '
}
" 设置切换tab的快捷键 <> + 切换到第i个 tab
nmap 1 AirlineSelectTab1
nmap 2 AirlineSelectTab2
nmap 3 AirlineSelectTab3
nmap 4 AirlineSelectTab4
nmap 5 AirlineSelectTab5
nmap 6 AirlineSelectTab6
nmap 7 AirlineSelectTab7
nmap 8 AirlineSelectTab8
nmap 9 AirlineSelectTab9
" 设置切换tab的快捷键 <> + 切换到前一个 tab
nmap - AirlineSelectPrevTab
" 设置切换tab的快捷键 <> + 切换到后一个 tab
nmap + Air