vi 和 vim 命令是linux中强大的文本编辑器, 由于Linux系统一切皆文件,而配置一个服务就是在修改其
配置文件的参数。
vim 编辑器是运维工程师必须掌握的一个工具, 没有它很多工作都无法完成。
vim 其实是 vi 的升级版
2.
vim三种工作模式
Vim编辑器中设置了三种模式: 命令模式、编辑模式、末行模式,每种模式分别又支持多种不同的命令快捷键,大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手。要想高效率地操作文本,就必须先搞清这三种模式的操作区别以及模式之间的切换方法。
命令模式:vim /etc/passwd
# 进行快捷键操作
## 光标的跳转
Shift + g | G // 将光标跳转到文件最后一行
gg // 将光标跳转到文件的第一行
Ngg // 将光标跳转到指定的行(N为阿拉伯数字)
Shift + 4 | $ // 将光标跳转到当前所在行的行末
Shift + 6 | ^ | 0 // 将光标跳转到当前所在行的行首
## 复制粘贴
yy // 复制光标所在行的整行内容
p(小写p) // 将复制的内容粘贴到光标所在行的下一行
P(大写P) // 将复制的内容粘贴到光标所在行的上一行
Nyy|yNy // 将光标所在行整行内容及下面N-1行内容复制 (N为阿拉伯数字)
## 剪切删除
dd // 将光标所在行一整行内容,剪切(删除)
Ndd | dNd // 将光标所在行及下面N-1行内容剪切(N为阿拉伯数字)
Shift + d | D // 将光标所在字符及后面整行内容剪切(删除)
x // 删除当前光标所在字符
Shift + x | X // 将光标所在当前字符的前一个字符删除
d + Shift + g | dG // 将光标所在行及后面所有行内容删除
## 撤销回滚替换
u // 撤销上一次操作
Ctrl + r // 恢复上一次撤销的操作
r // 替换光标当前所在的一个字符
Shift + r | R // 从光标所在字符开始进行替换直到按ESC结束
## 翻页
Ctrl + b // 向前翻页
Ctrl + f // 向后翻页
4.编辑模式
-- INSERT --
像正常的Windows文本编辑器一样,可以随意写入内容
## 从命令模式如何进入编辑模式
i // 在光标所在位置进入编辑模式(输入内容在光标之前)
I // 将光标跳转到光标所在行的行首并进入编辑模式(输入内容在光标之前)
a // 将光标跳转到光标所在字符的后一个字符并进入编辑模式(输入内容在光标之前)
A // 将光标跳转到光标所在行的行末并进入编辑模式(输入内容在光标之前)
s // 将光标所在字符删除并进入编辑模式(输入内容在光标之前)
S // 将光标所在行的整行内容删除并进入编辑模式
o // 将光标移动到当前所在行的下一行并进入编辑模式
O // 将光标移动到光标所在行的上一行并进入编辑模式
末行模式(底行模式)
# 在编辑器的左下角进行操作
显示行号、搜索、替换、保存、退出 ...
# 进入末行模式的方法
1)在命令模式下,输入冒号
2)在命令模式下,输入/ (搜索想要的内容)
:w // 只保存但是不退出
:q // 退出但不保存 (没有改内容)
:wq // 保存退出 快捷键 Shift + zz | ZZ
:x // 保存退出 和:wq相等
:q! // 强制退出
:w! // 强制保存
:wq! // 强制保存并退出
E37: No write since last change (add ! to override) // 文件写入内容,没有保存,无法直接退出,除非强制退出
E45: 'readonly' option is set (add ! to override) // 只读文件,无法保存退出,只有root用户可以强制保存退出
E212: Unable to open and write files // 文件无法写入,没有写入权限
E212: Can't open file for writing // 文件无法写入,文件写入到一个不存在的目录中
替换
:%s #要被替换的内容#替换的内容#g
%: 所有行
s: search 搜索
g: 全局替换
光标跳转及命令
## 显示行号
:set number 简写 :set nu
## 取消显示行号
:set nonumber 简写 :set nonu
## 光标跳转到指定行
:N (N为阿拉伯数字)
## 忽略大小写
:set ic
## 取消忽略大小写
:set noic## 自动缩进
:set ai
## 取消自动缩进
:set noai
## 显示制表符,结束符...
:set list
## 取消
:set nolist