目录
一、vi编辑器
Linux 系统中“一切皆文件”,因此当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器。
推荐使用 Vi 文本编辑器的原因有很多,比如说:
几乎所有的Linux 发行版都内嵌有 Vim 文本编辑器,而其他的编辑器则不一定存在;
Vim具有编辑程序的能力,会主动利用不同的字体颜色辨别语法的正确性,方便程序设计接口
vi与vim之间的区别
vim是vi的升级版
1、基本格式
vim [OPTION] ... ...
命令 选项 文件vim 文件名不存在 是新建
vim 文件名存在 就是修改
如果系统最小化安装vim并没有提前安装,可以使用
yum install vim -y
最小桌面//后面会介绍这个命令
2、常用选项
+# | 打开文件后,让光标处于第#行的行首,+默认行尾 |
! | 打开上一次的文件 |
+/PATTERN | 让光标处于第一个被PATTERN匹配到的行行首用不多 |
二、三种常见模式
三种常见模式:
命令或普通(Normal)模式:默认模式,可以实现移动光标,剪切/粘贴文本。
插入(Insert)或编辑模式:用于修改文本。
扩展命令(extended command )或末行模式:保存,退出等搜索替代。
**命令模式 --> 插入模式**
按键 | 功能 |
i | insert, 在光标所在处输入 |
I | 在当前光标所在行的行首输入 |
a | append, 在光标所在处后面输入 |
A | 在当前光标所在行的行尾输入 |
o | 在当前光标所在行的下方打开一个新行 |
O | 在当前光标所在行的上方打开一个新行 |
2.1 命令模式
命令模式:此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。
2.1.1 退出VIM
ZZ保存退出
ZQ不保存退出
2.1.2 光标跳转
①基础操作
按键 功能 h 左 l 右 k 上 j 下 ②单词间跳转
按键 功能 w 下一个单词的词首 e 当前或下一单词的词尾 b 当前或前一个单词的词首 ③当前页跳转:
按键 功能 H 页首 M 页中间行 L 页底 zt 将光标所在当前行移到屏幕顶端 zz 将光标所在当前行移到屏幕中间 zb 将光标所在当前行移到屏幕底端 ④行首行尾跳转:
按键 功能 ^ 跳转至行首的第一个非空白字符 0 跳转至行首 $ 跳转至行尾 ⑤行间移动:
按键 功能 G 最后一行 10G 第十行 1G/gg 第一行 ⑥命令模式翻屏操作:
按键 功能 Ctrl+f 向文件尾部翻一屏,相当于Pagedown Ctrl+b 向文件首部翻一屏,相当于Pageup Ctrl+d 向文件尾部翻半屏 Ctrl+u 向文件首部翻半屏
2.1.3 复制命令
按键 | 功能 |
y | 复制命令 |
Y | 复制整行 |
yy | 复制一行 |
10yy | 复制10行 |
2.1.4 删除命令
按键 | 功能 |
d | 删除命令,可结合光标跳转字符,实现范围删除 |
d$ | 删除到行尾 |
d^ | 删除到非空行首 |
d0 | 删除到行首 |
dw | 下一个单词的词首 |
dd | 剪切光标所在的行 |
x | 剪切光标处的字符 |
J(大写) | 删除当前行后的换行符 |
2.1.5 字符大小写
按键 | 功能 |
~ | 转换大小写 |
2.1.6 交换字符位置
按键 | 功能 |
xp | 交换光标所在处的字符及其后面字符的位置 |
2.1.7 粘贴命令
按键 | 功能 |
p | 粘贴到下一行 |
2.2 输入模式
输入模式: 使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令,当编辑文件完成后按 Esc 键即可返回命令模式。
2.2.1 切入输入模式
按键 | 功能 |
i | 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动 |
I | 行首插入命令 |
o | 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 |
O | 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本 |
a | 在当前光标所在位置之后插入随后输入的文本 |
A | 行尾插入命令 |
2.3 末行模式
末行模式:文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”(英文冒号)键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。
2.3.1 保存与退出
按键 | 功能 |
w | 保存 |
q | 退出 |
wq | 保存并退出 |
! | 强制 |
wq! | 强制保存退出 |
2.3.2 查找并替换
格式:
范围 s/要查找的内容/替换的内容/修饰符
- 范围:
. 当前行 1,10 1-10行 $ 最后一行 % 全文 $-1 倒数第二行 - s:search查找
^ 开头 $ 结尾 ^$ 空行 替换的内容:要明确
修饰符
g 整行修改 i 忽略大小写 c 询问是否要修改