安装
1 2 3
| git clone https://github.com/jungheil/my-nvim.git $HOME/.config/nvim sudo chmod +x $HOME/.config/nvim/install.sh $HOME/.config/nvim/install.sh
|
键位
其中带 *` 表示为自定义键位!
全局
:h(elp) [keyword] |
帮助 |
:sav(eas) [filename] |
另存为 |
:clo(se) |
关闭当前窗口 |
:ter(minal) |
打开终端 |
<C-t> |
* 在新窗口打开终端 |
K |
打开光标所在单词的 man 页面 |
移动光标
h |
左移光标 |
j |
下移光标 |
k |
上移光标 |
l |
右移光标 |
<C-j> |
* 快速下移光标 |
<C-k> |
* 快速上移光标 |
<C-d> |
向下滚动半屏 (down) |
<C-u> |
向上滚动半屏 (up) |
<C-b> |
向上滚动一屏 |
<C-f> |
向下滚动一屏 |
w , W |
下一个单词开头 (大写含标点) |
e , E |
下一个单词结尾 (大写含标点) |
b , B |
上一个单词开头 (大写含标点) |
ge , gE |
上一个单词结尾 (大写含标点) |
f+{character} |
定位到下一个 character |
F+{character} |
定位到前一个 character |
t+{character} |
定位到下一个 character 之前 |
T+{character} |
定位到前一个 character 之前 |
; |
重复之前的 f , t , F , T 操作 |
, |
反向重复之前的 f , t , F , T 操作 |
0 |
移动到行首 |
^ |
移动到行首的非空白字符 |
$ |
移动到行尾 |
g_ |
移动到行尾的非空白字符 |
A |
移动到行尾的非空白字符并进入插入模式 |
I |
移动到行首的非空白字符并进入插入模式 |
gg |
移动到文件第一行 |
G |
移动到文件最后一行 |
[num]gg or [num]5G |
移动到第 num 行 |
} |
移动到下一个段落 |
{ |
移动到上一个段落 |
zz |
移动屏幕使光标居中 |
普通模式
r |
替换当前字符 |
R |
替换多个字符 |
J |
合并下一行并插入空格 |
gJ |
合并下一行 |
cc |
删除当前行并进入插入模式 |
C |
删除光标以后并进出插入模式 |
s |
删除字符并进入插入模式 |
S |
删除当前行并进入插入模式 (cc ) |
u |
撤销 |
U |
恢复撤销 |
. |
重复执行上一条命令 |
>> |
向右缩进 |
<< |
向左缩进 |
yy |
复制当前行 |
yw |
复制当前单词 |
dd |
剪切当前行 |
dw |
剪切当前单词 |
x |
剪切当前字符 |
p |
光标后粘贴 |
P |
光标前粘贴 |
<C-s> |
* 保存 |
<C-1> |
* 退出窗口 |
<C-M-q> |
* 强制退出窗口 |
插入模式
i |
从光标前开始插入字符 |
I |
从行首开始插入字符 |
a |
从光标后开始插入字符 |
A |
从行尾开始插入字符 |
o |
在当前行之下另起一行,开始插入字符 |
O |
在当前行之上另起一行,开始插入字符 |
<Esc> |
退出插入模式 |
<C-h> |
* 左移光标 |
<C-j> |
* 下移光标 |
<C-k> |
* 上移光标 |
<C-l> |
* 右移光标 |
<C-BS> |
* 删除单词 |
可视化模式
v |
进入可视化模式 |
v |
进入可视化模式 (行选择) |
<C-v> |
进入可视化模式 (块选择) |
o |
切换光标到选择区开头 / 结尾 |
O |
切换光标到选择区的角 |
I |
多行插入 (仅块选择) |
aw |
选择当前单词 |
ab |
选择被 () 包裹的区域 (含括号) |
aB |
选择被 {} 包裹的区域 (含括号) |
at |
选择被 <> 包裹的区域 (含括号) |
ib |
选择被 () 包裹的区域 (无括号) |
iB |
选择被 {} 包裹的区域 (无括号) |
it |
选择被 <> 包裹的区域 (无括号) |
y |
复制 |
d |
剪切 |
~ |
互换大小写 |
u |
切换小写 |
U |
切换大写 |
多文件
:e filename |
打开 filename |
:bn |
下一个缓冲区 |
:bp |
上一个缓冲区 |
:bd |
关闭缓冲区 |
<C-right> |
* 下一个缓冲区 |
<C-left> |
* 上一个缓冲区 |
<C-down> |
* 关闭缓冲区 |
<C-w>s |
水平分割窗口 |
<C-w>v |
垂直分割窗口 |
<C-w>w |
切换窗口 |
<C-w>k |
切换到上窗口 |
<C-w>j |
切换到下窗口 |
<C-w>h |
切换到左窗口 |
<C-w>l |
切换到右窗口 |
<leader>k |
* 向上创建窗口 |
<leader>j |
* 向下创建窗口 |
<leader>h |
* 向左创建窗口 |
<leader>l |
* 向右创建窗口 |
<M-k> |
* 移动光标至上方窗口 |
<M-j> |
* 移动光标至下方窗口 |
<M-h> |
* 移动光标至左方窗口 |
<M-l> |
* 移动光标至右方窗口 |
<M-k> |
* 移动光标至上方窗口 |
<M-j> |
* 移动光标至下方窗口 |
<M-h> |
* 移动光标至左方窗口 |
<M-l> |
* 移动光标至右方窗口 |
<M-K> |
* 向上移动窗口分割线 |
<M-J> |
* 向下移动窗口分割线 |
<M-H> |
* 向左移动窗口分割线 |
<M-L> |
* 向右移动窗口分割线 |
<leader>tn |
* 新建标签 |
<leader>tc |
* 删除标签 |
<leader>tl |
* 向后切换标签 |
<leader>th |
* 向前切换标签 |
<leader>tt |
* 将窗口转为标签 |
查找与替换
/pattern |
查找 pattern |
?pattern |
向上查找 pattern |
\pattern |
正则查找 pattern |
n |
查找下一个 |
N |
查找上一个 |
:%s/old/new/g |
替换全部 |
:%s/old/new/gc |
逐个替换 |
寄存器
:reg[isters] |
显示寄存器内容 |
"ay |
复制内容到寄存器 a |
"Ay |
追加内容到寄存器 a |
"ap |
粘贴寄存器 a |
特殊寄存器:
0 |
上次复制 |
" |
未命名寄存器,上次复制或删除 |
% |
当前文件名 |
# |
轮换文件名 |
* |
剪贴板内容 (X11 primary) |
+ |
剪贴板内容 (X11 clipboard) |
/ |
上次搜索的 pattern |
: |
上次执行的命令 |
. |
上次插入的文本 |
- |
上次剪切的短于一行的文本 |
= |
表达式寄存器 |
_ |
黑洞寄存器 |
LeaderF
<leader>ff |
* 搜索当前目录下的文件 |
<leader>fb |
* 搜索当前的 Buffer |
<leader>fl |
* 搜索当前文件中有的某个单词 |
<leader>fm |
* 搜索最近使用过的文件 |
<leader>fc |
* 搜索当前文件的函数 |
<Tab> |
在检索模式和选择模式之间切换 |
<C-r> |
在模糊匹配和正则式匹配之间切换 |
<C-f> |
在全路径搜索和名字搜索之间切换 |
<C-p> |
预览结果 |
<leader>cc |
* 注释当前选择的行或文本 |
<leader>cf |
* 同 <leader>cc ,强制嵌套 |
<leader>cs |
* 用块格式注释 |
<leader>c<space> |
* 切换注释状态 |
<leader>cu |
* 取消注释 |
hop
<M-/> |
* 字符跳转 (Char1 模式) |
<M-?> |
* 字符跳转 (Word 模式) |
其他
ff |
* 打开文件管理器 |
<C-j> |
*snippets 跳转下一条 |
<Leader>tt |
* 翻译 |
]g |
* 下一处错误 |
[g |
* 上一处错误 |
gd |
* 跳转到定义 |
gy |
* 跳转到类型定义 |
gi |
* 跳转到实现 |
gr |
* 跳转到引用 |
K |
* 展示文档 |
<Leader>ff |
* 格式化代码 |
<Leader>aa |
*codeAction 列表 |
<Leader>ac |
* 应用 codeAction |
<Leader>qf |
* 自动修复问题 |
<C-R> |
* 选择区域 |
<M-a> |
* 列出所有问题 |
<M-o> |
*Outline |
参考文章
https://vim.rtorr.com/lang/zh_cn