Vim/Neovim 的使用和配置
Vi → Vim → Neovim
Vim 是文本/代码编辑器之中最为优秀经典的上古神器之一,也是早年 Vi 编辑器的加强版,强大、高效、免费开源且跨平台。
Neovim 可以说是 Vim 的改进版,而且与 Vim 的编辑模型和 Vimscript 语言完全兼容。
基础操作
Vim 在终端中启动命令为 vim
,Neovim 为 nvim
, 共分为三种模式:
- 命令模式(Command mode)
- 写入模式(Insert mode)
- 底线命令模式(Last line mode)
初次使用
进入 vim 后初始为命令模式,k
j
h
l
为上下左右移动光标
- 按
i
进入 写入模式,ESC
回到 命令模式 - 在命令模式下,按
:
进入 底线命令模式 - 底线命令模式下输入
:w
后回车为写入文件;:q
为退出 nvim;:wq
为保存文件并退出
ctrl+[ 或 ctrl+c 为 ESC 默认快捷键,可自己设置为更方便的映射
指令详解
主要是掌握 操作逻辑 , 都是以 先指令后动作 这个模式
移动
w
:跳到下一个单词的开头e
:跳到下一个单词的结尾b
:跳到上一个单词的开头,由 blank 字符分隔的单词,使用W
和E
%
:匹配括号移动(需要把光标先移到括号上)*
:匹配光标当前所在的单词(下一个)#
:匹配光标当前所在的单词(上一个)
插入
i
:insert 在光标前插入I
:在行最前面插入,快捷键为 `Shift+i``a
:append 在光标后开始编辑A
:在行最后面开始编辑o
:在当前行下一行开始编辑O
:在当前行上一行开始编辑
删除
s
:删除当前字符并进入插入模式u
:撤回上一步操作Ctrl + R
:重做U
: 撤销对整行的操作x
:删除光标下的字符dl
:删除光标右边的字符 ( 同x
)dh
:删除光标左边的字符d3l
:删除光标右边的三个字符dd
:删除该行(等于剪贴,p
粘贴)dj
:删除该行和下一行dG
: 删除当前行至文档尾部dt"
:删除 “ 前的所有内容cc
:与d
操作同理,删除并进入写入模式
复制
y、d、x
都会把文本复制到剪切板(默认不与系统剪切板共享)"+y
复制文本共享至系统剪切板y
:与d
操作同理
更改
r
:替换光标所在位置的字符R
:连续替换字符c3l
:替换右边三个字符cw
:更改下一个词cb
:更改上一个词cc
:替换整行ci"
:修改双引号内的字符
change in “
f"
:光标跳到当前行下一个 “3fa
:光标跳到当前行第三个出现的 aF
:反向查找t"
:光标跳到当前行下一个 “ 的前一个字符T
:反向cfx
:修改 x 字符前的内容(包括 x)
搜索
/
:输入后回车n
:下一条搜索结果N
:上一条搜索结果zz
:跳到光标位置
分屏
:split
上下分屏:vsplit
左右分屏:set vsplitright
光标右边:e [文件路径]
打开新文件Ctrl+w 后按 hjkl
光标在分屏中移动
跳转
gg
:跳到首行G
:跳到尾行- N
G
:到第 N 行
8G 跳到第 8 行
选中
v
:字符选中V
:行选中Ctrl+v
:块选中vi"
:选中 “ 中的字符
替换
:s/from/to/
将当前行中的第一个 from 替换成 to:s/from/to/g
将当前行中的所有 from 都替换成 to:%s/from/to/g
对所有行的内容进行替换
配色
:color
(color 后一个空格 按 Tab 选择, 通过插件安装更好看的配色)


配置
通过修改 vim 的配置文件和安装插件,能让它更加强大高效
- vim 的配置文件目录在:
~/.vimrc
- neovim 的配置文件目录在:
~/.config/nvim/init.vim
没有的话需自己创建,
nvim ~/.config/nvim/init.vim
创建软链接,方便修改
ln -s ~/.config/nvim/init.vim .nvim
在配置文件中
"
为注释
::: collapse 把 macOS 终端默认的文本编辑器由 vim 替换为 neovim
1 | ❯ where vim |
:::
修改按键
在命令模式下起作用:
1 | _ ___ _____ __ __ |
修改设置
1 | set clipboard+=unnamedplus |
安装插件
vim-plug
Vim 的一款插件管理器
https://github.com/junegunn/vim-plug

安装
Vim
1 | curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ |
Neovim
1 | curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \ |
使用
以下命令均在命令模式下使用
- 安装插件
:PlugInstall
- 更新插件
:PlugUpdate
- 删除插件 PlugClean(先在
init.vim
中,注释掉该插件,然后打开 Nvim 使用:PlugClean
命令清除该插件) - 查看插件状态:
:PlugStatus
- 升级 vim-plug:
:PlugUpgrade
如果想暂时禁用某个插件,但不删除它:
在 inti.vim 中注释掉该插件 或者 Plug '插件名', { 'on': [] }
vim-airline
状态栏插件
https://github.com/vim-airline/vim-airline
https://github.com/vim-airline/vim-airline-themes

在配置文件中添加:
1 | call plug#begin('~/.vim/plugged') |
保存后输入命令 PlugInstall
(按 Tab 键可以补全),显示 Finishing … Done! 就安装好了


vim-snazzy
配色主题
https://github.com/connorholyday/vim-snazzy
https://github.com/w0ng/vim-hybrid

vim-devicons
显示图标
https://github.com/ryanoasis/vim-devicons

nerdtree
文件树
https://github.com/scrooloose/nerdtree

vim-nerdtree-syntax-highlight
nerdtree 文件名高亮
https://github.com/tiagofumo/vim-nerdtree-syntax-highlight
vim-floaterm
悬浮窗口使用终端
https://github.com/voldikss/vim-floaterm
https://zhuanlan.zhihu.com/p/107749687

coc.nvim
一款针对 neovim 所开发的代码补全插件
https://github.com/neoclide/coc.nvim

::: collapse 示例安装 java 代码补全
安装插件:Plug 'neoclide/coc.nvim', {'branch': 'release'}
执行:CocInstall coc-java

安装成功:

打开 java 文件会自动下载 jdt.ls:

默认下载地址是 eclipse.org :

下载太慢的话可以从 中科大镜像站 下载,解压文件至 ~/.config/coc/extensions/coc-java-data/server
:::
tagbar
生成标签
https://github.com/majutsushi/tagbar

如果在加载该插件时,报错: Tagbar: Exuberant ctags not found!
安装 ctags 即可解决问题
Manjaro Linux:sudo pacman -S ctags
macOS:brew install ctags
Markdown Preview for Neovim
https://github.com/iamcco/markdown-preview.nvim

goyo
优雅的文本编辑体验
https://github.com/junegunn/goyo.vim

vim-startify
快捷启动页
https://github.com/mhinz/vim-startify

indentLine
缩进 “刻度尺”
https://github.com/Yggdroot/indentLine

nerdcommenter
代码注释
https://github.com/scrooloose/nerdcommenter

undotree
编辑历史记录
https://github.com/mbbill/undotree
auto-pairs
自动补全一对括号
https://github.com/jiangmiao/auto-pairs
YouCompleteMe
强大的代码补全
https://github.com/ycm-core/YouCompleteMe
安装:
cd ~/.vim/plugged/YouCompleteMe
sudo python3 install.py