一.文本编辑器命令
1.文本编辑器的作用
创建或修改文本文件
维护Linux系统中的各种配置文件
2.Linux中最常用的文本编辑器
vi:类UNIX操作系统的默认文本编辑器
vim:vim是vi文本编辑器(一般称为vi编辑器)的增强版本
二.vi编辑器的工作模式
1.概述
vi编辑器是工作在字符终端环境下的全屏幕编辑器,因此编辑界面相对较简单,没有为用户提供鼠标操作和菜单系统,而是通过按键命令实现相应的编辑和操作功能。在vi编辑界面中可以使用三种不同的工作模式,即命令模式、输入模式和末行模式,在不同的模式中能够对文件进行的操作也不相同。
2.三种工作模式
命令模式:启动vi编辑器后默认进入命令模式,该模式中主要完成如光标移动、字符查找、复制、粘贴文件内容等相关操作。
输入模式:该模式中的主要操作就是录入文件内容,可以对文本文件正文内容进行修改或添加新的内容。处于输入模式时,vi编辑器的最后一行会出现“-INSERT-”的状态提示
末行模式:该模式可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vi编辑器最后一行会出现冒号“:”提示符。
3.不同模式之间的切换
| 命令 | 作用 | 
| a | 当前光标位置之后插入内容 | 
| i | 当前光标位置之前插入内容 | 
| o | 光标所在行之下插入一行新内容 | 
| O | 光标所在行之上插入一行新内容 | 
| l | 所在行的行首插入内容 | 
| A | 所在行行尾插入内容 | 
4.命令模式的基本操作
| 操作类型 | 操作键 | 功能 | 
| 方向移动 | ⬆、⬇、⬅、➡ | 上下左右 | 
| 翻页 | Page Down或Ctrl+F | 向下翻动一整页内容 | 
| Page Up或Ctrl+B | 向上翻动一整页内容 | |
| 行内快速跳转 | Home键或^键、数字0键 | 跳转到行首 | 
| End键或“&”键 | 跳转到行首 | |
| 行间快速跳转 | 1G或gg | 跳转到文件的首行 | 
| G | 跳转到文件的最后一行 | |
| #G | 跳转到文件中的第#行(#是具体数字) | |
| 行号显示 | :set nu | 在编辑器中显示行号 | 
| :set nonu | 取消编辑器中的行号显示 | 

 输入模式:
末行模式:保存并退出。
 
5.命令模式的基本操作之复制粘贴删除
| 操作类型 | 操作键 | 功能 | 
| 删除 | x或Delete | 删除光标处的单个字符 | 
| dd | 删除当前光标所在行 | |
| #dd | 删除从光标处开始的#行内容 | |
| d^ | 删除当前光标之前到行首的所有字符 | |
| d$ | 删除当前光标处到行尾的所有字符 | |
| 复制 | yy | 复制当前行整行的内容到剪切板 | 
| #yy | 复制从光标所在行开始的#行内容 | |
| 粘贴 | P | 将缓冲区中的内容粘贴到光标位置处之后 | 
| p | 粘贴到光标位置处之前 | 
文件内容查找
| 操作键 | 功能 | 
| /word | 从当前光标处向后进行查找字符串“word” | 
| ?word | 从当前光标处向前进行查找字符串“word” | 
| n | 定位下一个匹配的被查找字符 | 
| N | 定位上一个匹配的被查找字符 | 
撤销编辑及保存退出
| 操作键 | 功能 | 
| u | 按一次取消最近一次的操作;重复u键,恢复多步操作 | 
| U | 用于取消对当前行所做的所有编辑 | 
| ZZ | 保存当前的文件内容并退出vi编辑 | 
6.末行模式的基本操作
保存文件及退出vi编辑器
| 功能 | 命令 | 备注 | 
| 保存文件 | :w | 保存修改的内容 | 
| :w /root/newfile | 另存为其它文件 | |
| 退出vi | :q | 未修改退出 | 
| :q! | 放弃对文件内容的修改,并退出vi | |
| 保存文件退出vi | :wq或x | 保存修改的内容并退出 | 
打开新文件或读入其他文件内容
| 命令 | 功能 | 
| :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/g | 将整个文件范围内所有的“old”字符串替换为“new” | 
| :s old/new/c | 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认 | 











