Mac电脑iterm中配置neovim入门与实践
之前就听说过 neovim,只不过一直没有涉足,最近打算研究下,却发现看了不少文章都没有清晰讲解其用法,踩了一些坑之后,今天来做一下分享。
# 1,安装
brew install neovim
更改别名,鸟枪换炮。
# edit ~/.zshrc
alias vim='nvim'
alias vi='nvim'
2
3
# 2,插件
# 1,安装插件管理器
很多丰富的功能依赖于插件的加持,在安装插件之前,需要先安装插件的管理方式,这里使用 vim-plug
, 命令如下:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
大多数情况下,我们在国内执行如上命令,都会得到如下回复:curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
,此时将如下一组数据写入到 hosts 以避开这个报错:
echo "199.232.28.133 raw.githubusercontent.com" >> /etc/hosts
然后再来执行上边的curl
安装命令,即可成功了。
当然,如果直接请求不成功,也可以直接通过下载文件,放置到本地的方式进行安装,不过你最好能解决科学上网的问题,否则在后边安装插件可能也不会太顺利。
插件管理器下载到本地之后,注意要执行一下下边的软链,否则后续的步骤可能总会有问题:
ln -snf ~/.vim ~/.config/nvim
# 2,配置插件
插件的管理维护依赖于配置文件:~/.config/nvim/init.vim
,我们先不必实操,先简单了解一下插件的配置文件规范。
标准的语法格式如下:
call plug#begin()
call plug#end()
2
所需要安装的插件写在这两个语句中间,然后通过插件管理的命令进行配置:
- 安装插件:
:PlugInstall
- 更新插件:
:PlugUpdate
- 删除插件:
:PlugClean
(首先在init.vim
中,注释掉该插件,然后打开 Nvim, 使用:PlugClean
命令清除该插件) - 查看插件状态:
:PlugStatus
- 升级 vim-plug:
:PlugUpgrade
# 3,插件大全
# 1,底部状态栏vim-airline
默认的 iterm2 的 vim 界面中,底部状态栏内容很少,通过配置这个插件,可以让状态栏内容更加丰富一些。
这是安装的第一个插件,为了提供给刚刚接触的同学一个清晰的熟悉方向,我来完整演示一下安装的流程,网上有太多介绍的文章,往往都是泛泛而言,让初学的我如坠五里雾,悲剧不应重演,我只希望看到这篇文章的朋友不需要再去点开其他文章了。
正像上边说的,应该严格按照如上语法要求,将要安装的插件写入到配置文件中:
$ cat ~/.config/nvim/init.vim
call plug#begin()
Plug 'vim-airline/vim-airline'
call plug#end()
2
3
4
然后输入 vim 进入到 neovim 中,接着键入:PlugInstall
回车进行安装,其实这个地方编辑的时候已经支持补全,键入 P
然后tab
一下,就会补全为 Plug
了。看到 Done 则说明已经安装成功了:
如果这里报错:不是编辑器的命令: PlugInstall
,则有可能是前边的某个步骤遗漏了或者错了,可回过去重新来一遍。
然后通过两次 :q
退出编辑器,接着再次进入,就能看到插件已经生效了:
事实上vim-airline
提供了很多主题来支持用户自定义,不同主题可以参考这里 (opens new window)。想要更改主题,首先需要安装插件 vim-airlinetheme (opens new window):
$ cat ~/.config/nvim/init.vim
call plug#begin()
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
call plug#end()
2
3
4
5
安装完成之后,通过如下设置进行自定义,同样,配置仍然是写入到 ~/.config/nvim/init.vim
中。
let g:airline_theme='<theme>' " <theme> 代表某个主题的名称
# 2,自动双引号 & 括号
我们日常在编辑器中写代码时,输入的引号或者括号都会默认自动写入一对,然后鼠标的光标停留在中间,这里我们通过插件 auto-paris (opens new window) 也可以给 vim 扩展这个功能。
Plug 'jiangmiao/auto-pairs'
安装之后,就拥有了与编辑器一样的自动扩展引号的功能了:
详细规则如下:
auto-pairs 插件的主要功能通过如下的表格进行描述 (表格中 │
表示当前光标所在位置)。
auto-pairs 功能 | 支持的配对符号 | 原文本 | 按键 | 新文本 |
---|---|---|---|---|
成对插入 | {}、[]、()、“”、“、” | [ | [│] | |
成对删除 | {}、[]、()、“”、“、” | foo[│] | BACKSPACE | foo│ |
删除重复成对符号 | {}、[]、()、“”、“、” | foo“““│””” | BACKSPACE | foo│ |
换行并自动缩进 | {}、[]、() | node{│} | ENTER | node{│} |
在括号内两侧各插入空格 | {}、[]、() | foo{│} | SPACE | foo{│} |
词后单引号不成对插入 | ’ | foo│ | ’ | foo’│ |
跳过右括号 | {}、[]、() | [foo│] | ] | [foo]│ |
在转义符 \ 后禁用插件 | {}、[]、()、“”、“、” | foo\│ | { | foo{│ |
对字符串加小括号 | C 语言风格的字符串 | │‘foo’ | ALT+e | (‘foo’)│ |
# 3,注释插件
平常我们注释一行内容的时候,可能会比较麻烦,尤其是不同语言的注释,各不相同,在 vim 中操作可能会比较麻烦,而 nerdcommenter (opens new window) 就是一款针对这个问题的插件。
Plug 'scrooloose/nerdcommenter'
用法:通过键入 \cc
可以对某行进行注释,使用 3\cc
则可以注释包含光标所在行往下三行的内容, 3\ci
切换对应行的注释状态。
# 4, 文件管理器
让我们在终端里也能像图形界面中一样管理系统中的文件,插件名字是:scrooloose/nerdtree (opens new window)
Plug 'scrooloose/nerdtree'
使用姿势:
:NERDTree
即可打开当前编辑文件所在的目录- 按住 Ctrl, 双击 w 可以在两个窗口之间切换
- 把光标移动到该文件,然后按 o,即可在右边窗口打开该文件
- 在该窗口直接按 q 即可退出
# 5,高亮显示复制内容
在 vim 当中我们有时候会用yy
复制一些行,默认情况下按下yy
之后不会有任何反应,只能凭借自己刚刚的记忆来确认复制了哪些内容,vim-highlightedyank (opens new window) 插件则可以让我们在按下yy
之后高亮显示一会儿将要复制的内容。
Plug 'machakann/vim-highlightedyank'
如果觉得高亮显示的时间太短,可以设置增加高亮显示的时间(单位为毫秒):
let g:highlightedyank_highlight_duration = 1000 " 高亮持续时间为 1000 毫秒
目前暂时先罗列这几个,以后遇到优秀的插件,还会再收集分享。GitHub 也有很多人分享的成熟的配置,只不过如果只添加却不知道作用,似乎也用处不大。
# 6,个人配置汇总
我个人的配置汇总如下:
call plug#begin()
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'jiangmiao/auto-pairs'
Plug 'scrooloose/nerdcommenter'
Plug 'scrooloose/nerdtree'
Plug 'machakann/vim-highlightedyank'
Plug 'tmhedberg/SimpylFold'
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' },
Plug 'junegunn/fzf.vim',
call plug#end()
let g:airline_theme='simple'
" 设置空白字符的视觉提示
set list listchars=extends:❯,precedes:❮,tab:▸\ ,trail:˽
" 高亮当前行
set cursorline
" 显示行号
set number
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25