菜鸟科技网

vi命令如何修改文件?

在Linux系统中,vi(或其增强版vim)是一款功能强大的文本编辑器,广泛应用于服务器管理和日常开发中,掌握vi命令的文件修改操作是Linux用户的必备技能,本文将详细介绍vi命令的使用方法,包括启动模式、基本操作、高级技巧及注意事项,帮助用户高效完成文件编辑任务。

vi命令如何修改文件?-图1
(图片来源网络,侵删)

vi的启动与模式切换

vi编辑器有三种主要工作模式:命令模式(Command Mode)、插入模式(Insert Mode)和末行模式(Last Line Mode),启动vi时默认进入命令模式,需通过特定命令切换模式才能进行编辑操作。

  1. 启动vi
    在终端输入vi 文件名即可打开文件,若文件不存在,vi会自动创建新文件。

    vi test.txt
  2. 模式切换

    • 命令模式 → 插入模式:按i(在光标前插入)、a(在光标后插入)、o(在新行插入)等键进入插入模式。
    • 插入模式 → 命令模式:按Esc键返回命令模式。
    • 命令模式 → 末行模式:按(冒号)进入末行模式,用于保存、退出或执行高级命令。

基本编辑操作

在命令模式下,可通过快捷键实现光标移动、文本删除、复制粘贴等操作。

vi命令如何修改文件?-图2
(图片来源网络,侵删)

光标移动

操作 功能说明
h 光标左移一格
j 光标下移一行
k 光标上移一行
l 光标右移一格
0^ 移至行首
移至行尾
gg 跳至文件首行
G 跳至文件末行
nG 跳至第n行(如10G

文本删除与修改

操作 功能说明
x 删除光标所在字符
dd 删除当前行
ndd 删除n行(如3dd
dw 删除一个单词
d$ 删除至行尾
r 替换光标所在字符
cc 修改整行
s 替换当前字符并进入插入模式

复制与粘贴

操作 功能说明
yy 复制当前行
nyy 复制n行(如5yy
p 在光标后粘贴
P 在光标前粘贴
yw 复制一个单词

撤销与重做

操作 功能说明
u 撤销上一步操作
Ctrl + r 重做被撤销的操作

高级编辑技巧

查找与替换

在末行模式下,可通过以下命令实现文本搜索与替换:

  • 查找:(向下搜索)、(向上搜索),按n跳至下一个匹配项,N反向跳转。
  • 替换
    :s/旧文本/新文本/g       # 替换当前行所有匹配项
    :%s/旧文本/新文本/g      # 替换全文所有匹配项
    :n1,n2s/旧文本/新文本/g  # 替换第n1至n2行的匹配项

多文件编辑

  • 打开多个文件vi 文件1 文件2,通过next(下一个文件)、prev(上一个文件)切换。
  • 分屏编辑
    • split(水平分屏)、vsplit(垂直分屏)
    • Ctrl + w + 方向键切换分屏

可视模式

v进入字符可视模式,按V(大写)进入行可视模式,按Ctrl + v进入块可视模式,可通过移动选择文本后执行删除(d)、复制(y)等操作。

保存与退出

在末行模式下,可通过以下命令管理文件:
| 操作 | 功能说明 | |------------|------------------------| | w | 保存当前文件 | | q | 退出vi | | wq | 保存并退出 | | q! | 强制退出(不保存修改) | | w 新文件名 | 另存为其他文件 |

实用技巧与注意事项

  1. 自动缩进:在末行模式下输入set ai可开启自动缩进,适合编辑代码。
  2. 显示行号set nu显示行号,set nonu隐藏行号。
  3. 语法高亮syntax on开启语法高亮(需vim支持)。
  4. 避免误操作:在命令模式下频繁按Esc确保处于正确模式,防止误触发命令。
  5. 备份文件:编辑前可通过w! 备份名创建备份,或设置autowrite自动保存。

相关问答FAQs

问题1:如何在不退出vi的情况下执行Linux命令?
解答:在末行模式下输入!命令即可执行Linux命令,例如!ls查看当前目录文件,执行后按回车返回vi,若需长期保留命令输出,可结合r !命令将结果插入文件中。

vi命令如何修改文件?-图3
(图片来源网络,侵删)

问题2:vi中如何快速跳转到匹配的括号(如{}、[])?
解答:将光标置于任意括号上,按键即可跳转到匹配的括号,此功能需确保文件中括号成对出现,且matchpairs选项已设置(默认包含{:}, [:], (:})。

分享:
扫描分享到社交APP
上一篇
下一篇