Vim 高效编辑实战

举报
yd_282444815 发表于 2026/11/07 01:07:16 2026/11/07
【摘要】 在服务器上改配置、看日志、修脚本时,经常会遇到一个现实:没有图形界面,只有终端。这时候 Vim 几乎是唯一的选择。很多人第一次打开 Vim 就被吓住了:敲键盘没反应、不知道怎么退出,只记得一句玩笑话——学会退出 Vim 就是第一课。其实 Vim 的学习曲线虽然陡,但收益很实在:手不离键盘就能完成大部分编辑工作,改几十行配置比来回点鼠标快得多。 一、先搞懂三种模式Vim 的核心是模式。正常模式...

在服务器上改配置、看日志、修脚本时,经常会遇到一个现实:没有图形界面,只有终端。这时候 Vim 几乎是唯一的选择。很多人第一次打开 Vim 就被吓住了:敲键盘没反应、不知道怎么退出,只记得一句玩笑话——学会退出 Vim 就是第一课。其实 Vim 的学习曲线虽然陡,但收益很实在:手不离键盘就能完成大部分编辑工作,改几十行配置比来回点鼠标快得多。

一、先搞懂三种模式

Vim 的核心是模式。正常模式用来移动和执行命令,按 Esc 回到这个模式;插入模式用来输入文字,按 i、a、o 进入;命令模式用来保存、退出和搜索,按冒号进入。刚开始最容易犯的错,是在正常模式下直接打字,结果打出一串命令。记住一个习惯:做任何操作前先按一下 Esc,心里清楚自己在哪个模式,编辑就不会乱。

二、移动光标要成体系

只用方向键就浪费了 Vim 一半的价值。常用的移动键有:h、j、k、l 对应左、下、上、右;w 跳到下一个单词开头,b 回到上一个单词开头;0 跳到行首,$ 跳到行末;gg 回到文件开头,G 跳到文件末尾。配合数字效果更好,比如 5j 向下移动五行,3w 向前跳三个单词。读日志时,先用 G 跳到末尾,再用问号加关键字向上搜索,比一页一页翻快得多。

三、编辑动作都是动词加对象

Vim 的编辑命令像一句话:动词加对象。d 是删除,c 是修改,y 是复制,p 是粘贴。dw 删除一个单词,dd 删除一整行,yy 复制一整行,cc 修改一整行,u 撤销,Ctrl 加 r 恢复。先用 v 进入可视模式选中一段,再按 y 复制或按 d 删除;用大于号缩进选中的代码块,用点号重复上一次修改。改 Nginx 配置时,把一段 server 块复制到新位置,往往只需要 yy、G、p 三个动作。

四、查找和替换要准

斜杠加关键字是在文件中向下搜索,问号则是向上搜索,按 n 跳到下一个匹配,按 N 跳到上一个。替换用 substitute 命令:冒号、百分号、s、斜杠、旧内容、斜杠、新内容、斜杠、g,就能把全文的旧词换成新词。想把配置文件里的 8080 批量改成 9090,一条命令就够了。替换前先用斜杠搜索确认匹配范围,避免误改;加 c 参数可以逐个确认,适合不太确定的大面积替换。

五、分屏和多文件

同时看两个文件时,分屏很有用。冒号、sp 横向分屏,冒号、vsp 纵向分屏,窗口之间用 Ctrl 加 w 再加方向键切换。打开多个文件可以用冒号、e 加文件名切换,或者用标签页:冒号、tabnew 打开新标签,gt 在标签之间切换。

六、一个真实的改配置例子

假设要修改某台服务器上的服务端口。先用 vim 打开配置文件,斜杠搜索旧端口号确认位置,按 i 进入插入模式改成新值,按 Esc 回到正常模式,冒号、w 保存。改完再用冒号、q 退出,重启服务验证。如果改错了也不用慌:按 u 撤销,或者直接冒号、q 加感叹号退出不保存。做改动前养成一个小习惯:复制一份备份,这样即使改乱了也能立刻恢复。

七、配置不用贪多

刚开始只需要几行基础配置:开启行号、语法高亮、设置缩进为四个空格、自动缩进,写在 vimrc 文件里即可。用熟了基本操作,再按需加一个文件树或者模糊搜索插件。配置的目标是减少重复动作,而不是把编辑器装饰得花里胡哨。

小结

学 Vim 不用一次记住所有命令,先练熟二十个最常用的:模式切换、四向移动、单词跳转、删除复制粘贴、撤销、搜索替换、保存退出。每天在真实任务里用它改一次配置、看一次日志,两周左右手感就形成了。工具的价值不在花哨,而在关键时刻不掉链子。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。