self-using nvim-config
learning!
[ ] add keybindings for edit $MYVIMRC [ ] add keybindings for sync $MYVIMRC
+
means combination keys-
means sequese keys
模式 | 按键 | 描述 |
---|---|---|
NORMAL | i |
进入INSERT模式 |
NORMAL | I |
在行首进入INSERT模式 |
NORMAL | a |
在光标后进入INSERT模式 |
NORMAL | A |
在行末进入INSERT模式 |
NORMAL | o |
在下一行建立新行并进入INSERT模式 |
NORMAL | O |
在上一行建立新行并进入INSERT模式 |
NORMAL | s |
删除光标位置字符并进入INSERT模式 |
NORMAL | S |
删除光标行并进入INSERT模式 |
NORMAL | c + |
删除指定范围内容并进入INSERT模式 |
NORMAL | C |
删除光标后内容并进入INSERT模式 |
NORMAL | R |
进入REPLACE模式 |
NORMAL | gR |
进入V-REPLACE模式,对tab有更好的处理 |
NORMAL | r |
替换光标处字符 |
NORMAL | gr |
替换光标处字符,对tab有更好的处理 |
NORMAL | v |
进入VISUAL模式,字符模式 |
NORMAL | V |
进入VISUAL-LINE模式,行模式 |
NORMAL | <Ctrl> +v |
进入VISUAL-BLOCK模式,块模式 |
VISUAL | <Ctrl> +g |
进入SELECT模式,删除选中内容并进入INSERT模式 |
VISUAL | o |
调整选中内容的范围 |
NORMAL | gv |
重新选中上次的选区 |
VISUAL | u |
将选中内容转换为小写 |
VISUAL | U |
将选中内容转换为大写 |
INSERT | <Ctrl> +h |
删除光标前字符,等价于backspcae |
INSERT | <Ctrl> +w |
删除光标前一个词 |
INSERT | <Ctrl> +u |
删除光标前到行首内容 |
INSERT | <ESC> /<Ctrl> +c /<Ctrl> +[ |
进入NORMAL模式 |
INSERT | <Ctrl> +o |
临时进入NORMAL模式,执行一个NORMAL命令后返回INSERT模式 |
INSERT | <Ctrl> +v |
通过输入数字输入ASCII字符或通过输入u16进制数输入unicode字符 |
INSERT | <Ctrl> +k |
输入digraph字符(参见:h digraph-table ) |
NORMAL | : |
进入命令模式 |
NORMAL | <Ctrl> +^ |
切换上一次激活的缓冲区 |
例子
ciw
: 删除光标处单词,进入INSERT模式,参见范围<Ctrl>
+v
65 == A<Ctrl>
+v
ue70e == <Ctrl>
+k
12 == ½
配合命令使用
符号 | 描述 |
---|---|
line, line |
指定范围行号 |
w |
词,word |
s |
句,sentence |
p |
段落,paragraph |
t |
标签,tag(html/XML) |
[ /] |
被[] 包围内容 |
( /) |
被() 包围内容 |
< /> |
被<> 包围内容 |
{ /} |
被{} 包围内容 |
" |
被"" 包围内容 |
' |
被'' 包围内容 |
` | 被`` 包围内容 |
范围 | 描述 |
---|---|
. |
当前行 |
$ |
最后一行 |
0 |
虚拟行,第1行前面 |
1 |
第1行 |
'm |
包含m标记的行 |
< |
高亮区域的起始行 |
> |
高亮区域的结束行 |
% |
整个文件,等价于1,$ |
命令 | 简写 | 描述 |
---|---|---|
rangeprint |
p |
打印范围内容 |
rangedelete x |
d |
删除范围内容,保存到x |
rangeyank x |
y |
复制范围内容,保存到x |
lineput x |
pu |
粘贴x内容到line后 |
rangecopy address |
t |
复制范围内容到address |
rangemove address |
m |
移动范围内容到address |
rangejoin |
j |
连接范围内容到一行 |
rangenormal commands |
narm |
对范围内容执行命令 |
rangesubstitute /pattern/string/flags |
s |
对范围匹配pattern内容替换为string |
rangeglobal /pattern/cmd |
g |
对范围匹配pattern内容执行cmd |
@: |
执行上一个命令(测试失败) | |
@@ |
执行上一个经过@: 执行过的命令(测试失败) |
|
range! shell |
执行shell命令 | |
read ! shell |
读取shell输出到缓冲区 | |
rangewrite ! shell |
将缓冲区内容作为shell命令输入 | |
ls |
打印当前缓冲区列表 | |
bnext |
切换到下一个缓冲区 | |
bprev |
切换到上一个缓冲区 | |
bfirst |
切换到第一个缓冲区 | |
blast |
切换到最后一个缓冲区 | |
buffer bufferno |
切换到bufferno指定的buffer | |
buffer buffername |
切换到buffername对应的buffer | |
bdelete |
删除当前buffer | |
bdelete bufferno |
删除bufferno指定的buffer | |
bdelete buffername |
删除buffername对应的buffer | |
rangebdelete |
删除range指定的所有buffer | |
args |
启动参数对应的buffer列表 | |
args `shell` |
将shell命令结果作为参数 | |
args files |
将文件作为参数,支持通配符 | |
tabedit filename |
新建标签页并进行编辑(不要用) | |
tabnew filename |
新建标签页并进行编辑,与tabedit一样(不要用) | |
<Ctrl> +w -T |
将当前窗口加入标签页(不要用) | |
tabclose |
tabc |
关闭当前标签页(不要用) |
tabonly |
tabo |
关闭当前标签页以外的标签页(不要用) |
tabnext |
gt |
切换到下一标签页(不要用) |
tabprevious |
gT |
切换到下一标签页(不要用) |
tabmove number |
移动当前标签页到number前面(不要用) | |
edit filename |
e |
打开文件,可以用% 表示当前文件,%:h 表示当前目录 |
find filename |
从path 中的路径中查找文件并打开 |
|
Explore |
E |
打开当前目录(测试失败) |
Sexplore |
水平方向拆分打开当前目录(测试失败) | |
Vexplore |
垂直方向拆分打开当前目录(测试失败) |
55print
: 打印第55行3,5d
: 删除第3/4/5行.,5d
: 删除当前行到第5行%d
: 删除整个文件4,$-3d
: 删除第3行到倒数第3行2,$!sort
: 对第2行到末尾进行排序
模式 | 按键 | 描述 |
---|---|---|
NORMAL | h |
向左移动一个字符 |
NORMAL | l |
向右移动一个字符 |
NORMAL | j |
向下移动一行 |
NORMAL | k |
向上移动一行 |
NORMAL | b |
向左移动一个单词 |
NORMAL | w |
向右移动一个单词 |
NORMAL | e |
移动到单词末尾 |
NORMAL | ^ |
移动到本行第一个非空格字符 |
NORMAL | $ |
移动到本行最后一个非空格字符 |
NORMAL | gg |
移动到文件第一行的第一个非空格字符 |
NORMAL | G |
移动到文件最后一行的第一个非空格字符 |
NORMAL | % |
移动到匹配的括号上 |
NORMAL | 0 |
移动到本行第一个字符 |
NORMAL | f |
向右查找并移动到指定字符 |
NORMAL | F |
向左查找并移动到指定字符 |
NORMAL | t |
向右查找并移动到指定字符的前一字符 |
NORMAL | T |
向左查找并移动到指定字符的前一字符 |
NORMAL | H |
移动到当前窗口的第一行 |
NORMAL | L |
移动到当前窗口的最后一行 |
NORMAL | M |
移动到当前窗口的中间行 |
行动 = 数字 + 移动光标
2w
: 向右移动2个单词3j
: 向下移动3行ft
: 向右查找t并移动到t2tr
: 向左查找r并移动到第2个r的后一个字符3H
: 移动到当前窗口的第3行
操作符
模式 | 按键 | 描述 |
---|---|---|
NORMAL | d |
删除 |
NORMAL | c |
修改 |
NORMAL | > |
向右缩进 |
NORMAL | < |
向左缩进 |
NORMAL | = |
自动缩进 |
NORMAL | y |
复制 |
NORMAL | p |
粘贴 |
NORMAL | gu |
转换为小写 |
NORMAL | gU |
转换为大写 |
NORMAL | g~ |
反转大小写 |
词操作 = 操作符 + 行动
d2w
: 删除2个单词cw
: 修改1个单词,进入INSERT模式d$
: 删除到行尾
行操作 = 2 * 操作符
dd
: 删除当前行cc
: 清空当前行,进入INSERT模式
多行操作 = 数字 + 2 * 操作符
5dd
: 删除5行4>>
: 向右缩进4行
范围操作 = 操作符 + i
+ 范围
ciw
: 清空一个单词,进入INSERT模式dip
: 删除一段
模式 | 按键 | 描述 |
---|---|---|
NORMAL | <Ctrl> +f |
下翻页 |
NORMAL | <Ctrl> +b |
上翻页 |
NORMAL | <Ctrl> +d |
下翻半页 |
NORMAL | <Ctrl> +u |
上翻半页 |
NORMAL | <Ctrl> +g |
打印文件路径,行数,百分比 |
NORMAL | zt |
移动窗口,使光标行为窗口顶端 |
NORMAL | zb |
移动窗口,使光标行到窗口底端 |
NORMAL | zz |
移动窗口,使光标行到窗口中央 |
NORMAL | u |
撤销 |
NORMAL | <Ctrl> +r |
重做(撤销撤销) |
NORMAL | <Ctrl> +a |
向右查找一个数字并+1 |
NORMAL | <Ctrl> +x |
向右查找一个数字并-1 |
- 数字 +
gg
== 数字 +G
: 跳转到指定行 .
: 重复上一个操作,上一个操作:- 进入INSERT至进入NORMAL模式
- NORMAL模式下的一个命令
2,$normal.
: 对第2行到最后一行执行.
2u
==uu
: 撤销2次.m.+1
: 移动当前行到下一行
Mode | Key | Key | Description |
---|---|---|---|
NORMAL | <Space> -w |
:w-<CR> |
Write File |
NORMAL | <Space> -q |
:q-<CR> |
Quit a Window |
Mode | Key | Key | Description |
---|---|---|---|
Terminal | <Esc> |
<Ctrl> +\ -<Ctrl> +n |
Terminal to NORMAL |
NORMAL | <Space> -`-` |
:ToggleTerm direction=horizontal-<CR> |
Toggle a Horizontal Terminal |
NORMAL | <Space> -<Esc> -<Esc> |
:ToggleTerm direction=horizontal-<CR> |
Toggle a Horizontal Terminal |
NORMAL | <Space> -`-f |
:ToggleTerm direction=float-<CR> |
Toggle a Float Terminal |
NORMAL | <Space> -<Esc> -f |
:ToggleTerm direction=float-<CR> |
Toggle a Float Terminal |
Mode | Key | Key | Description |
---|---|---|---|
NORMAL | <Alt> +h |
<Ctrl> +w -h |
Go to Left Window |
NORMAL | <Alt> +j |
<Ctrl> +w -j |
Go to Lower Window |
NORMAL | <Alt> +k |
<Ctrl> +w -k |
Go to Upper Window |
NORMAL | <Alt> +l |
<Ctrl> +w -l |
Go to Right Window |
NORMAL | <Alt> +q |
<Ctrl> +w -q |
Go to Quit a Window |
NORMAL | <Alt> +s |
<Ctrl> +w -s |
Split Window |
NORMAL | <Alt> +v |
<Ctrl> +w -v |
Split Window Vertically |
NORMAL | <Alt> += |
<Ctrl> +w -+ |
Increase Height |
NORMAL | <Alt> +- |
<Ctrl> +w -- |
Decrease Height |
NORMAL | <Alt> +. |
<Ctrl> +w -> |
Increase Width |
NORMAL | <Alt> +, |
<Ctrl> +w -< |
Decrease Width |
Mode | Key | Key | Description |
---|---|---|---|
NORMAL | <Alt> +m |
Toggle nvim-tree |
Mode | Key | Key | Description |
---|---|---|---|
NORMAL | <Space> -g -h |
Show Lsp Hover Infomation | |
NORMAL | <Space> -g -d |
Go to Definition | |
NORMAL | <Space> -g -D |
Go to Declaration | |
NORMAL | <Space> -g -i |
Go to Implementation | |
NORMAL | <Space> -g -r |
Go to Reference | |
NORMAL | <Space> -g -n |
Rename | |
NORMAL | <Space> -g -A |
Add Workspace Folder | |
NORMAL | <Space> -g -R |
Remove Workspace Folder | |
NORMAL | <Space> -g -L |
List Workspace Folder | |
NORMAL | <Space> -f |
:Format-<CR> |
Format |
NORMAL | <Space> -F |
:FormatWrite-<CR> |
Format and Write |
NORMAL | <Space> -x -x |
Toggle Diagnostic Window |
Mode | Key | Key | Description |
---|---|---|---|
NORMAL | <Ctrl> +h |
:BufferLineCyclePrev-<CR> |
Go to Left Buffer |
NORMAL | <Ctrl> +l |
:BufferLineCycleNext-<CR> |
Go to Right Buffer |
NORMAL | <Space> -c -o |
:BufferLineCloseOthers-<CR> |
Close Other Buffers |
NORMAL | <Space> -c -h |
:BufferLineCloseLeft-<CR> |
Close Left Buffer |
NORMAL | <Space> -c -l |
:BufferLineCloseRight-<CR> |
Close Right Buffer |
NORMAL | <Space> -c -c |
:Bdelete<CR> |
Close Current Buffer |