Neovim 初学者笔记
Neovim是一个开源的文本编辑器,是Vim的一个升级版,提供了一些其他的功能
Normal模式
光标移动
在Normal模式下可以使用 h(左)/j(下)/k(上)/l(右)
进行光标的移动,当然你依然可以使用上下左右的方向键进行移动,也可以使用鼠标进行点击移动。
按键 | 功能 |
---|---|
h ,j ,k ,l | 左,下,上,右 |
w | 光标向右移动一个单词,并停留在该单词的第一个字符处 |
e | 光标向右移动一个单词,并停留在该单词的最后一个字符处 |
b | 光标向左移动一个单词,并停留在该单词的第一个字符处 |
$ | 光标移动到当前行的最后一个字符处 |
0 | 光标移动到当前行的第一个字符处 |
^ | 光标移动到当前行的第一个非空字符处 |
gg | 光标移动到文件的开头 |
G | 光标移动到文件的结尾 |
gm | 光标移动到该行的中间处(以窗口为基础,不满半行则为末尾字符处) |
- | 光标移动到上一行的第一个非空字符处 |
+ | 光标移动到下一行的第一个非空字符处 |
`. | 光标移动到上次编辑的地方 |
数字+gg 或者数字+G | 将光标移动到指定行,例如移动到第25行:25gg 或25G |
数字+h ,数字+j ,数字+k ,数字+l | 将光标向指定方向移动指定个字符 |
数字+w ,数字+e ,数字+b | 将光标向指定方向移动指定个单词 |
数字+| | 将光标移动到指定列 |
编辑文本
按键 | 功能 |
---|---|
i | insert,插入文本,在光标所在的字符前进入插入Insert模式 |
I | 在本行开头进入Insert模式 |
a | append,追加文本,在光标所在字符后进入插入Insert模式 |
A | 在本行末尾进入Insert模式 |
s | 删除当前字符,并进入Insert模式 |
S | 删除当前行所有字符,并进入Insert模式 |
o | 在当前行之后新增一行,并进入Insert模式 |
O | 在当前行之前新增一行,并进入Insert模式 |
删除文本
按键 | 功能 |
---|---|
dd | 删除当前行 |
dw | 删除当前单词 |
d$ | 删除当前字符到行尾 |
d^ | 删除当前字符到行首第一个非空字符 |
d0 | 删除当前字符到行首 |
D | 删除当前字符到行尾 |
x | 删除当前字符 |
X | 删除前一个字符 |
复制/粘贴
按键 | 功能 |
---|---|
y | 当使用v模式选中了文本时,复制选中的文本到缓冲区 |
yy | 复制当前行到缓冲区 |
yw | 复制当前单词到缓冲区 |
y$ | 复制当前字符到行尾 |
y^ | 复制当前字符到行首第一个非空字符 |
y0 | 复制当前字符到行首 |
p | 粘贴缓冲区内容到光标后 |
P | 粘贴缓冲区内容到光标前 |
撤销/重做
按键 | 功能 |
---|---|
u | 撤销 |
U | 撤销当前行最近的所有修改 |
ctrl+r | 重做 |
Insert模式
在Normal模式下可以通过i,a,s,o
等进行切换到Insert模式,编辑文本.
在Insert模式下可以通过Esc
进行切换到Normal模式
Visual模式
- v: 在Normal模式下按
v
进入字符可视化模式
在字符可视化模式下选择是以字符为标准的,可以类似Normal模式通过h,j,k,l
或者w,e
等进行选择范围的调整
- V: 在Normal模式下按
V
进入行可视化模式
在行可视化模式下选择是以行为标准的,可以类似Normal模式通过j,k
等进行选择范围的调整
- ctrl+v: 在Normal模式下按
ctrl+v
进入块可视化模式
在块可视化模式下选择是以块为标准的,可以类似Normal模式通过h,j,k,l
等进行选择范围的调整
在块可视化模式下还可以进入列编辑模式,使用ctrl+v
进入块编辑模式,使用j,k
选择多行,选择完成后按shift+
进入列编辑模式,编辑完成后按Esc
完成编辑,并返回到Normal模式
设置
- 显示行号
" 显示行号
set number
" 显示相对行号
set relativenumber
- 关闭蜂鸣器音
" 当错误时不发出声音
set noerrorbells
" 当错误时发出视觉提示
set visualbell
快捷键设置
快捷键的设置格式为模式 指定键 目标键
,中间以空格分隔,例如::imap jj <esc>
指将 jj
绑定为 esc
键并只在Insert模式下生效,即原来在Insert模式下按esc
键进入Normal模式,现在可以连按两下j
键即可进入Normal模式。
- 生效的模式
模式 | Norm | Ins | Cmd | Vis | Sel | Opr | Term | Lang |
---|---|---|---|---|---|---|---|---|
[nore]map | yes | - | - | yes | yes | yes | - | - |
n[nore]map | yes | - | - | - | - | - | - | - |
[nore]map! | - | yes | yes | - | - | - | - | - |
i[nore]map | - | yes | - | - | - | - | - | - |
c[nore]map | - | - | yes | - | - | - | - | - |
v[nore]map | - | - | - | yes | yes | - | - | - |
x[nore]map | - | - | - | yes | - | - | - | - |
s[nore]map | - | - | - | - | yes | - | - | - |
o[nore]map | - | - | - | - | - | yes | - | - |
t[nore]map | - | - | - | - | - | - | yes | - |
l[nore]map | - | yes | yes | - | - | - | - | yes |
- 按键名称对应
名称 | 按键 |
---|---|
<C-s> | Ctrl+s,即Ctrl加其他键 |
<S-s> | Shift+s,即Shift加其他键 |
<BS> | BackSpack,退格键 |
<Tab> | Tab |
<CR> or<Enter> or<Return> | Enter,回车键 |
<Esc> | Esc |
<Space> | Space,空格键 |
<Up> ,<Down> ,<Left> ,<Right> | 上下左右 |
<F1> ...<F12> | F1 - F12 |
<Insert> ,<Del> | Insert,Del |
<Home> ,<End> | Home,End |
<PageUp> ,<PageDown> | PageUp,PageDown |