在 Ubuntu 18.04上安装 Neovim以及安装使用配置
1. 前言
这里不说 vim, 是因为 neovim 是 vim 的重构版,完整继承了 vim 的操作键,如此情况下,有新的,干啥还要用旧的呢……
2. 安装
Arch Linux:
# pacman -S neovim
Python 模块是独立了的,有需要就安装:
# pacman -S python-neovim # pacman -S python2-neovim
Ubuntu 18.04系统:
首先,如果没有安装PPA的话,先用下面的命令来安装:
sudo apt-get install software-properties-common
如果已经安装,用上面的命令也没有问题,会提示已经已有最新版本,不会重复安装。
PPA - Personal Package Archive,个人包档案
然后用下面的命令来安装 Neovim
sudo apt-add-repository ppa:neovim-ppa/stable
sudo apt-get update
sudo apt-get install neovim
上面安装的是stable版本,你也可以把 stable 换成 unstable , 这样就可以安装最新的版本。
最后,怎么使用 Neovim?注意,它的命令的名字是 nvim。
nvim
替换现有 vi 命令为 nvim,不需删除 vi,只需要建一个符号链接:
sudo ln -s /usr/bin/nvim /usr/local/bin/vi
3. 使用
3.1 启动
要使用,首先就要启动:
$ nvim
你没看错,用的命令是 nvim
而不是 neovim
,至于为什么,我也不知道……
3.2 编辑模式
编辑模式其实是插入模式,但我不喜欢这个叫法。
进入编辑模式很简单,按下 I
或 A
键就能在当前光标 之前 或 之后 输入内容了。
另一种就是按 O
键,这个是在当前行后插入一行输入,而如果是按 Shift + O
那就是在当前行之前插入一行输入。
此时左下角应该会有提示表明处于插入模式。按下 Esc
键能退出编辑模式。
为了好看这里使用了全角字符,实际使用中应使用英文半角字符
i ———————— 光标前插入
a ———————— 光标后插入
o ———————— 当前行后插入一行插入
Shift + i(=I)—— 行首前插入
Shift + a(=A)—— 行尾后插入
Shift + o(=O)—— 当前行前插入一行插入
3.3 移动光标
顺序好像有点问题……
在 vim 中能使用两种方法 左下上右 移动。第一种是:方向键。这个不用说了吧。另一种是:H
J
K
L
,用这个要先退出编辑模式。
为了好看这里使用了全角字符,实际使用中应使用英文半角字符
h ———————— 光标向左移动
j ———————— 光标向下移动
k ———————— 光标向上移动
l ———————— 光标向右移动<br />
w ———————— 移到下个单词开头(空白,符号分割成单词……)
b ———————— 移动到上一单词的开头(空白,符号分割成单词……)
e ———————— 移动到光标所在单词的末尾(空白,符号分割成单词……)
Shift + w(=W)—— 移到下个单词开头(空白分割成单词……)
Shift + b(=B)—— 移动到上一单词的开头(空白分割成单词……)
Shift + e(=E)—— 移动到光标所在单词的末尾(空白分割成单词……)<br />
0 ———————— 光标移到行首
¥ ———————— 光标移到行尾<br />
{ ———————— 光标移动到当前段落的开头(用空行判断段落)
} ———————— 光标移动到当前段落的末尾(用空行判断段落)<br />
Shift + h(=H)—— 移动到屏幕的第一行
Shift + m(=M)—— 移动到屏幕的中间一行
Shift + l(=L)—— 移动到屏幕的最后一行
Shift + 5(=%)—— 移动到对应的另一半括号<br />
Ctrl + f ————— 向下滚动一页
Ctrl + b ————— 向上滚动一页
Ctrl + u ————— 向上滚动半页
Ctrl + d ————— 向下滚动半页<br />
Shift + g(=G)—— 移动到文件末尾
gg ——————— 移动到文件开头
:0 ——————— 移动到文件第一行
:¥ ——————— 移动到文件最后一行
3.4 编辑命令
为了好看这里使用了全角字符,实际使用中应使用英文半角字符
x ———————— 删除光标所在字符
s ———————— 删除光标所在字符并进入编辑模式
r ———————— 替换光标所在字符
Shift + x(=X)—— 删除光标所在前一个字符
Shift + s(=S)—— 删除光标所在行并进入编辑模式
Shift + r(=R)—— 进入替换模式,这会替换当前行光标所在字符和之后的字符<br />
cc(=C)———— 删除光标所在行非空开头字符并进入插入模式
cw ——————— 删除当前单词从光标开始的部分并进入插入模式(空白,符号分割成单词……)
cb ——————— 删除当前单词从光标所在位置至单词开始的部分并进入插入模式(空白,符号分割成单词……)
dw ——————— 删除当前单词从光标开始的部分但不进入插入模式(空白,符号分割成单词……)
db ——————— 删除当前单词从光标所在位置至单词开始的部分但不进入插入模式(空白,符号分割成单词……)
cW ——————— 删除当前单词从光标开始的部分并进入插入模式(空白分割成单词……)
cB ——————— 删除当前单词从光标所在位置至单词开始的部分并进入插入模式(空白分割成单词……)
dW ——————— 删除当前单词从光标开始的部分但不进入插入模式(空白分割成单词……)
dB ——————— 删除当前单词从光标所在位置至单词开始的部分但不进入插入模式(空白分割成单词……)<br />
dd(=D)———— 删除当前行
dn[hjkl] —— 向某个方向删除n个(行),如:d3j(向下删除3行,共删除≤4行),d3l(向右删除3个字符,共≤3个字符)
d0 ——————— 删除从当前光标开始到行首的内容
d¥ ——————— 删除从当前光标开始到行末的内容
d{ ——————— 删除当前段落从光标位置开始到段首的内容
d} ——————— 删除当前段落从光标位置开始到段末的内容<br />
u ———————— 撤销
Ctrl+r ————— 重做<br />
yw ——————— 复制当前单词从光标开始的部分(空白,符号分割成单词……)
yW ——————— 复制当前单词从光标开始的部分(空白分割成单词……)
yy(=Y)———— 复制当前行<br />
p ———————— 在后面粘贴
Shift + p(=P)—— 在前面粘贴