五分钟上手 Vim 运维老鸟的必备编辑技巧

运维 开发
本文为运维人员提供了快速上手Vim​的实用指南,帮助他们在五分钟内掌握核心编辑技巧。

为什么运维老鸟离不开 Vim?

真实场景:

当你通过SSH连接到一台没有GUI的服务器,面对一个2GB的日志文件时:

  • 图形化工具卡死
  • Nano功能太弱
  • 唯有Vim能快速定位问题

Vim 的不可替代性:

  • 轻量高效:无需安装插件即可处理大文件
  • 纯键盘操作:手不离键盘,效率翻倍
  • 无处不在:预装在所有Linux/Unix系统中

五分钟掌握 Vim 生存技能

(1) 模式切换(生存底线)

i     # 进入编辑模式(Insert Mode)
ESC   # 返回普通模式(Normal Mode)
:     # 进入命令模式(Command Mode)

操作场景:

  • 编辑时突然需要翻页?按 ESC 切回普通模式
  • 保存文件?ESC → :wq

(2) 移动光标的肌肉记忆

gg     # 跳转到文件开头
G      # 跳转到文件末尾
50G    # 跳转到第 50 行
Ctrl+f # 向下翻页(Page Down)
Ctrl+b # 向上翻页(Page Up)

实战案例:

vim /var/log/nginx/access.log +G  # 打开日志直接到底部
/error                            # 搜索所有 error 关键词

知识点:

  • +G:打开日志直接到底部
  • /error:在命令模式下,搜索所有error关键词

(3) 高效编辑三件套

dd     # 删除整行
yy     # 复制当前行
p      # 粘贴
u      # 撤销操作(救命键!)
:%s/old/new/g  # 全局替换

运维场景:

# 批量修改配置中的 IP 地址
:%s/192.168.1.100/10.0.0.200/g

上述命令是把文件中192.168.1.100全部替换成10.0.0.200

运维老鸟的私藏技巧

(1) 技巧 1:日志分析闪电战

# 查看实时日志
vim /var/log/app.log +"set wrap!"
:Glog          # 进入实时追踪模式(需 vim-fugitive 插件)
/500           # 搜索 HTTP 500 错误
n              # 跳转到下一个匹配项

(2) 技巧 2:多文件协同编辑

vim -O nginx.conf app.conf  # 垂直分屏打开多个文件
Ctrl+w+w       # 窗口间切换
:diffthis      # 对比文件差异

(3) 技巧 3:保存文件前显示差异

修改文件后不确定具体改动且担心有误修改?在 vim 中查看缓冲区与文件的差异,执行如下命令

:w !diff % -

知识点

  • :!<command>是执行shell命令的语法.
  • %表示未修改的当前文件的名称.
  • -是diff命令的STDIN文件。

通过上图可以看到文件第二行发生了改变,添加了新的内容。

小结

本文为运维人员提供了快速上手Vim的实用指南,帮助他们在5分钟内掌握核心编辑技巧。文章从Vim的不可替代性入手,详细介绍了模式切换、光标移动、高效编辑等基础操作,并分享了运维老鸟的私藏技巧,如日志分析、多文件编辑等。

责任编辑:赵宁宁 来源: 攻城狮成长日记
相关推荐

2024-03-21 09:51:22

Python爬虫浏览网站

2023-09-29 18:36:57

IDEA编程IDE

2022-02-23 20:38:32

云原生集群Postgres

2017-09-27 11:00:50

LinuxBash使用技巧

2024-12-11 07:00:00

面向对象代码

2009-11-16 10:53:30

Oracle Hint

2018-02-02 16:08:32

互联网大数据数据分析

2020-06-16 08:47:53

磁盘

2021-02-16 09:17:40

VimLinux编辑器

2024-06-25 12:25:12

LangChain路由链

2024-09-18 23:50:24

Python内存生成器

2017-09-09 13:29:22

ARCoreAndroid移动设备

2024-06-19 10:41:06

2021-06-07 09:51:22

原型模式序列化

2019-08-09 10:33:36

开发技能代码

2009-11-05 14:53:54

Visual Stud

2024-09-18 08:21:24

JavaScriptTypeScriptprototype

2025-01-20 08:50:00

2009-10-22 16:18:19

Oracle表空间

2021-10-19 07:27:08

HTTP代理网络
点赞
收藏

51CTO技术栈公众号