首页 >> 宝藏问答 >

问linuxvi 命令详解 vi 文本编辑器操作教程

2026-11-08 22:29:51

答

linux vi 是 Linux 系统原生自带的经典全屏文本编辑器,几乎所有发行版默认预装,vim 是 vi 的增强版本,很多系统输入 vi 实际打开的就是 vim,vi 最大特点是多模式编辑,分为命令模式、插入模式、底行命令模式,新手最容易卡在模式切换,不知道怎么进入编辑、怎么保存退出,运维修改配置文件,比如 nginx、ssh、系统配置,在没有其他编辑器环境的时候,vi 是必备工具,不需要图形界面,纯终端就可以完成文件编辑,重点掌握三种模式切换、基础移动、编辑操作、保存退出、查找替换、常见报错。

基础语法

命令格式

vi 文件名

示例

vi /etc/hosts

如果文件存在,直接打开;文件不存在,保存之后会新建文件

三大核心模式深度拆解

1 命令模式(默认进入就是这个模式)

打开文件默认就是命令模式,此时不能输入文字,所有按键都是指令,用来移动光标、复制、删除、查找

2 插入模式

在命令模式按下 i a o 等按键进入,可以正常输入文本,按 ESC 返回命令模式

3 底行命令模式

命令模式输入冒号:进入,用来保存、退出、查找替换、设置参数,执行完命令自动回到命令模式

进入插入模式按键

i 在光标前插入

a 在光标后插入

I 在本行行首插入

A 在本行行尾插入

o 在当前行下方新建一行插入

O 在当前行上方新建一行插入

光标移动(命令模式)

h 左移

j 下移

k 上移

l 右移

gg 跳到文件第一行

G 跳到文件最后一行

数字 + G 跳转到指定行,比如 100G 跳到 100 行

w 跳到下一个单词

b 跳到上一个单词

$ 移动到行尾

^ 移动到行首

编辑操作(命令模式)

x 删除光标单个字符

dd 删除整行(同时相当于剪切)

ndd 删除 n 行,比如 3dd 删除 3 行

yy 复制当前整行

nyy 复制 n 行,比如 5yy 复制 5 行

p 在光标下方粘贴

P 在光标上方粘贴

u 撤销上一步操作

Ctrl+r 重做,撤销的反向恢复

底行命令核心操作

:w 保存

:q 退出

:wq 保存并退出

:q! 强制退出,不保存修改

:wq! 强制保存并退出(只读文件有权限时使用)

:set nu 显示行号

:set nonu 取消行号

/ 关键词 向下查找关键词

? 关键词 向上查找关键词

n 查找下一个匹配项

N 查找上一个匹配项

:% s / 旧内容 / 新内容 /g 全文替换

:% s / 旧内容 / 新内容 /gc 全文替换,每一处需要确认

常用参数对照表

操作命令写法功能说明
打开文件vi test.txt打开或者新建文件
打开并定位行号vi +100 test.txt打开文件直接跳到 100 行
只读打开vi -R test.txt只读模式打开文件

实操分步示例

修改配置文件

vi /etc/ssh/sshd_config

进入之后按 i 进入插入模式修改内容,修改完成按 ESC,输入:wq 保存退出

查找端口配置

vi nginx.conf

命令模式输入 /listen 回车,n 继续查找下一处

全文替换

:%s/192.168.1.10/192.168.1.20/g

vi 和 vim 对比

对比项vivim
全称vi(Visual Editor)Vi IMproved vi 增强版
语法高亮不支持支持语法高亮
功能基础编辑支持插件、代码补全、多级撤销
预装所有 Linux 默认自带很多发行版 vi 软链接指向 vim

常见踩坑排错清单

1 一直无法输入文字,是停留在命令模式,忘记按 i 进入插入模式

2 改完不知道怎么退出,按 ESC,然后 :q! 放弃退出

3 文件只读,保存报错 E45,确认权限,root 或者:wq! 强制保存

4 误按很多按键乱码,按 u 撤销,或者:q! 不保存退出重新打开

5 中文乱码,终端编码不匹配,可以底行执行 :set encoding=utf-8

【常见问题】

问题 1 linuxvi 也就是 vi 怎么保存退出

回答 1 linuxvi 也就是 vi,先按 ESC 回到命令模式,输入:wq 回车就是保存退出,如果不想保存修改,输入:q! 强制退出。

问题 2 linuxvi 也就是 vi 默认是什么模式

回答 1 linuxvi 也就是 vi 打开文件默认是命令模式,不能直接输入文字,需要按 i a o 等按键进入插入模式才可以编辑文本。

问题 3 linuxvi 也就是 vi 和 vim 是同一个吗

回答 1 linuxvi 也就是 vi 是原始编辑器,vim 是 vi 增强版,很多 linux 发行版执行 vi 实际调用的就是 vim,vim 支持语法高亮等额外功能。

问题 4 linuxvi 也就是 vi 怎么全文替换

回答 1 linuxvi 也就是 vi 在底行模式输入:% s / 旧文本 / 新文本 /g,就可以完成全文批量替换,加 c 参数可以每一处替换前确认。

【免责申明】

本文 linuxvi 也就是 vi 命令详解基于传统 vi 与 vim 通用操作编写,不同发行版内置 vi 实现细节略有差异,执行 man vi 查看本机手册页,修改系统配置文件前建议备份原文件,内容仅用于 linux 运维学习参考。

 

相关阅读

最新文章