Vim 中的 g
是一个多功能的前缀命令(Prefix Command),本身不单独使用,而是需要配合其他字符组成完整命令。它在 Vim 中主要有以下几种功能类型:
–
Ⅰ. 文件导航类 📍
命令 | 功能描述 |
---|---|
gg | 跳转到文件的第一行 |
G | 跳转到文件最后一行(注意大写) |
3G | 跳转到第 3 行(数字可替换为指定行号) |
g; | 回到最后修改的位置 |
g, | 循环更早的修改位置 |
g0 | 移动到当前屏幕行的首字符(软行首) |
g^ | 移动到当前屏幕行的非空白首字符 |
gm | 移动到当前行中间位置 |
g+ | 向后切换变更列表位置 |
g- | 向前切换变更列表位置 |
–
Ⅱ. 文本操作类 ✂️
命令 | 功能描述 |
---|---|
gu | 将选中文本转为小写 |
gU | 将选中文本转为大写 |
guu | 当前行转小写 |
gUU | 当前行转大写 |
g~ | 切换选中文本的大小写 |
gq | 折行格式化(保持段落宽度) |
gw | 折行格式化(保留光标位置) |
g? | 执行 ROT13 加密 |
–
Ⅲ. 标识符相关 🔗
命令 | 功能描述 |
---|---|
gd | 跳转到局部定义(LSP 需要插件支持) |
gD | 跳转到全局定义 |
gf | 打开光标下的文件名路径 |
gF | 打开文件名并跳转到指定行号(格式:file:12) |
–
Ⅳ. 可视模式增强 👁️
组合命令 | 功能描述 |
---|---|
v + g + _ | 选中到行尾(不含换行符) |
gv | 重选上次可视化选区 |
g Ctrl+g | 显示文档统计信息(字数/行数) |
–
Ⅴ. 寄存器操作类 📥
命令 | 功能描述 |
---|---|
gp | 粘贴后光标留在粘贴内容后(默认在末尾) |
gP | 与 gp 类似,但用大写寄存器 |
–
Ⅵ. 其他实用组合 🛠️
命令 | 功能描述 |
---|---|
g& | 全局重复上次替换操作 |
g< | 查看命令行历史输出 |
gqgq | 对当前段落进行折行格式化 |
g Ctrl+a | 对数字序列进行递增值插入(需设置递增序列) |
gj | 向下移动屏幕行(跨实际行) |
gk | 向上移动屏幕行(跨实际行) |
–
配置示例(.vimrc
)
" 设置 gq 格式化宽度为 80 字符
set textwidth=80
" 启用智能大小写切换(使用 ~ 时保留首个字母大小写)
set smartcase
–
使用技巧 💡
g
命令常与数字结合(如3G
)- 大写形式通常表示更广范围的操作(如
G
vsgg
) - 在可视模式下
g
能增强选区能力 :help g
查看完整文档(列举了 60+ 种组合)- 记忆口诀:“g” 代表 “go to” 或 “global” 的抽象含义