LazyVim常用快捷键
本文介绍LazyVim中常用的快捷键。本文写于2024/4/21,早于本博客建立。
正文
零、前言
本文仅介绍LazyVim中常用的快捷键,按照官网安装LazyVim后,有50多个插件会被同时安装,因此有部分快捷键和Vim/Vi不同。
参考文章:
如果想要直接在neovim里面查找快捷键和help,可以输入以下快捷键:
Mode | Shortcut | Description |
---|---|---|
n |
<leader>sk |
打开所有shortcut的菜单 |
n |
<leader>sh |
打开所有help的菜单 |
一、移动光标和翻页(Navigation)
这一部分的符号也被称为导航符(Navigation)可以和后面指令相结合使用。
Mode | Shortcut | Description |
---|---|---|
n , v |
h , j , k , l |
左,下,上,右 |
n , v |
<Ctrl>+y |
光标不动,上移一行 |
n , v |
<Ctrl>+e |
光标不动,下移一行 |
n , v |
<Ctrl>+u |
上翻半页(up) |
n , v |
<Ctrl>+d |
下翻半页(down) |
n , v |
<Ctrl>+f |
上翻一页(forward) |
n , v |
<Ctrl>+b |
下翻一页(backwards) |
n , v |
w (小写) |
跳到下一个词首,按标点和单词分割 |
n , v |
W(大写) |
跳到下一个词首,按空格分割 |
n , v |
e |
跳到下一个词尾,按标点和单词分割 |
n , v |
E |
跳到下一个词尾,按空格分割 |
n , v |
b |
跳到上一个词首,按标点和单词分割 |
n , v |
B |
跳到上一个词首,按空格分割 |
n , v |
0 (数字零) |
跳到行首第0个字符 |
n , v |
^ |
跳到行首的非空字符 |
n , v |
$ |
跳到行尾 |
n , v |
{ |
跳到上一个段落,按空行分隔 |
n , v |
} |
跳到下一个段落,按空行分隔 |
n , v |
gg |
跳到文首 |
n , v |
G |
跳到文尾 |
n , v |
[5]gg / [5]G |
跳到第5行,数字+gg可以跳到对应的行 |
n , v |
gd |
跳到当前光标所在的变量声明处 |
n , v |
f[x] |
在当前行中找到x字符,找到了就跳转;安装flash插件后可以向下搜索单词,并且可以按搜索时出现最后的字母快捷跳转(find) |
n , v |
s[word] |
安装flash插件后可以在当前页搜索单词,并且可以按搜索时出现最后的字母快捷跳转(search) |
n , v |
; |
重复上一个f命令而不用输入fx |
n , v |
* |
查找当前光标所在的单词,向下查找 |
n , v |
# |
查找当前光标所在的单词,向上查找 |
二、剪切、复制、粘贴
vim中的删除会把被删除的内容置入剪切板,使用Visual Mode选择目标后粘贴会把覆盖的内容加入剪切板,因此复制粘贴变得不是很方便。
Mode | Shortcut | Description |
---|---|---|
n |
dd |
删除光标所在行 |
n |
dw |
删除单词,从光标位置到词尾 |
n |
diw |
删除当前光标位置所在单词 |
n |
d$ |
删除到行末 |
n |
d+[Navigation] |
删除到navigation的位置 |
n |
x (小写) |
删除当前字符 |
n |
X (大写) |
删除前一个字符 |
n |
yy |
复制所在行 |
n |
yw |
复制单词,从光标位置到词尾 |
n |
yiw |
复制当前光标位置所在单词 |
n |
y$ |
复制到行末 |
n |
y+[Navigation] |
复制到navigation的位置 |
n |
p (小写) |
粘贴粘贴板的内容到当前行的下面 |
n |
P (大写) |
粘贴粘贴板的内容到当前行的上面 |
n , i , v |
<Ctrl>+c |
复制选中的内容(LazyVim中默认设置好了,在普通的neovim中需要自己设置) |
n , i , v |
<Ctrl>+v |
粘贴内容到选中位置并替换(LazyVim中默认设置好了,在普通的neovim中需要自己设置) |
三、Insert Mode
Insert Mode,可以称作输入模式,插入模式或键入模式。
这个部分收录的是不影响文本进入Insert Mode的快捷键
Mode | Shortcut | Description |
---|---|---|
n |
i |
从当前光标处进入Insert Mode |
n |
I |
从当前光标所在行的行首进入Insert Mode |
n |
a |
从当前光标之后进入Insert Mode |
n |
A |
从当前光标所在行的行末进入Insert Mode |
n |
o |
在当前行之下新加一行,并进入Insert Mode |
n |
O |
在当前行之上新加一行,并进入Insert Mode |
n |
<ESC> 、jk |
退出Insert Mode,jk 是需要在keymaps.lua里设置的,需要去把 Insert Mode的<ESC 映射到jk |
四、编辑相关
这个部分收录了在Normal Mode下,能对文本内容进行编辑的快捷键和一些实用的命令。
Mode | Shortcut | Description |
---|---|---|
n |
J |
将下一行和当前行连接为一行 |
n |
cc |
删除当前行并进入Insert Mode |
n |
cw |
删除当前光标到词尾并进入Insert Mode |
n |
ciw |
删除当前光标所在的词并进入Insert Mode |
n |
c$ |
删除当前光标到行末并进入Insert Mode |
n |
c+[Navigation] |
删除到navigation的位置的内容并进入Insert Mode |
n |
u |
撤销 |
n |
<Ctrl>+r |
重做 |
n |
~ |
切换大小写 |
n |
>> |
向右缩进一个单位 |
n |
<< |
向左缩进一个单位 |
n |
gcc |
注释光标所在的行 |
n |
<leader>ch |
取消高亮,一般适用于在搜索的时候。个人偏好,需要去keymaps.lua里设置(clear highlight) |
编辑中常用的指令:
Mode | Shortcut | Description |
---|---|---|
c |
:set wrap |
开启自动折行 |
c |
:set nowrap |
关闭自动折行 |
c |
:set nu |
显示行号 |
c |
:set nohl |
取消高亮,一般适用于在搜索的时候 |
五、查找替换
Mode | Shortcut | Description |
---|---|---|
n |
/pattern |
向后搜索字符串pattern(在LazyVim里是全局搜索) |
n |
?pattern |
向前搜索字符串pattern(在LazyVim里是全局搜索) |
n |
n |
下一个匹配 |
n |
N |
上一个匹配 |
c |
:%s/old/new/g |
搜索整个文件,将所有的old替换为new,old和new是可更改的参数 |
c |
:%s/old/new/gc |
搜索整个文件,将所有的old替换为new,old和new是可更改的参数,每次都要你确认是否替换 |
n |
<leader>cr |
在整个文件中重命名光标所在的变量及其引用 |
六、保存和退出编辑器
Mode | Shortcut | Description |
---|---|---|
c |
:w |
保存修改(write) |
c |
:wa |
保存全部修改(write all) |
c |
:wq , :x |
保存修改并退出(write and quit) |
c |
:wqa |
保存全部修改并退出全部window(write and quit all) |
c |
:q |
退出,如果没保存则不能退(quit) |
c |
:q! |
强制退出,放弃修改 |
c |
:qa! |
强制退出全部window,放弃修改 |
七、tab、window、buffer操作(三种窗口)
LazyVim里面有tab,window,buffer三个容器。window比buffer大,一个window可能包含多个buffer,而tab则比window大。
注:leader键LazyVim默认设置为空格键。
Mode | Shortcut | Description | |
---|---|---|---|
n |
<leader>bd |
关闭当前buffer | |
n |
<leader>bD |
强制关闭当前buffer | |
n |
<leader>sv |
在右方创建新window,个人偏好,需要自己去keymaps.lua里设置 | |
n |
<leader>sx |
关闭当前window,个人偏好,需要自己去keymaps.lua里设置 | |
n |
<leader>- |
在下方创建新window(LazyVim) | |
n |
``` |
``` | 在右方创建新window(LazyVim) |
n |
H |
跳转到左侧的buffer(或者说前一个buffer) | |
n |
L |
跳转到右侧的buffer(或者说后一个buffer) | |
n |
<Ctrl>+h |
跳转到左侧的window | |
n |
<Ctrl>+l |
跳转到右侧的window | |
n |
<Ctrl>+j |
跳转到下方的window | |
n |
<Ctrl>+k |
跳转到上方的window | |
n |
<leader>+e |
打开文件管理window(该功能由nvim-tree等相关插件提供) | |
c |
:close |
关闭当前window | |
c |
:tabedit file |
在新标签中打开文件file | |
c |
:tab split file |
在新标签中打开文件file | |
c |
:tabp |
切换到上一个tab | |
c |
:tabn |
切换到下一个tab | |
c |
:tabc |
关闭当前tab | |
c |
:tabo |
关闭其他tab | |
n |
gt |
切换到上一个tab | |
n |
gT |
切换到下一个tab | |
n |
0gt |
切换到第一个tab | |
n |
[5]gt |
切换到第5个tab,输入数字切换 | |
n |
<Ctrl>+/ |
打开和隐藏终端(Root Dir) |
按<leader>e
进入文件管理window,在文件管理window下的快捷键:
Mode | Shortcut | Description |
---|---|---|
n |
a |
创建新文件 |
n |
d |
删除文件 |
n |
r |
重命名文件 |
n |
<Enter> |
打开文件,以buffer的形式 |
八、Visual Mode
Visual Mode称之为视觉模式或选择模式都可。其Navigation在一中有介绍。在这一节之前,所有小写v同时表示字符视觉模式和行视觉模式。
Mode | Shortcut | Description |
---|---|---|
n , V |
v (小写) |
进入字符视觉模式 |
n , v |
V (大写) |
进入行视觉模式(一行一行选中) |
n |
viw (小写) |
选中光标所在的词 |
v/V |
> , < |
向右缩进,向左缩进 |
v/V |
iw |
选中光标所在的词 |
v/V |
d |
剪切选中的内容 |
v/V |
y |
复制选中的内容 |
v/V |
p |
粘贴剪切板的内容到选中的区域,并把原本选中的内容置入剪切板 |
v/V |
<ESC> , v/V |
退出视觉模式 |