当前位置:首页>Linux>LINUX-3:Vi/Vim编辑器—Linux系统的文本编辑利器

LINUX-3:Vi/Vim编辑器—Linux系统的文本编辑利器

  • 2026-08-27 10:10:35
LINUX-3:Vi/Vim编辑器—Linux系统的文本编辑利器
Vi/Vim的三种模式:理解编辑器的核心机制
Vi/Vim最独特的地方在于它的模态编辑——不同模式下相同的按键有不同的功能。这是新手最需要适应的概念。

1. 正常模式(Normal Mode)

进入方式:启动Vim或按Esc键
主要用途:移动光标、复制、粘贴、删除、搜索等
特点:这是Vim的默认模式,大部分命令在此模式下执行

2. 插入模式(Insert Mode)

进入方式:按i、a、o等键
主要用途:输入和编辑文本
特点:类似于其他编辑器的编辑状态

3. 命令行模式(Command Mode)

进入方式:在正常模式下按:键
主要用途:执行保存、退出、搜索替换等命令
特点:命令在底部命令行显示

基础操作:从零开始使用Vim

启动与退出Vim
#启动Vimvim filename.txt     #编辑指定文件vim                  #启动Vim但不打开文件#在Vim中退出:q                   #退出(如果文件未修改):q!                  #强制退出,不保存修改:wq                  #保存并退出:x                   #保存并退出(同:wq)ZZ                   #正常模式下,保存并退出

插入文本:进入编辑状态

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

移动光标:高效导航

# 基本移动h                        # 向左移动j                        # 向下移动k                        # 向上移动l                        # 向右移动# 按单词移动w                        # 移动到下一个单词开头e                        # 移动到当前单词结尾b                        # 移动到上一个单词开头# 行内移动0                        # 移动到行首^                        # 移动到行首第一个非空白字符$                        # 移动到行尾# 文档内移动gg                       # 移动到文档开头G                        # 移动到文档末尾:n                       # 跳转到第n行,如:50跳转到第50行Ctrl+f                   # 向下翻页Ctrl+b                   # 向上翻页

编辑操作:复制、粘贴、删除

# 删除操作x                        # 删除光标处的字符dd                       # 删除当前行dw                       # 删除一个单词d$                       # 删除从光标到行尾d0                       # 删除从光标到行首# 复制操作yy                       # 复制当前行yw                       # 复制一个单词y$                       # 复制从光标到行尾# 粘贴操作p                        # 在光标后粘贴P                        # 在光标前粘贴# 撤销与重做u                        # 撤销上一次操作Ctrl+r                   # 重做(恢复撤销的操作)

进阶操作:提升编辑效率

搜索与替换

# 搜索/pattern                 # 向下搜索pattern?pattern                 # 向上搜索patternn                        # 跳转到下一个匹配项N                        # 跳转到上一个匹配项# 替换:%s/old/new/g            # 全局替换所有old为new:%s/old/new/gc           # 全局替换,每次替换前确认:5,10s/old/new/g         # 替换第5到10行的old为new

可视模式:选择文本块

v                        # 进入字符可视模式(按字符选择)V                        # 进入行可视模式(按行选择)Ctrl+v                   # 进入块可视模式(按矩形块选择)# 在可视模式下,可以使用移动命令扩展选择区域# 选择后可以执行y(复制)、d(删除)等操作

多文件编辑

# 打开多个文件vim file1.txt file2.txt  # 同时打开多个文件# 在文件间切换:n                       # 切换到下一个文件:N                       # 切换到上一个文件:files                   # 查看打开的文件列表# 分屏编辑:sp filename             # 水平分割窗口并打开文件:vsp filename            # 垂直分割窗口并打开文件Ctrl+w w                 # 在窗口间切换Ctrl+w h/j/k/l           # 向左/下/上/右切换窗口:q                       # 关闭当前窗口

Vim配置与插件:个性化你的编辑器

基本配置(~/.vimrc)

" 开启语法高亮syntax on" 显示行号set number" 显示相对行号(方便使用跳转命令)set relativenumber" 高亮当前行set cursorline" 设置缩进set tabstop=4           " Tab键宽度为4个空格set shiftwidth=4        " 自动缩进宽度为4个空格set expandtab           " 将Tab转换为空格" 搜索时忽略大小写set ignorecase" 输入搜索模式时,实时高亮匹配项set incsearch" 显示匹配的括号set showmatch" 启用鼠标支持(可选)set mouse=a

常用插件推荐

虽然Vim本身功能强大,但插件可以进一步提升效率:Vundle 或 vim-plug:插件管理器NERDTree:文件浏览器ctrlp.vim:文件模糊查找vim-airline:状态栏美化YouCompleteMe:代码补全

实用技巧与工作流

测试工程师的Vim使用场景

#1. 快速查看和编辑配置文件vim /etc/nginx/nginx.conf#2. 查看和分析日志文件vim /var/log/app/error.log#3. 编辑脚本文件vim automation_script.sh#4. 快速编辑多个文件vim test_case1.txt test_case2.txt test_case3.txt

高效编辑技巧

# 批量注释/取消注释1. 进入可视块模式:Ctrl+v2. 选择要注释的行3. 按I(大写i)进入插入模式4. 输入注释符号(如#)5. 按Esc,所有选中行都会被注释# 重复上次操作.                   #重复上一次修改操作# 执行外部命令:!ls                #执行ls命令并查看结果:!python script.py  #执行Python脚本#读写文件内容:r filename        #将文件内容插入到光标下方:w newfile.txt     #将当前内容另存为新文件

Vim内置教程

Vim自带了一个非常好的交互式教程,强烈建议新手使用:
vimtutor       #在终端中运行vimtutor开始学习#  这个教程大约需要30分钟完成,涵盖了Vim的大部分基础操作。

Vim与其他工具结合

与Shell命令结合

# 将命令输出插入到Vim中:r !date                 # 插入当前日期:r !ls -la               # 插入当前目录文件列表# 将Vim中的文本传递给Shell命令:%!sort                  # 对全文进行排序:5,10!grep "error"       # 对5-10行执行grep

差异查看与合并

vim -d file1.txt file2.txt  # 比较两个文件的差异vimdiff file1.txt file2.txt # 同上,可视化差异比较
在diff模式下,可以使用:]c:跳转到下一个差异点[c:跳转到上一个差异点do:将另一个文件的修改应用到当前文件dp:将当前文件的修改应用到另一个文件

总结

Vi/Vim的学习曲线虽然陡峭,但一旦掌握,它将极大提升你在Linux环境下的工作效率。对于测试工程师来说,不必追求精通Vim的所有高级功能,但应该掌握基础编辑、搜索替换、多文件操作等核心技能。
记住:Vim就像一门乐器,需要持续练习。从今天开始,尝试用Vim完成所有的文本编辑任务,几周后你就会发现自己已经离不开它了!
练习建议:打开vimtutor,每天花15分钟练习,坚持一周,你会发现自己的编辑效率有了质的飞跃。

最新文章

随机文章