-
Notifications
You must be signed in to change notification settings - Fork 0
nvim guide shortcut tips
ES edited this page Jul 16, 2026
·
1 revision
面向日常使用的本配置专属快捷键速查。通用 Vim 操作见 Wiki 的 01~03,键位定义开发见 Keymap Guide
本配置 Leader 键为空格 Space。很多快捷键是「先按空格,再按一两个键」,例如:
-
<Space>-横向分屏 -
<Space>|纵向分屏 -
<Space>wd关闭当前窗口
按一下空格后稍停,若启用了 which-key 会提示该前缀下所有可用快捷键
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 退出插入模式 | jk |
插入模式下输入 jk 等价于 Esc,手不用离开主键盘区 |
| 智能 Esc | Esc |
普通模式下:先关闭所有浮窗(补全、菜单等),若无浮窗则清除搜索高亮 |
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 切换窗口焦点 | Ctrl+w h/j/k/l |
Neovim 内置,左/下/上/右窗口 |
| 横向分屏 | <Space>- |
当前窗口下方新开一屏 |
| 纵向分屏 | <Space>| |
当前窗口右侧新开一屏 |
| 关闭当前窗口 | <Space>wd |
关闭当前分屏,不关 buffer |
技巧:分屏后习惯用 Ctrl+w h/j/k/l 在窗口间跳转,比鼠标更高效
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 上一个 / 下一个 buffer |
[b / ]b
|
Neovim 0.11+ 内置,等价于 :bprevious / :bnext
|
| 第一个 / 最后一个 buffer |
[B / ]B
|
内置,等价于 :brewind / :blast
|
| 智能关闭 buffer | <Space>bd |
浮窗 / 分屏 / buffer 快速关闭 |
| 关闭左/右侧 buffer |
<Space>bh / <Space>bl
|
bufferline 提供 |
| 关闭其他 / 全部 |
<Space>bo / <Space>ba
|
注意:H / L 保留为 Vim 原生的「跳到屏幕顶 / 底」,不再用于 buffer 切换
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 上/下移动当前行 |
Alt+Down / Alt+Up
|
普通模式下移动当前行,可重复按 |
| 上/下移动选中行 | 可视模式下 Alt+Down / Alt+Up
|
多行选中后整体上移/下移 |
| 缩进/反缩进选中块 |
Tab / Shift+Tab
|
在可视模式下,保持选中并缩进 |
| 删除/修改不占剪贴板 |
d / c / x
|
d = delete,c = change;内容进入“黑洞”寄存器,不会覆盖系统剪贴板。复制用 y = yank |
技巧:需要“删掉这段并粘贴到别处”时,用 y 复制后再 d 删除,或先 d 再到目标处用 "0p 从复制寄存器粘贴
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 复制到系统剪贴板 | 可视模式下 Ctrl+c
|
选中后按,可与终端、浏览器等互通;SSH 时本机复制多为 Ctrl+Shift+C
|
从系统剪贴板粘贴仍用 Vim 默认:"+p(普通模式)或 "+P(在光标前粘贴)
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 上一/下一光标位置 |
Alt+Left / Alt+Right
|
类似“前进/后退”,跳转历史 |
| 向下/上滚动 5 行 |
Ctrl+e / Ctrl+y
|
本配置改为每次 5 行,便于细调视图 |
| 跳到第 N 行 |
Ngg 或 NG 或 :N
|
如 100gg 或 :100 到第 100 行 |
| 跳到文件头/尾 |
gg / G
|
第一行 / 最后一行 |
行内导航(Vim 内置):
-
0行首第一个字符,^行首非空白 -
$行尾 -
w下一词首,b上一词首,e当前/下一词尾 -
f<char>/F<char>本行下一/上一处字符,;/,重复/反向
基于语法树的智能跳转,按
[(prev)或](next) + 标识符。比正则搜索更准、更快
| 跳转目标 | 英文助记 | 上一个 | 下一个 | 说明 |
|---|---|---|---|---|
| 函数调用 | function | [f |
]f |
调用名,如 foo() → f 上 |
| 函数调用结尾 | Function end | [F |
]F |
函数调用末尾(> 或 )) |
| 变量声明 | variable | [v |
]v |
变量名,如 let a = 1 → a 上 |
| 变量声明结尾 | Variable end | [V |
]V |
赋值右侧末尾 |
| 字符串 | string | [s |
]s |
字符串字面量开头(" / ' / `) |
| 字符串结尾 | String end | [S |
]S |
字符串结尾引号 |
| XML/HTML 标签,Markdown 标题 | tag / title | [t |
]t |
标签开头 <
|
| 标签结尾,Markdown 标题 | Tag / Title end | [T |
]T |
标签结尾 >
|
| 诊断 | diagnostic | [d |
]d |
上/下一个 LSP 诊断 |
| 诊断结尾 | Diagnostic end | [D |
]D |
跳到诊断行结尾位置 |
| 属性(对象键值对 / JSX 属性 / CSS 声明 / JSON / YAML / TOML 键值对) | property | [p |
]p |
对象/JSON/TOML 的 key: value、JSX 属性、CSS 声明 |
| 属性结尾 | Property end | [P |
]P |
Vim 原生 ]/[ 跳转:
| 跳转目标 | 上一个 | 下一个 | 说明 |
|---|---|---|---|
| 方法开头 | [m |
]m |
按花括号识别 Java 风格方法,不依赖 Tree-sitter |
| 方法结尾 | [M |
]M |
按花括号识别 Java 风格方法 |
| C 注释边界 |
[/ 或 [*
|
]/ 或 ]*
|
上一个 /* 开头 / 下一个 */ 结尾 |
| Git hunk | [c |
]c |
当前配置由 gitsigns 提供;diff 窗口中保留原生 diff 跳转 |
重复上一次跳转:; / ,(前进/后退)
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 保存当前文件 |
:w 或配置中的 <C-s>
|
仅当前 buffer |
| 保存所有缓冲区 | Ctrl+Alt+S |
所有已修改 buffer 写入磁盘;部分终端对 Ctrl+Alt 支持不好,可改用 :wa
|
插件提供的键位(如 LSP、文件树、模糊查找等)多在各自插件配置或 :help 中说明,按一次 <Space> 也可快速浏览当前前缀下的映射