# 3.Linux 文本编辑器
# 1.vim 编辑器的基本操作
1.1 文本编辑器介绍
文本编辑器的作用:Linux 系统中的配置文件以文本文件的形式保存,Linux 管理员需要通过编辑配置文件进行系统管理
文本编辑器的分类:行编辑器与全屏幕编辑器,字符界面编辑器与图形界面编辑器
vim:Vim 是一个高度可配置的、跨平台的、高效率的文本编辑器,大多数 Linux 系统中缺省使用的文本编辑器。
Emacs: 用于编辑程序源代码文件的文本编辑器
nano: 在字符界面提供了菜单操作,易用性较好
gedit:GNOME 图形环境中的文本编辑器
1.2 vim 编辑器的三个模式
命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作
输入模式:正常的文本录入
末行模式:保存或退出文档,以及设置编辑环境
1.3 vim 编辑器的启动和退出
vim 编辑器的启动:
直接进入编辑环境 $ vi
进入编辑环境并打开(新建)文件 $ vi myfile
vim 编辑器的退出:
退出 vi 编辑环境:q
退出:wq
保存退出
输入末行命令放弃对文件的修改,并退出编辑器 :q!
1.4 文件的打开和读取
打开新文件:
打开新的文件到 vi 编辑器中 :e filename
打开新的文件到 vi 编辑器中,并放弃对当前文件的修改 :e! filename
读取其他文件:读取文件内容到当前 vi 编辑器中 :r filename
1.5 文件保存与另存为
保存对 vi 编辑器中已打开文件的修改 :w
将 vi 编辑器中的内容另存为指定文件名 :w myfile
# 2. 输入模式常见操作
2.1 进入输入模式
vim 编辑器有三个模式,利用命令进入到 vim 编辑器中初始面对的是命令模式,命令模式无法对当前文件进行输入操作,必须进入输入模式才能进行文本的输入。进入的方法是按键盘上的 i、a、o 这几个键。
命令 | 功能 |
---|---|
i | 在当前光标处进入插入状态 |
a | 在当前光标后进入插入状态 |
A | 将光标移动到当前行的行末,并进入插入状 |
o | 在当前行的下面插入新行,光标移动到新行的行首,进入插入状态 |
O | 在当前行的上面插入新行,光标移动到新行的行首,进入插入状态 |
2.2 输入模式的编辑操作
按键 | 功能 |
---|---|
方向键 | 进行上下左右方向的光标移动 |
Home | 快速定位光标到行首 |
End | 快速定位光标到行尾 |
PageUp | 进行文本的向上翻页 |
PageDown | 进行文本的向下翻页 |
Backspace | 删除光标左侧的字符 |
Del | 删除光标位置的字符 |
# 3. 命令模式常见操作
3.1 命令模式的基本操作
输入 vi 命令后,便进入全屏幕编辑环境,此时的状态为命令模式。在命令模式下,我们可以输入一些命令,但是当你点击键盘上相应键输入命令时,这些命令只会呈现最终的效果,不会在编辑器界面上显示出命令的字符。
3.2 行内快速跳转
操作键 | 功能 |
---|---|
^ | 将光标快速跳转到本行的行首字符 home |
$ | 将光标快速跳转到本行的行尾字符 end |
w | 将光标快速跳转到当前光标所在位置的后一个单词的首字母 |
b | 将光标快速跳转到当前光标所在位置的前一个单词的首字母 |
e | 将光标快速跳转到当前光标所在位置的后一个单词的尾字母 |
方向键 | 进行上下左右方向的光标移动 |
Home | 快速定位光标到行首 |
End | 快速定位光标到行尾 |
3.3 行间快速跳转
命令 | 功能 |
---|---|
:set nu | 在编辑器中显示行号 |
:set nonu | 取消编辑器中的行号显示 |
1G | 跳转到文件的首行 |
G | 跳转到文件的末尾行 |
#G | 跳转到文件中的第 #行 |
PageUp | 进行文本的向上翻页 |
PageDown | 进行文本的向下翻页 |
# 4.vim 编辑器的删除与撤销
4.1 文件内容的删除
命令 | 功能 |
---|---|
x | 删除光标处的单个字符 = delete |
dd | 删除光标所在行 5dd 可以删除 5 行内容 |
dw | 删除当前字符到单词尾(包括空格)的所有字符 |
de | 删除当前字符到单词尾(不包括单词尾部的空格)的所有字符 |
d$ | 删除当前字符到行尾的所有字符 |
d^ | 删除当前字符到行首的所有字符 |
J | 删除光标所在行行尾的换行符,相当于合并当前行和下一行的内容 |
4.2 文件内容的撤销
命令 | 功能 |
---|---|
u | 取消最近一次的操作,并恢复操作结果可以多次使用 u 命令恢复已进行的多步操作 |
U | 取消对当前行进行的所有操作 |
Ctrl+r | 对使用 u 命令撤销的操作进行恢复 |
# 5.vim 编辑器的复制与粘贴
单行复制:在命令模式下,将光标移动到将要复制的行处,按 “yy” 进行复制;
多行复制:在命令模式下,将光标移动到将要复制的首行处,按 “nyy” 复制 n 行;其中 n 为数字。
粘贴:在命令模式下,将光标移动到将要粘贴的行处,按 “p” 进行粘贴
命令 | 功能 |
---|---|
yy | 复制当前行整行的内容到 vi 缓冲区 5yy 从当前行开始复制 5 行 |
yw | 复制当前光标到单词尾字符的内容到 vi 缓冲区 |
y$ | 复制当前光标到行尾的内容到 vi 缓冲区 |
y^ | 复制当前光标到行首的内容到 vi 缓冲区 |
p | 读取 vi 缓冲区中的内容,并粘贴到光标当前的位置(不覆盖文件已有的内容) |
# 6.vim 编辑器的查找与替换
6.1 文件内容的查找
vi 提供了几种定位查找一个指定的字符串在文件中位置的方法。同时还提供一种功能强大的全局替换功能。
为查找一个字符串,在 vi 命令模式下键入 “/”,后面跟要查找的字符串,再按回车。vi 将光标定位在该串下一次出现的地方上。键入 n 跳到该串的下一个出现处,键入 N 跳到该串的上一个出现处。
命令 | 功能 |
---|---|
/word | 从上而下在文件中查找字符串 “word” |
?word | 从下而上在文件中查找字符串 “word” |
n | 定位下一个匹配的被查找字符串 |
N | 定位上一个匹配的被查找字符串 |
6.2 文件内容的替换
命令 | 功能 |
---|---|
😒/old/new | 将当前行中查找到的第一个字符 “old” 串替换为 “new” |
😒/old/new/g | 将当前行中查找到的所有字符串 “old” 替换为 “new” |
:#,#s/old/new/g | 在行号 “#,#” 范围内替换所有的字符串 “old” 为 “new” |
:%s/old/new/g | 在整个文件范围内替换所有的字符串 “old” 为 “new” |
😒/old/new/c | 在替换命令末尾加入 c 命令,将对每个替换动作提示用户进行确认 |