当前位置: 首页 > article >正文

Linux教程8:文本编辑命令vi

一、文本编辑命令介绍

vi(Visual Interface)是一种广泛使用的文本编辑器,特别是在Unix和类Unix系统(如Linux)中。尽管现代系统通常提供了更现代的文本编辑器(如vim,它是vi的增强版本),但了解vi的基本用法仍然是非常有用的,因为它在许多系统和环境中都是预装的。

1、vi 介绍

vi是一种模式化的文本编辑器,意味着它有几种主要的工作模式:

(1)命令模式(Command Mode)

这是vi启动时的默认模式。在这个模式下,你可以输入命令来移动光标、删除文本、搜索文本等。大多数键盘输入都被解释为命令。

(2)插入模式(Insert Mode)

在这个模式下,你可以输入文本。要从命令模式切换到插入模式,你需要输入i(在光标前插入)、a(在光标后追加)、o(在当前行下方新开一行并进入插入模式)等命令。

(3)命令模式-末行模式:

vi的命令模式下,通过输入冒号(:)并按下回车键,即可进入末行模式。此时,屏幕底部会显示一个冒号提示符,表示用户现在处于末行模式,可以输入命令。

2、语法和指令

(1)命令模式

  • i:在当前光标位置进入插入模式。
  • a:在当前光标位置的下一个字符开始插入文本。
  • o:在当前行下方新开一行并进入插入模式。
  • x:删除光标处的字符。
  • dd:删除当前行。
  • yy:复制当前行。
  • p:粘贴之前删除或复制的文本。
  • u:撤销上一步操作。
  • Ctrl + r:重做上一步撤销的操作。
  • G:跳转到文件的最后一行。
  • gg 或 :1:跳转到文件的第一行。

 (2)编辑模式

  • 按i:进入
  • 按ESC:退出

 (3)末行模式 

  • :w        保存当前文件,但不退出vi
  • :w filename 将当前文件保存为指定的文件名。
  • :wq 或 :x 保存当前文件并退出vi
  • :q! 不保存更改,强制退出vi

 二、编辑命令操作介绍

注意:vi命令不能编辑文件夹

vi 文件夹,使用末行命令:wq,会出现以下报错,只能:q退出,不可以编辑保存

1、编辑文本指令

代码:vi 文件名

例:当前文件夹下有一个wenben.txt文件,对其进行编辑
vi wenben.txt
按i进入编辑模式

2、vi编辑后保存并退出 

保存退出:按Esc键进入退出编辑模式进入命令行模式;然后输入:wq 退出vi
:wq!强制保存退出,但是编辑文件夹也不可以退出,因为文件夹不可编辑。

回车回到界面,退出编辑的文档

3、编辑后不想保存直接退出 

当我们修改了文件,又不想保存时输入:q 回车会报错

这时候需要:q! 回车强制退出

4、vi界面中的其他常用指令 

命令模式,进入文本按ESC(不要按I进入编辑模式)

 (1)按v:选择文本

 

通过键盘上下左右控制选择文本

(2)按y:复制 

y复制,选择好文本以后按y复制,可以配合v使用

 (3)按p:复粘贴

p粘贴,粘贴复制好的文本(如果粘贴的文字是一行内的几个字,粘贴的时候不可以换行,换行要进入编辑模式开一个新行后粘贴)

 (4)yy:复制当行

yy复制当行 ,p粘贴这时候会一行一行的粘贴(复制的时候是多行粘贴也是多行)

 (5)dd:删除

将光标定位在想要删除的行,按下dd,删除光标所在行。

(6) u:撤销

u撤销上一个操作

(7) x:删除

x删除当前光标下的字符,可以配合v使用(先用v选择想删除的字符)

测试媛小七:

学习测试基础知识,点个关注,跟我一起系统学习,本专栏为linux知识内容,从0基础到入门的全部内容将持续更新。


http://www.kler.cn/news/290611.html

相关文章:

  • css画个熊猫
  • 面试(九)
  • SAP HCM 如何追踪Z表的日志修改记录
  • Docker 入门指南:从安装到第一个容器
  • 安装vue-cli2.0并创建项目
  • 我该如何使用DevEco Studio进行开发呢
  • 09-02 周一 elasticsearch使用指南
  • Android U 多任务启动分屏——Launcher流程(更新中)
  • 自定义全局变量在uniapp的Vuex应用
  • 人工智能与机器学习原理精解【17】
  • 【JUnit单元测试框架】
  • vite 打包 学习
  • 能实现可算不可见的同态加密技术详解
  • PDF招生简章如何转二维码?
  • PostgreSQL分区表原理、案例的灵活应用
  • EventBus-Vue事件总线解析与使用指南
  • C++学习笔记(6)
  • C++11中的static_assert运算
  • 初学者指南:Spring Boot入门
  • 无人机的核心技术!!!
  • 打通Vue3+Flask(python3)+Mysql-实现简单数据交互
  • 会议音频方案
  • 2024.9.2
  • Orcad封装怎么添加
  • (每日一问)基础知识:Java垃圾回收机制详解
  • ES6基础----Promise的使用
  • UPDATE ... JOIN语法
  • 算法复盘——Leetcode hot100:链表160
  • 复变函数在大模型中的应用
  • 静态工厂模式(简单工厂模式)与动态工厂模式(工厂方法模式)