Skip to content

Latest commit

 

History

History
187 lines (130 loc) · 4.34 KB

File metadata and controls

187 lines (130 loc) · 4.34 KB

Vim 进阶技巧讲义

技巧一:快速跳转

行号跳转

  • 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 - 重做(撤销的反向操作)

技巧四:Buffer Windows Tab

Buffer 管理

  • :ls - 列出所有缓冲区
  • :b {number} - 切换到指定编号的缓冲区
  • :bn / :bp - 切换到下一个/上一个缓冲区
  • :bd - 关闭当前缓冲区

Window 操作

  • :sp - 水平分割窗口
  • :vsp - 垂直分割窗口
  • Ctrl-w h/j/k/l - 在窗口间移动
  • Ctrl-w = - 使所有窗口等宽、等高

Tab 页管理

  • :tabnew - 创建新标签页
  • gt / gT - 切换到下一个/上一个标签页
  • :tabclose - 关闭当前标签页

技巧五:寄存器

  • :reg - 查看寄存器内容
  • "ap - 粘贴 a 寄存器内容
  • q - 录制宏
  • @ - 执行宏

技巧六:Vimrc 配置

快捷键设置

  • <leader>v - 快速打开配置文件
  • <leader>q - 强制退出
  • <leader>y/p - 系统剪贴板复制/粘贴

实用替代键

  • Ctrl-[ - 替代 Esc 键
  • ZZ - 替代 :wq
  • ZQ - 替代 :q!

技巧七:插件管理

推荐使用 vim-plug 作为插件管理器,常用插件包括:

  • fzf:模糊查找工具
  • vim-easy-align:代码对齐
  • vim-commentary:注释插件
  • vim-gitgutter:显示 git diff 信息
  • tokyonight:配色方案
  • lightline:状态栏插件
  • vim-mucomplete:代码补全
  • SearchComplete:搜索补全
  • matchup:增强 % 跳转功能

Ending

最后,让我们缅怀 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{ 选中一整个大括号全部
  1. c-n``c-p 上下移动
  2. c-y 确认
  3. c-e 退出