文章目录
1 vim与vi编辑器
1.1 Linux中最常用的文本编辑器
- vi:类UNIX操作系统的默认文本编辑器(只有黑白颜色)
- vim:vim是vi的升级版本,具有编辑程序的能力,会主动利用不同的字体颜色辨别语法的正确性,方便程序的设计
1.2 文本编辑器vim作用与优点
作用:
- 创建或修改文本文件
- 维护linux系统中的各种配置
优点:
- 功能齐全
- 跟linux系统融合度高
- 不需要自己安装
如果系统最小化安装vim并没有提前安装,可以使用
yum install vim -y
2 vi编辑器的三种工作模式
2.1 不同模式之间的切换
2.2 命令模式
启动vi编辑器后默认进入命令模式。此模式下可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,字符串查找,还可以对文件内容进行复制、粘贴、替换、删除等操作。
2.2.1 光标移动的基本操作
操作键 | 功能 |
---|---|
ctrl+F或者Page down | 向下翻动一整页内容 |
ctrl+B或者Page up | 向上翻动一整页内容 |
Home或"^“或数字"0” | 跳到本行的行首 |
按 End 键或$ | 跳转到本行的行尾 |
1G 或 gg | 跳转到文件的第一行包括空行 |
G | 跳转文件的末尾 |
#G | #代表行号数字,直接跳转到#行 |
M | 跳转到当前显示页面的中间行 |
2.2.2 复制、粘贴、删除的基本操作
操作键 | 功能 |
---|---|
x或delete | 删除当前光标的字符 |
dd | 删除一整行 |
#dd | 删除当前光标开始到第#行(包括当前行) |
d^ | 删除当前光标之前到行首(不包括当前光标) |
d$ | 删除当前光标到行尾 (包括当前光标) |
dw | 删除当前光标处的单词 |
R 或shift+r | 替换当前光标处文字,会进入替换模式 |
yy | 复制当前光标处整行 |
#yy | 复制当前光标处向下的#行 |
p | 粘贴到光标处下一行 |
P | 粘贴到光标处上一行 |
案例一:x或delete 删除当前光标的字符
案例二: shift+r或者shift+R 进入替换,替换当前光标处文字
2.2.3 文件内容查找
操作键 | 功能 |
---|---|
/root | 从上而下在文件中查找字符串 “word” |
?root | 从下而上在文件中查找字符串 “word” |
n | 向同一方向重复上次的查找指令 |
N | 向相反方向重复上次的查找指令 |
:nohlsearch | 取消字符标记 |
案例一:显示所有想查找的字符
案例二:取消查找字符标记
2.2.4 撤销编辑及保存退出
操作键 | 功能 |
---|---|
u | 只消除上一次可多次使用 |
U | U 取消所有操作 |
ZZ | 保存当前的文件内容并退出vi编辑器 |
2.3 输入模式
该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改或添加新的内容。处于输入模式时,vi编辑器的最后一行会出现“–INSERT–"的状态提示信息。当编辑文件完成后按 Esc 键即可返回命令模式。
切入到输入模式
快捷键 | 功能描述 |
---|---|
i | 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动 |
I | 行首插入命令 |
o | 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 |
O | 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本 |
a | 在当前光标所在位置之后插入随后输入的文本 |
A | 行尾插入命令 |
2.4 末行模式
该模式中可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vi编辑器的最后一行会出现冒号”:”提示符。
使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”(英文冒号)键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。
2.4.1 显示、取消行号的基本操作
:set nu | 在编辑器中显示行号 |
---|---|
:set nonu | 取消编辑器中的行号显示 |
案例一:显示行号(在命令模式下输入:set nu)
[root@fyr ~]# cp /etc/yum.conf ./
[root@fyr ~]# vim yum.conf
2.4.2 保存文件及退出vi编辑器
快捷键 | 功能效果 |
---|---|
:q | 退出不保存 |
:q! | 强制退出不保存 |
:w | 保存 |
:w 新文件名 | 另存为新文件: |
:wq :zz :x | 保存并退出 |
2.4.3 打开新文件或读入其他文件
快捷键 | 功能效果 |
---|---|
:e 其他文件名(如果已修改需要加e!) | 打开新文件进行编辑 |
:r 其他文件名 | 在当前文件中读入其他文件内容 |
2.4.4 文件内容替换
: [替换范围] s /旧的内容/新的内容[/g]
快捷键 | 功能效果 |
---|---|
: s /old/new/g | 替换当前行中的第一个old改为new |
: s /old/new/g | 替换当前行中的所有old改为new |
:#,# s /old/new/g | #到#行所有old改为new |
:%s /old/new/g | %代表全文 全文替换所有old改为new |
2.4.5 复制、删除的基本操作
快捷键 | 功能效果 |
---|---|
# d | 删除 第#行 |
#,# d | 删除#到#行 |
#,# y | 复制三到6 行 |
:set cul (:set nocul ) | 光标所在行有下划线(取消) |
:set ai | 对齐 回车后和上一行对齐 |
:set all 可以看所有的一些帮助 | 可以看所有的一些帮助 |
set key=password | 加密码 |
set key=空白 | 取消密码 |
set tabstop=4 (set ts=4) | tab 一次为四个空格 |
.!命令 (who,date ) | 将date命令插入当前行注意会覆盖当前行 |
注意:都是在英文状态下输入