网站首页 > 技术文章 正文
在 Reverb,我们使用 MacVim 来标准化开发环境,使配对更容易,并提高效率。当我开始使用 Reverb 时,我以前从未使用过 Vim。我花了几个星期才开始感到舒服,但如果没有这样的提示,可能需要几个月的时间。这里有十个技巧可以帮助你在学习使用 Vim 时提高效率。
1. 通过提高按键重复率来更快地导航
转到系统偏好设置-> 键盘,增加您的按键重复,并缩短您的延迟直到重复。这将让您使用 hkjl 更快地导航(不要使用那些箭头键!)
2.使用gg/G和ctrl-d/ctrl-u垂直导航
垂直导航最简单的方法是使用 :<line number> 直接跳转到您需要的行号。有时您不知道该行号,因此您可以使用 ctrl-u 和 ctrl-d 快速上下“翻页”。需要遍历整个文档?使用 gg 快速跳转到文档顶部或使用 G 跳转到底部。
3. 使用 0 和 $ 水平导航
水平导航的方法有很多,但对我最有帮助的总是 0,它会将您带到行首,而 $,它会将您带到行尾。
4.通过重新绑定大写锁定(或使用 ctrl-c)更快地逃脱
如果 Vim 就是为了让你的手指尽可能靠近键盘的“主行”,那么为什么将转义映射到如此重要的功能呢?使用键绑定程序(混响是Seil的一部分)将转义映射到大写锁定或开始使用 ctrl-c,这是转义的默认替代方法。
5.与c同时删除和切换到插入模式
同理,d 是 Vim 的“动词”,表示删除,c 是动词,表示变化。c 允许您删除并立即进入插入模式。例如,“ct”删除所有内容,直到下一个空格并进入插入模式。'c#39; 做同样的事情直到行尾。
6. 使用 / 搜索并使用 n 和 N 导航
cmd-f 的 Vim 等效项是 / 后跟您要查找的术语。搜索完一个词后,用 n 转到下一个实例,用 N 转到前一个实例。
7. 搜索并替换为 :%s
如果你需要替换一个术语,你可以使用稍微复杂一些的 :%s 命令,它的结构如下:
:%s/<term to replace>/<replacement>/<flags>
例如,如果您想查找“grey”并将其替换为“gray”,则可以使用:%s/grey/gray。然而不幸的是,默认情况下,这只会替换每行中术语的第一个实例。使用 g 标志替换第一项的所有实例,无论每行有多少。
你也可以使用 c 标志让 Vim 在替换之前确认每个实例。所以 :%s/grey/gray/gc 将找到“grey”的每个实例,并要求您确认是否希望将其替换为“gray”。
8. 使用 ctrl-o 和 ctrl-i 跳转到以前访问过的位置
Vim 会跟踪您在文件中的位置,包括跨文件。每次更改文件或打开新文件时,都会存储该位置。您可以使用 ctrl-o 跳转到以前访问过的位置。同样,您可以使用 ctrl-i 向前跳转。这意味着如果您在同一个选项卡或窗口中处理两个文件(没有屏幕分割),您可以使用 ctrl-o 和 ctrl-i 在它们之间轻松导航。
9.用gf去其他文件
当您将光标放在另一个文件的名称中时,您可以按 gf 跳转到该文件。由于将文件命名为与它们定义的类相同的常见做法,这特别有用。为了提高效率,请参阅下一个提示。
10.使用插件
标准 Vim 非常强大,但它的很大一部分功能在于它的可定制性。像 NerdTree 和 CtrlP 这样的文件导航插件可能是一些最容易访问的工作流程更改插件,但请做一些研究!那里有一吨。在 Reverb,我们使用YADR,这是一个 dotfile repo,它极大地增强了 MacVim 和终端的功能(特别是对于 Rails 开发人员)。
希望您今天学到了有关如何最有效地使用 Vim 的新知识。使用 Vim,您越简化您的工作流程,您就会越舒适。如果您有任何自己的建议,请给我们留言!
- 上一篇: Vim查找与替换命令大全,功能完爆IDE!
- 下一篇: Linux系统中Vim文本编辑器使用技巧
猜你喜欢
- 2025-07-21 Linux History命令:如何显示命令执行的日期和时间
- 2025-07-21 基于jdk11的Java入门教程-(2)命令行工具
- 2025-07-21 Linux man 命令使用教程(linux的man命令是干嘛用的)
- 2025-07-21 Linux常用场景-VIM文本编辑批量替换
- 2025-07-21 SpringBoot打包到docker(idea+传统方式)
- 2025-07-21 从 0 到 1:使用 Elasticsearch 构建高效的分布式搜索引擎
- 2025-07-21 【干货必备】Linux入门到精通系列课程第6篇:vi/vim编辑器
- 2025-07-21 大模型集成搜索引擎第一步:搭建searXNG本地搜索引擎
- 2025-07-21 Linux内核代码阅读小技巧:提升搜索速度100倍
- 2025-07-21 CentOS 7 系统 vim无法使用——解决方法
- 1515℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 577℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 514℃MySQL service启动脚本浅析(r12笔记第59天)
- 487℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 486℃启用MySQL查询缓存(mysql8.0查询缓存)
- 470℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 450℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 448℃MySQL server PID file could not be found!失败
- 最近发表
-
- 宝塔面板Nginx如何提高网站访问速度?
- 接口调试工具ApiPost中form-data/x-www-form-urlencoded/raw区别
- 高并发场景下,Nginx性能如何提升10倍?
- 高并发场景下,Nginx如何抗住千万级流量?
- 浏览器中在线预览pdf文件,pdf.mjs插件实现web预览pdf
- 为什么你的网站加载慢?90%的人忽略了这2个设置。
- 别再无脑复制Nginx配置了!掌握这10个"性能核弹"级参数
- 你的Nginx配置,可能就是你网站最慢的一环,注意这几个优化参数
- 深入浅出HTTP压缩技术(http2压缩)
- C程序设计之:1-1/2+1/3-... + 1/n 的和
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (83)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)