gg- 跳转到文件开头G- 跳转到文件末尾{行号}G- 跳转到指定行
H- 跳转到当前窗口首行M- 跳转到窗口中间L- 跳转到窗口底部
/pattern- 向下搜索?pattern- 向上搜索n/N- 重复搜索*- 搜索光标下的单词#- 反向搜索光标下的单词
:jumps- 查看跳转历史记录Ctrl-O- 跳回上一个位置Ctrl-I- 跳到下一个位置:changes- 查看编辑位置历史g;- 跳到较老的修改位置g,- 跳到较新的修改位置
m{a-zA-Z}- 设置标记'{mark}- 跳转到标记行
在单行内快速移动光标是提升 Vim 使用效率的关键。
0- 跳到行首$- 跳到行尾^- 跳到行内第一个非空字符g_- 跳到行内最后一个非空字符
f{char}- 向后查找字符并跳转F{char}- 向前查找字符并跳转t{char}- 向后查找字符并跳到其前一个位置T{char}- 向前查找字符并跳到其后一个位置;- 重复上次的字符查找,- 反向重复上次的字符查找
w- 移动到下一个单词开头e- 移动到当前单词结尾b- 移动到上一个单词开头W/E/B- 同上,但以空格为分隔符
c- change (修改)d- delete (删除)y- yank (复制)v- visual (可视化选择)
w- word (单词)s- sentence (句子)p- paragraph (段落)(or)- 圆括号内的内容{or}- 花括号内的内容[or]- 方括号内的内容
.- 重复上次的修改u- 撤销上次修改Ctrl-R- 重做(撤销的反向操作)
:ls- 列出所有缓冲区:b {number}- 切换到指定编号的缓冲区:bn/:bp- 切换到下一个/上一个缓冲区:bd- 关闭当前缓冲区
:sp- 水平分割窗口:vsp- 垂直分割窗口Ctrl-w h/j/k/l- 在窗口间移动Ctrl-w =- 使所有窗口等宽、等高
:tabnew- 创建新标签页gt/gT- 切换到下一个/上一个标签页:tabclose- 关闭当前标签页
:reg- 查看寄存器内容"ap- 粘贴 a 寄存器内容q- 录制宏@- 执行宏
<leader>v- 快速打开配置文件<leader>q- 强制退出<leader>y/p- 系统剪贴板复制/粘贴
Ctrl-[- 替代 Esc 键ZZ- 替代:wqZQ- 替代:q!
推荐使用 vim-plug 作为插件管理器,常用插件包括:
- fzf:模糊查找工具
- vim-easy-align:代码对齐
- vim-commentary:注释插件
- vim-gitgutter:显示 git diff 信息
- tokyonight:配色方案
- lightline:状态栏插件
- vim-mucomplete:代码补全
- SearchComplete:搜索补全
- matchup:增强 % 跳转功能
最后,让我们缅怀 Vim 之父 Bram Moolenaar,同时关注他生前致力于的乌干达儿童慈善事业。愿大家在新的一年里效率 MAX,Happy hacking!
c-u上半屏c-d下半屏Shift-[跳转到上一个空行,右中括号反之*移动到下一个与当前指针下相同单词的位置#移动到上一个与当前指针下相同单词的位置`[a-z] / `[A-Z]跳转到标记位置 大写全局,小写本文件,用m[a-z]设置标记`回到上次跳转的位置
I A行首行末插入i a光标前光标后插入
r替换光标下的字符c修改内容
x删除光标下字符J与下一行合并di"删除引号内包围的内容(不包括引号),同理可替换为其他范围符号,i改a可以包括引号
o交换选择区域另一端和光标的位置aw as ap ab aB选择一个单词 句子 段落 () {}vi{选中一整个大括号内va{选中一整个大括号全部
c-n``c-p上下移动c-y确认c-e退出