Vim技巧整理
Vim技巧整理
SkyforeverVim 进阶技巧讲义
Opening
文章转载于GeekHour,原视频链接:Vim进阶技巧,你知道几个?
放在网站上方便查询
欢迎来到 GeekHour!
在程序员的世界里,编辑器之争一直是个有趣的话题。传说中程序员分三类:用 Vim 的、用 Emacs 的,还有其他。你属于哪一类呢?
大家好,我是老萧,以后会和老杨一起为大家带来最酷的技术分享。之前在 Linux 入门教程中,我们简单介绍过 Vim 的基本使用。今天我们将深入探讨一些进阶技巧,那我们闲言少叙,开始分享。
技巧一:快速跳转
在日常编码中,我们花费大量时间在浏览和定位代码上,而不是输入新的代码。因此,掌握高效的跳转方法可以极大提升我们的工作效率。
行号跳转
gg
- 跳转到文件开头G
- 跳转到文件末尾{行号}G
- 跳转到指定行set relativenumber
- 显示相对行号vi +100 filename
- 打开文件并跳转到第100行
窗口内跳转
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
- 同上,但以空格为分隔符
技巧三:高效编辑
Vim 的强大之处在于其编辑命令的组合能力。
动作命令
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 配置
基础配置
- 语法高亮
- 显示行号
- 设置 Tab 缩进
- 配置文件编码
快捷键设置
<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:增强 % 跳转功能
Vim 的生态与影响力
Vim 的影响力已经渗透到各种工具中,包括 Neovim、命令行、IDE 和浏览器扩展等。
Ending
Vim 就像开源世界中的一支铅笔,几乎每台类 Unix 系统都预置其中,其理念影响深远。希望大家能够通过学习,找到属于自己的高效编辑方式。
最后,让我们缅怀 Vim 之父 Bram Moolenaar,同时关注他生前致力于的乌干达儿童慈善事业。愿大家在新的一年里效率 MAX,Happy hacking!