vi命令行模式有哪些核心操作?

Linux vi 编辑器的命令行模式是其核心操作模式之一,用户在 vi 中打开文件后,默认进入的就是这种模式,命令行模式主要用于导航、执行文本操作命令(如复制、粘贴、删除、查找等),以及进入其他模式(如插入模式、末行模式),熟练掌握命令行模式的操作是高效使用 vi 的关键,以下将详细介绍该模式的功能、常用命令及使用技巧。

linux vi 命令行模式
(图片来源网络,侵删)

在命令行模式下,所有输入都会被解释为命令,而非文本内容,用户需要明确当前所处的模式,避免误操作,若在命令行模式下直接输入字母,系统会将其视为命令执行,而非插入文本,这种设计虽然初学者可能感到不适应,但一旦熟练,便能通过快捷键实现高效编辑。

基本导航命令

导航是命令行模式最基础的功能,通过快捷键快速定位光标位置,提高编辑效率。

  • 字符级导航
    • h:光标左移一个字符。
    • l:光标右移一个字符。
    • j:光标下移一行。
    • k:光标上移一行。
    • ^:移动到当前行的第一个非空白字符。
    • 移动到当前行的末尾。
  • 单词级导航
    • w:移动到下一个单词的起始位置(标点符号视为分隔符)。
    • e:移动到下一个单词的末尾。
    • b:移动到上一个单词的起始位置。
    • WEB:与 web 类似,但将标点符号视为单词的一部分。
  • 行与屏幕级导航
    • gg:跳转到文件的第一行。
    • G:跳转到文件的最后一行。
    • nG(如 5G):跳转到第 n 行。
    • H:跳转到屏幕的第一行。
    • M:跳转到屏幕的中间行。
    • L:跳转到屏幕的最后一行。
  • 滚动屏幕
    • Ctrl+f:向下滚动一页(forward)。
    • Ctrl+b:向上滚动一页(backward)。
    • Ctrl+d:向下滚动半页(down)。
    • Ctrl+u:向上滚动半页(up)。

文本编辑命令

命令行模式支持高效的文本编辑操作,包括删除、复制、粘贴等,这些命令通常与动作命令结合使用。

  • 删除命令(d)
    • x:删除光标所在处的字符。
    • X:删除光标左侧的字符。
    • dd:删除当前行。
    • ndd(如 3dd):删除从当前行开始的 n 行。
    • d^:删除从光标处到行首的内容。
    • d$:删除从光标处到行尾的内容。
    • dw:删除一个单词。
    • dG:删除从当前行到文件末尾的所有内容。
  • 复制命令(y)
    • yy:复制当前行。
    • nyy(如 2yy):复制从当前行开始的 n 行。
    • y^:复制从光标处到行首的内容。
    • y$:复制从光标处到行尾的内容。
    • yw:复制一个单词。
  • 粘贴命令(p)
    • p:将缓冲区中的内容粘贴到光标所在位置的下一行(针对行操作)或光标右侧(针对字符操作)。
    • P:将缓冲区中的内容粘贴到光标所在位置的上一行(针对行操作)或光标左侧(针对字符操作)。
  • 替换与撤销
    • r:替换光标所在处的字符(如 ra 将当前字符替换为 a)。
    • R:进入替换模式,连续替换光标处的字符。
    • u:撤销上一次操作。
    • Ctrl+r:重做被撤销的操作。

搜索与替换命令

  • 文本搜索
    • /pattern:从光标处向下搜索匹配 pattern 的文本,按 n 跳转到下一个匹配项,N 跳转到上一个匹配项。
    • ?pattern:从光标处向上搜索匹配 pattern 的文本,nN 的跳转方向与 相反。
  • 替换命令(需进入末行模式)
    • s/old/new:替换当前行中第一个 oldnew
    • s/old/new/g:替换当前行中所有 oldnew
    • %s/old/new/g:替换整个文件中所有 oldnew
    • n,ms/old/new/g:替换第 n 行到第 m 行中所有 oldnew

其他实用命令

  • 重复执行

    (点号):重复上一次的编辑命令(如删除、复制等)。

    linux vi 命令行模式
    (图片来源网络,侵删)
  • 合并行
    • J:将当前行与下一行合并为一行。
  • 显示/隐藏行号
    • set nu:显示行号。
    • set nonu:隐藏行号。
  • 退出 vi
    • q:退出 vi(若未修改文件)。
    • q!:强制退出 vi(不保存修改)。
    • wqx:保存修改并退出。

命令行模式与模式的切换

命令行模式是 vi 的“中枢”,通过特定命令可进入其他模式:

  • i(insert)、a(append)、o(open new line below)等进入插入模式,用于输入文本。
  • 按 (冒号)进入末行模式,执行保存、退出、替换等全局命令。
  • v 进入可视模式,选择文本块后进行编辑操作。
  • 插入模式下按 Esc 键可返回命令行模式。

命令行模式操作技巧

  1. 组合命令:通过“操作+动作”组合实现高效编辑,如 d2w(删除两个单词)、y3l(复制三个字符)。
  2. 使用寄存器:通过 "寄存器号+命令 操作指定寄存器,如 "ayy 将当前行复制到寄存器 a"ap 从寄存器 a 粘贴。
  3. 标记与跳转:通过 m(mark)设置标记(如 ma 在当前行设置标记 a),通过 (单引号)跳转到标记位置(如 'a 跳转到标记 a 所在行)。

以下为常用命令的总结表格:

命令类型命令功能说明
光标移动(字符级)h、j、k、l左、下、上、右移动光标
光标移动(行级)gg、G、nG跳转至首行、末行、第n行
光标移动(单词级)w、e、b跳转至下一个单词首/末、上一个单词首
删除dd、ndd、dw删除当前行、n行、一个单词
复制yy、nyy、yw复制当前行、n行、一个单词
粘贴p、P粘贴至光标下/上或左/右
撤销与重做u、Ctrl+r撤销、重做操作
搜索/pattern、?pattern向下/向上搜索文本
退出wq、:q!保存退出、不保存强制退出

相关问答FAQs

Q1: 在 vi 命令行模式下,如何快速删除从当前光标到行首的内容?
A1: 使用命令 d^d 表示删除操作,^ 表示跳转到当前行的第一个非空白字符,组合后即可删除光标到行首的所有字符,若光标位于某行中间,输入 d^ 后,该行从光标处到行首的内容将被删除。

Q2: 如何在 vi 命令行模式下替换整个文件中所有特定字符串?
A2: 需进入末行模式执行替换命令,在命令行模式下按 ,输入 %s/old_string/new_string/g,按回车即可。 表示整个文件,s 表示替换,old_string 为被替换的字符串,new_string 为替换后的字符串,g 表示全局替换(即替换所有匹配项,而非仅第一个),若需确认替换,可将 g 改为 gc,即 %s/old_string/new_string/gc,此时每次替换前会提示用户确认。

linux vi 命令行模式
(图片来源网络,侵删)

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/447645.html<

(0)
运维的头像运维
上一篇2025-11-05 06:28
下一篇 2025-11-05 06:33

相关推荐

  • 如何修改CASS快捷命令?

    在CAD测绘工作中,CASS软件的快捷命令是提升绘图效率的关键,但默认的快捷命令可能无法完全适应个人操作习惯或特定项目需求,因此掌握CASS快捷命令的修改方法非常重要,修改快捷命令主要通过编辑“acad.pgp”文件实现,该文件是AutoCAD/CASS中用于定义命令别名的主文件,通常位于软件安装目录下的“Su……

    2025-11-20
    0
  • CAD RE命令是什么?

    在CAD软件中,“RE”是“REGEN”命令的快捷键,全称为“Regenerate”,中文通常译为“重生成”或“重生”,这是一个基础但极为重要的命令,主要用于刷新和重新计算当前视口中图形的数据库,确保显示的图形与实际数据完全一致,尽管现代CAD软件的自动重生成功能已大幅减少手动调用“RE”命令的频率,但在特定场……

    2025-11-15
    0
  • UG多边形命令怎么用?

    在UG(Siemens NX)软件中,多边形命令是草图设计或三维建模中常用的基础工具,主要用于创建规则的多边形几何体,如正三角形、正方形、正五边形等,该命令位于“插入”菜单下的“曲线”子菜单中,或通过“草图”工具条直接调用,支持通过参数化方式定义多边形的边数、大小、方向等属性,广泛应用于机械设计、模具制造等领域……

    2025-11-15
    0
  • AutoCAD2008命令大全有哪些核心命令?

    AutoCAD 2008作为经典的CAD设计软件,其命令体系是高效绘图的核心,掌握常用命令能显著提升设计效率,以下是详细的功能分类与操作指南,涵盖绘图、修改、标注、视窗等核心模块,并辅以表格整理高频命令,绘图类命令绘图命令是创建图形的基础,AutoCAD 2008提供了丰富的二维和三维绘图工具,直线(LINE……

    2025-11-09
    0
  • Publishing招聘有哪些岗位和要求?

    在当前的出版行业中,随着数字化转型的深入和内容消费习惯的变化,出版企业对人才的需求呈现出新的特点,无论是传统出版社还是新兴的内容创作机构,都在积极寻找具备复合能力、适应行业变革的专业人才,从编辑、营销到技术运营,招聘方向既涵盖传统核心岗位,也延伸至数字内容管理、用户增长等新兴领域,对从业者的专业素养、创新能力和……

    2025-11-08
    0

发表回复

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