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)
酷番叔酷番叔
上一篇 3小时前
下一篇 3小时前

相关推荐

  • CAD JOIN命令如何使用?

    在AutoCAD中,J命令(JOIN) 是一个极其实用且高效的编辑命令,它的核心功能是将多个独立的、共线或同心的图形对象连接合并成一个单一的对象,这不仅能简化图形结构,方便后续编辑(如偏移、修剪、延伸),还能优化文件大小,掌握J命令的正确用法是提升CAD绘图效率的关键一步,J命令的核心功能与适用对象J命令主要用……

    2025年6月21日
    3200
  • 如何用命令提示符(cmd)运行java程序?

    在Windows系统中,命令提示符(CMD)是Java开发的基础工具,通过它可以完成Java代码的编译与运行,无需依赖集成开发环境(IDE),本文将详细讲解从环境配置到程序运行的完整流程,帮助新手掌握使用命令提示符操作Java的方法,准备工作:安装JDK与配置环境变量Java程序的开发和运行依赖于Java开发工……

    1天前
    400
  • 如何快速提升网站流量?

    在Linux或Unix系统中,bc(Basic Calculator)是一个强大的命令行计算器,支持高精度数学运算,包括除法,以下详细说明如何使用bc进行除法操作,涵盖基础用法、小数控制、常见问题及实用技巧,基础除法运算整数除法(默认行为)直接输入除法表达式,bc默认只输出整数部分(向下取整):echo &qu……

    2025年7月6日
    2000
  • 如何通过命令行启动IBM Cognos Analytics?

    通过命令行启动IBM Cognos Analytics需先启动服务,然后定位到安装目录的bin文件夹,执行对应操作系统的启动命令(如Windows用cogtrcmd,Linux/Unix用./cogconfig.sh)。

    2025年7月9日
    2000
  • 怎样进入Linux命令行?6种实用方法

    快捷键打开终端(最常用)操作步骤:在图形桌面环境中(如GNOME、KDE),按下组合键:Ctrl + Alt + T(Ubuntu/Fedora等主流发行版默认)或 Ctrl + Alt + F2~F6(部分系统需配合功能键),适用场景:日常任务、快速执行命令,注意:桌面环境不同快捷键可能略有差异(如Xfce需……

    2025年8月7日
    1100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信