Linux vi 编辑器如何进入命令行输入模式?

在Linux系统中,vi(Visual Editor)是一款经典的文本编辑器,掌握其命令行输入方式是高效使用vi的关键,vi的核心设计基于“模式编辑”理念,即通过不同模式切换实现文本编辑与命令输入的分离,理解这一点是掌握vi命令行输入的前提。

linux vi 怎么输入命令行

vi的三种核心模式及切换逻辑

vi的操作依赖于三种基本模式:命令模式(Normal Mode)插入模式(Insert Mode)末行模式(Ex Mode),命令行输入主要在命令模式和末行模式下进行,而插入模式用于文本输入,三者间的切换是使用vi的基础。

命令模式(默认模式)

  • 作用:执行所有命令,包括光标移动、文本删除、复制粘贴、文件保存等。
  • 进入方式:打开vi文件时默认进入命令模式;或在插入模式/末行模式下按ESC键返回。
  • 特点:此模式下键盘输入的字符会被识别为命令,而非文本内容,例如按i会进入插入模式,而非输入字母“i”。

插入模式

  • 作用:输入文本内容(字母、数字、符号等)。
  • 进入方式:在命令模式下按以下命令进入:
    • i:在光标当前位置插入;
    • I:在当前行首插入;
    • a:在光标后一个位置插入;
    • A:在当前行尾插入;
    • o:在当前行下方新建一行并插入;
    • O:在当前行上方新建一行并插入。
  • 退出方式:按ESC键返回命令模式。

末行模式

  • 作用:执行文件保存、退出、搜索替换、参数设置等高级命令,命令以冒号开头。
  • 进入方式:在命令模式下按(冒号),此时vi窗口底部会显示等待输入命令。
  • 退出方式:命令执行后自动返回命令模式;或按ESC取消输入。

命令模式下的命令行输入

命令模式是vi的核心操作模式,绝大多数编辑命令在此模式下输入并执行,以下是常用命令的分类及使用方法:

光标移动命令

光标快速移动是高效编辑的基础,vi支持多种光标移动方式,包括字符级、行级、文件级移动:

命令 功能说明 示例
h 光标左移一个字符
l 光标右移一个字符
j 光标下移一行
k 光标上移一行
0(数字零) 光标移至当前行首
光标移至当前行尾
^ 光标移至当前行第一个非空白字符
w 光标移至下一个单词开头(按空格/标点分隔)
e 光标移至当前单词末尾
b 光标移至上一个单词开头
gg 光标移至文件第一行
G 光标移至文件最后一行
nG(n为数字) 光标移至第n行 10G跳转至第10行

文本编辑命令

编辑命令包括删除、复制、粘贴、替换等操作,支持“操作对象+命令”的组合(如3dd删除3行):

linux vi 怎么输入命令行

命令 功能说明 示例
x 删除光标所在字符
X 删除光标前一个字符
dd 删除当前行
ndd(n为数字) 删除n行 3dd删除当前行及下方2行
yy 复制当前行
nyy(n为数字) 复制n行 5yy复制当前行及下方4行
p 在光标后粘贴复制的内容
P 在光标前粘贴复制的内容
d$ 删除光标至行尾的内容
d^ 删除光标至行首第一个非空白字符的内容
dw 删除一个单词
u 撤销上一步操作
Ctrl+r 重做被撤销的操作
r + 字符 替换光标所在字符为指定字符 rA将光标字符替换为“A”
R 进入替换模式,连续替换光标处字符 按ESC退出替换模式

搜索与替换命令

  • 搜索

    • + 关键词:从光标位置向文件尾搜索,按n跳至下一个匹配项,N跳至上一个。
    • + 关键词:从光标位置向文件头搜索,nN方向同上。
    • 示例:/linux搜索“linux”,按n继续查找。
  • 替换(需在末行模式下执行,详见下一节)。

末行模式下的命令行输入

末行模式用于执行批量操作或文件管理命令,命令以冒号开头,执行后自动返回命令模式,以下是常用末行命令:

命令 功能说明 示例
w 保存当前文件
w filename 另存为指定文件 w newfile.txt
q 退出vi(未修改文件时)
q! 强制退出(不保存修改)
wq 保存并退出
x 保存并退出(同wq,但修改小时更高效)
wq! 强制保存并退出(只读文件时需加)
set nu 显示行号
set nonu 取消显示行号
1,10s/old/new/g 替换1-10行中所有“old”为“new” 1,5s/hello/hi/g
%s/old/new/g 替换整个文件中所有“old”为“new” %s/error/ok/g
s/old/new 替换当前行第一个“old”为“new”
s/old/new/g 替换当前行所有“old”为“new”
n1,n2d 删除n1至n2行 3,8d删除3-8行
n1,n2co n3 将n1-n2行复制到n3行下方 1,5co 10复制1-5行到第10行下方
n1,n2m n3 将n1-n2行移动到n3行下方 3,6m 12移动3-6行到第12行下方

命令行输入的注意事项

  1. 区分大小写:vi命令区分大小写,例如dd(删除行)与DD(功能相同,但通常用小写),w(保存)与W(移动到大写单词开头,按空格分隔)含义不同。
  2. 数字前缀:多数命令支持数字前缀,表示重复次数,如2yy复制2行,3x删除3个字符。
  3. 命令取消:在输入命令过程中(如末行模式输入命令时),按ESC可取消当前输入,返回命令模式。
  4. 模式提示:vi窗口底部会显示当前模式,如“– INSERT –”表示插入模式,“– NORMAL –”表示命令模式,“:”提示进入末行模式,可通过此状态判断当前模式。

相关问答FAQs

问题1:在vi中如何快速跳转到文件开头或结尾?
解答:跳转至文件开头:在命令模式下按gg(小写g两次);跳转至文件结尾:按G(大写G),若需跳转至指定行号,可输入nG(n为行号,如20G跳转至第20行)。

linux vi 怎么输入命令行

问题2:在vi中如何批量替换文件中的特定文本内容?
解答:需在末行模式下执行替换命令,语法为[范围]s/旧文本/新文本/g

  • 范围省略时仅替换当前行,如s/old/new/g
  • 范围为时替换整个文件,如%s/old/new/g
  • 范围为行号时替换指定行,如1,10s/old/new/g(替换1-10行)。
    若需替换确认(逐个确认替换),可在命令后加c,如%s/old/new/gc,此时会提示是否替换(y=替换,n=跳过,a=全部替换,q=退出)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/16525.html

(0)
酷番叔酷番叔
上一篇 2025年8月25日 05:13
下一篇 2025年8月25日 05:32

相关推荐

  • 如何快速提升网站流量?

    在Linux系统中,su命令(全称”Switch User”)是管理员和高级用户进行账户切换的核心工具,它允许在不注销当前会话的情况下临时或长期切换到其他用户身份,尤其在多用户环境或系统维护中至关重要,以下是详细操作指南:su – 目标用户名示例:切换到用户johnsu – john关键参数: 或 -l:加载目……

    2025年7月12日
    5000
  • PS选区命令怎么用?实用操作技巧与步骤详解

    在Photoshop中,选区是编辑局部区域的基础,无论是抠图、调色还是合成,都离不开精准的选区操作,掌握选区命令的使用方法,能大幅提升工作效率和作品质量,下面将从基础工具到进阶命令,详细解析选区的创建、修改、优化及应用技巧,基础选区工具:规则与不规则边缘的快速选择PS的选区工具栏位于左侧工具栏顶部,默认显示“矩……

    2025年8月31日
    3000
  • XP电脑怎么删除安卓系统的错误命令?

    在Windows XP系统中操作安卓设备时,若因误输入错误命令导致系统异常(如文件丢失、设备无法识别或功能异常),需通过系统工具和安卓调试桥(ADB)进行针对性修复,以下分步骤详细说明删除错误命令影响及恢复方法,涵盖错误分析、设备修复、系统清理等核心环节,确保操作安全且可执行,确认错误命令的影响范围在修复前,需……

    2025年8月27日
    2800
  • 还原前必做哪些准备?

    还原前的关键准备包括:确认系统兼容性与环境要求;完整备份当前数据以防意外;检查并确保拥有必要的还原工具、权限及充足的存储空间。

    2025年7月8日
    5700
  • cad al命令怎么用

    D中AL(对齐)命令,先选需对齐对象,再指定一对、两

    2025年8月10日
    4000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信