当前位置: 首页 > news >正文

Vim 详细使用方法与运维工作常用操作

作为运维工程师,Vim 是日常工作中不可或缺的文本编辑工具。它轻量、高效且无需图形界面,特别适合在服务器环境中使用。本文将详细介绍 Vim 的使用方法及运维工作中的常用操作。

一、Vim 的三种模式

Vim 有三种基本模式,掌握它们是使用 Vim 的基础:

  1. 命令模式(Normal mode):启动 Vim 后的默认模式,用于执行命令
  2. 插入模式(Insert mode):用于输入文本,按 i 进入,按 Esc 返回命令模式
  3. 末行模式(Command-line mode):用于执行保存、退出等命令,按 : 进入

二、基本操作

1. 启动与退出

# 启动 Vim 并打开文件
vim filename# 退出(命令模式下)
:q          # 退出(未修改文件)
:q!         # 强制退出,不保存修改
:wq         # 保存并退出
:x          # 保存并退出(等同于:wq)

2. 插入文本

i    # 在当前光标前插入
I    # 在当前行首插入
a    # 在当前光标后插入
A    # 在当前行尾插入
o    # 在当前行下方新建一行并插入
O    # 在当前行上方新建一行并插入

三、移动光标(命令模式)

在命令模式下,无需使用方向键,可以更高效地移动光标:

h    # 向左移动
j    # 向下移动
k    # 向上移动
l    # 向右移动# 行内快速移动
0    # 移动到行首
^    # 移动到行首第一个非空白字符
$    # 移动到行尾
w    # 移动到下一个单词开头
e    # 移动到当前单词结尾
b    # 移动到上一个单词开头# 文档内快速移动
gg    # 移动到文档开头
G     # 移动到文档结尾
:n    # 移动到第n行(如:10移动到第10行)
Ctrl+f # 向下翻页
Ctrl+b # 向上翻页
Ctrl+d # 向下翻半页
Ctrl+u # 向上翻半页

四、文本编辑常用操作

1. 删除操作

x       # 删除当前光标所在字符
nx      # 删除从光标开始的n个字符
dd      # 删除当前行
ndd     # 删除从当前行开始的n行
d$      # 删除从光标到行尾的内容
d^      # 删除从光标到行首的内容
dw      # 删除从光标到下一个单词开头

2. 复制与粘贴

yy      # 复制当前行
nyy     # 复制从当前行开始的n行
p       # 在光标后粘贴
P       # 在光标前粘贴

3. 撤销与重做

u       # 撤销上一次操作
Ctrl+r  # 重做(取消撤销)

4. 查找与替换

# 查找
/keyword  # 向下查找keyword
?keyword  # 向上查找keyword
n         # 查找下一个匹配项
N         # 查找上一个匹配项# 替换(末行模式)
:s/old/new/      # 替换当前行第一个old为new
:s/old/new/g     # 替换当前行所有old为new
:%s/old/new/g    # 替换整个文档所有old为new
:%s/old/new/gc   # 替换整个文档所有old为new,每次替换前确认

五、运维工作中的实用技巧

1. 同时编辑多个文件

vim file1 file2 file3  # 打开多个文件# 在文件间切换
:n     # 切换到下一个文件
:N     # 切换到上一个文件
:files # 列出所有打开的文件
:b filename # 切换到指定文件

2. 分屏操作

# 水平分屏
:split filename   # 水平分屏打开新文件
Ctrl+w s          # 水平分屏当前文件# 垂直分屏
:vsplit filename  # 垂直分屏打开新文件
Ctrl+w v          # 垂直分屏当前文件# 分屏间切换
Ctrl+w h/j/k/l    # 按方向键在分屏间移动
Ctrl+w w          # 循环切换分屏

3. 处理大文件

# 显示行号
:set number   # 显示行号
:set nonumber # 隐藏行号# 跳转到指定行
:n            # 跳转到第n行

4. 快速注释代码

# 注释多行(末行模式)
:起始行号,结束行号s/^/#/g   # 用#注释指定范围的行
:起始行号,结束行号s/^#//g   # 取消#注释# 例如,注释1到10行
:1,10s/^/#/g

5. 保存部分内容到新文件

:起始行号,结束行号w newfile.txt  # 将指定行范围的内容保存到新文件

6. 读取其他文件内容

:r filename  # 在当前光标位置插入指定文件的内容

7. 执行外部命令

:!command  # 执行外部命令,如:!ls 查看目录内容

8. 替换配置文件中的 IP 地址

在运维工作中,经常需要批量替换配置文件中的 IP 地址:

:%s/192.168.1.1/10.0.0.1/g  # 将所有192.168.1.1替换为10.0.0.1

9. 快速对齐配置文件

# 安装并使用vim-easy-align插件后
Ctrl+v 进入块选择模式
选择需要对齐的行
按:进入末行模式
!column -t  # 按表格形式对齐

六、Vim 配置

可以通过修改 ~/.vimrc 文件来定制 Vim:

" 显示行号
set number" 自动缩进
set autoindent" 语法高亮
syntax on" 搜索时忽略大小写
set ignorecase" 智能大小写搜索(当搜索词包含大写字母时区分大小写)
set smartcase" 显示光标所在位置的行号和列号
set ruler" 启用鼠标
set mouse=a" 自动保存
set autowrite" 突出显示当前行
set cursorline

七、总结

Vim 的强大之处在于其丰富的命令和高度的可定制性。作为运维工程师,掌握 Vim 的常用操作可以显著提高工作效率,尤其是在处理配置文件、日志分析等日常任务时。

建议通过日常使用逐步熟悉这些命令,不必一开始就记住所有内容。随着使用频率的增加,这些操作会逐渐变成肌肉记忆,使你能够更专注于问题本身而非编辑工具。

http://www.dtcms.com/a/389778.html

相关文章:

  • python基础数据分析与可视化
  • DeepSort学习与实践-原理学习
  • 贪心算法应用:多重背包启发式问题详解
  • 使用C#开发的控笔视频生成小程序
  • [重学Rust]之ureq
  • 水下机器人专用绝缘监测装置
  • C++中std::map容器中元素删除方法汇总
  • JavaEE 初阶第二十三期:网络原理,底层框架的“通关密码”(三)
  • 打工人日报#20250918
  • Git本地\远程分支区分查找
  • 从零开始手写机器学习框架:我的深度学习之旅——开启深度学习的底层探索
  • QT的部件
  • Ubuntu20.04仿真 | iris四旋翼添加双目相机D435i
  • eSIM时代来临!iPhone Air引爆无卡化革命
  • openkylin、ubuntu22部署opencv4.8.0
  • 各省产业结构合理化-摩尔(Moore)指数 1999-2023年
  • 【win10、win11】永久关闭自动更新
  • Linux基础实践(基于Ubuntu系统)
  • 线性控制理论:线性系统状态空间
  • OpenAI最新研究:为什么语言模型会产生幻觉
  • 人工智能通识与实践 - 自然语言处理
  • Coze源码分析-资源库-创建工作流-后端源码-安全/错误/流程
  • OneTerm开源堡垒机实战(四):访问授权与安全管控
  • 【赵渝强老师】基于PostgreSQL的MPP集群:Greenplum
  • leetCode算法题记录:27.移除元素
  • 自动化运维工具ansible
  • Roo Code 设置导入、导出与重置
  • 视觉检测技术讲解
  • LibreCAD-2.2+QT5.12+RTKLIB2.4.3
  • Pydantic Schemas 及其在 FastAPI 中的作用