• vi编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,vi是效率很高的文本编辑器。尽管在Linux上也有很多图形界面的编辑器可用,但vi在系统和服务器管理中的功能是那些图形编辑器所无法比拟的。
  • vi 编辑器并不是一个排版程序,它不像Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。没有菜单,只有命令,且命令繁多。vi有3种基本工作模式:命令行模式、文本输入模式和末行模式。
  • Vim是vi的加强版,比vi更容易使用。vi的命令几乎全部都可以在vim上使用。

文本编辑器的作用

  • 创建或修改文本文件

  • 维护Linux系统中的各种配置文件

Linux中最常用的文本编辑器

  • vi:类UNIX操作系统的默认文本编辑器

  • vim: vim是vi文本编辑器(一般简称为vi编辑器)的增强版本

vi编辑器的工作模式

三种工作模式

模式 作用
命令模式 在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。
输入模式 在该模式下,用户输入的任何字符都被vi当做文件内容保存起来,并将其显示在屏幕上。
末行模式 多数文件管理命令都是在此模式下执行,末行命令执行完后,Vi自动回到命令模式。

不同模式之间的切换

快捷键 作用 快捷键 作用
a 在光标之前插入 i 在光标之后插入
o 光标所在的下一行插入 O 光标所在上一行插入
: 末行模式 esc键 退出当前模式回到命令模式

命令模式的基本操作

光标移动

操作类型 操作键 功能
方向移动 ↑、↓、←、→ 上、下、左、右
翻页 Page Down或Ctrl+F 向下翻动整页内容
Page Up或Ctrl+B 向上翻动整页内容
行内快速跳转 Home键或“^”、数字"0" 跳转至行首
End键或"$”键 跳转到行尾
行间快速跳转 1G或者gg 跳转到文件的首行
G 跳转到文件的末尾行
#G 跳转到文件中的第#行
行号显示 :set nu 在编辑器中显示行号
:set nonu 取消编辑器中的行号显示

复制、粘贴、删除

操作类型 操作键 功能
删除 x或Del 删除光标处的单个字符
dd 删除当前光标所在行
#dd 删除从光标所在行开始的#行内容
d^ 删除当前光标之前到行首的所有字符
d$ 删除当前光标到行尾的所有字符
dw 删除光标所在处单词
复制 yy 复制当前行整行的内容到剪贴板
#yy 复制从光标所在行开始的#行内容
粘贴 p 将缓冲区中的内容粘贴到光标位置处之后
P 粘贴到光标位置之前

文件内容查找

操作键 功能
/word 从上而下在文件中查找字符串“word”
?word 从下而上在文件中查找字符串“word”
n 定位下一个匹配的被查找字符串
N 定位上一个匹配的被查找字符串

撤销编辑及保存退出

操作键 功能
u 按一次取消最近一次操作,重复u键,恢复多部操作
U 用于取消对当前行所做的所有比编辑
ZZ 保存当前的文件内容并退出vi编辑器

末行模式的基本操作

保存文件及退出vi编辑器

功能 命令 备注
保存文件 :w 保存修改的内容
:w /root/newfile 另存为其他文件
退出vi :q 未修改退出
:q! 放弃对文件内容的修改,并退出vi
保存文件退出 :wq 保存修改的内容并退出

打开新文件或读入其他文件内容

命令 功能
:e /install.log 打开新的文件进行编辑
:r /etc/filesystems 在当前我文件中读入其他文件内容

文件内容替换

命令 功能
:s/old/new 将当前行中查找到的第一个字符"old"串替换为"new"
:s/old/new/g 将当前行中查找到的所有字符串"old"替换为“new”
:#,# s/old/new/g 在行号“#,#”范围内替换所有的字符串“old"为”new“
:s/old/new/c 在替换命令末尾加入c命令。将对每个替换动作提示用户进行确认

附赠vi编辑器键盘键位图

vi编辑器简介的更多相关文章

  1. 第三天 vi编辑器使用和软件安装

    [复习] 判断题: 查看某文件权限为rwxr-xr-- ,则其所属组权限为只读. 对一个目录有w权限,表示可以修改目录下文件内容. 3..tar.gz格式的压缩包可以使用tar -xjf解压缩 4.m ...

  2. linux基础-第九单元 利用vi编辑器创建和编辑正文文件

    vi编辑器简介 什么是vi vi编辑器的操作模式 vi编辑器的3种基本模式 在vi编辑器中光标的移动 移动光标位置的键与光标移动间的关系 进入插入模式 从命令行模式进入插入模式的命令 在命令行模式下删 ...

  3. 第九单元 利用vi编辑器创建和编辑正文文件

    vi编辑器简介  什么是vi vi编辑器的操作模式 vi编辑器的3种基本模式 在vi编辑器中光标的移动 移动光标位置的键与光标移动间的关系 进入插入模式 从命令行模式进入插入模式的命令 在命令行模式下 ...

  4. Linux基础-5.利用vi编辑器创建和编辑正文文件

    1.vi编辑器简介 1)掌握vi编辑器的定义:vi编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界面,vi是效率很高的文本编辑器.尽管在Linux上也有很多图形界面 ...

  5. linux vi编辑器操作手册

    简介 Linux下的文本编辑器有很多种,vi 是最常用的,也是各版本Linux的标配.注意,vi 仅仅是一个文本编辑器,可以给字符着色,可以自动补全,但是不像 Windows 下的 word 有排版功 ...

  6. linux中vi编辑器的使用

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本 编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任 何版本,vi编辑器是完 ...

  7. 初识vi编辑器

    vi基本概念既不介绍了,百度,wiki上都有.下面稍微总结下我所学的vi吧 1.vi分为三种状态:命令模式(command mode);插入模式(insert mode);底行模式(last line ...

  8. Vi编辑器入门

    Vi编辑器入门   vi编辑器是所有Unix及Linux系统下标准的编辑器,类似于windows上的记事本! 1.vi的基本概念  基本上vi可以分为三种状态,分别是命令模式(command mode ...

  9. 二:Linux 的基本命令、VI编辑器、Linux中软件安装

    Linux 的基本命令 1. 文件操作 a) Windows 是多根的文件系统,物理上是 1 到多块硬盘,逻辑上分为 C.D.E--盘, 每个盘都是一棵树.Linux 是单根的文件系统,不分 CDE ...

随机推荐

  1. 【原生JS插件】LoadingBar页面顶部加载进度条

    先展示一下已经实现的效果: 预览地址:http://dtdxrk.github.io/js-plug/LoadingBar/index.html 看到手机上的浏览器内置了页面的加载进度条,想用在pc上 ...

  2. 系统调用system call以及strace/dtruss

    计算机系统的各种硬件资源是有限的,在现代多任务操作系统上同时运行的多个进程都需要访问这些资源,进程是不允许直接操作这些资源的,所有对这些资源的访问都必须有操作系统控制.也就是说操作系统是使用这些资源的 ...

  3. NGUI无法显示

    早上起来发现 ,NGUI无法显示,后来发现是场景Camera的 depth =0 : 要设置depth=-1. 原来相机之间也有渲染层级

  4. logstash kafka output 日志处理

    今天在用logstash解析日志并传送给kafka的时候,发现kafka能收到数据但数据内容已经丢失,具体如下: 在logstash output中增加输出样式之后,问题解决kafka再次接受到的内容 ...

  5. Ajax基本概念

    一. Ajax 1. 什么是ajax Ajax: asynchronous  javascript  and  xml (异步js和xml) 其是可以与服务器进行(异步/同步)交互的技术一. ajax ...

  6. WiFi、ZigBee、BLE用哪个?

    小米是这么选的: 1) 插电的设备,用WiFi: 2) 需要和手机交互的,用BLE: 3) 传感器用ZigBee. WIFI,WIFI是目前应用最广泛的无线通信技术,传输距离在100-300M,速率可 ...

  7. JDK1.8 的 HashMap 源码之文件注释

    文章目录 null 插入,key的位置变化 迭代操作时间 性能因素 负载因子 Comparable 加锁 迭代器修改 null 插入,key的位置变化,迭代操作时间,性能因素,负载因子,Compara ...

  8. yzoj 2377 颂芬梭哈 题解

    题意 Alice 和 Mukyu 最近偶然得到了一本写有一种叫做梭哈的扑克游戏的规则的说明书(名为<C████████nd>,中间部分被涂掉了),据其所述,梭哈是一种使用黑桃.红心.梅花. ...

  9. 【MIT 6.824 】分布式系统 课程笔记(一)

    Lecture 02 Infrastructure: RPC & threads 一.多线程挑战 共享数据: 使用互斥信号量.或者避免共享 线程间协作: 使用channels 或者 waitg ...

  10. Docker 方式部署的应用的版本更新

    前言 公司使用 Docker-Compose 的方式部署 Jenkins/Gitlab/Sonar/Confluence/Apollo/Harbor/ELK/MySQL 等一系列开发工具/数据库. 而 ...