vi与vim 的区别与常用指令详解
Linux哲学:一切皆文件
vi和vim的区别
vi:文本编辑器
vim:程序编辑器
其实vi和vim的功能上区别不是很大,由于vim在编写过程中可以利用色纠错的功能,所以被官方定位成了程序编辑器。
三种模式的切换
在模式的名字上有不同,区别不大,没有必要深究。
命令模式:光标在文本中,不能随意编写文本,但可以用命令修改文本。
编辑模式:可以随意修改文本。
低行模式:对文件进行特殊的操作。
命令模式快捷键
-
快速移动光标位置
shift+g/ 大写字母G — 快速移动光标到最后一行
gg — 快速移动光标到首行
200gg/300G — 快速移动光标到指定行
shift+6 ^ — 快速移动光标到一行的行首 End 0
shift+4 $ — 快速移动光标到一行的行尾 Home -
特殊操作技巧
u — 撤回操作 undo
ctrl+r — 取消撤回 redo -
快速编辑文件内容方法
yy — 进行一行内容快速复制
3yy — 进行三行内容快速复制
p — 粘贴复制的内容
3p — 粘贴三次复制的内容
dd — 删除(剪切)光标所在行内容
3dd — 删除(剪切)三行内容
dG — 将光标以下所有行内容都删除(剪切)
编辑模式快捷键
i --- 在光标所处位置进入编辑状态
I --- 将光标移动到行首进入编辑状态
o --- 在当前行下面新起一行进入编辑状态
O --- 在当前行上面新起一行进入编辑状态
a --- 在光标当前位置下一个字符进入编辑状态
A --- 将光标切换到一行行尾进入编辑状态
s --- 将光标所在文件字符删除并进入编辑状态
S --- 将光标所在位置整行删除并进入编辑状态
r --- 将光标所在位置字符进行单个替换
R --- 将光标所在位置字符进入连续替换
底行模式:
:wq --- 保存退出
:w --- 保存
:q --- 直接退出
:wq! --- 强制保存退出
:w --- 保存
:q! --- 强制直接退出
:set nu --- 显示文件行号信息
:set nonu --- 取消行号显示
:%s###g --- 文件所有内容做替换
:s###g --- 将光标所在行内容进行替换
:2s###g --- 将第2行进行替换修改
:2,4s###g --- 将第2行到第4行进行替换修改
:2,$s###g --- 将第2行到结尾最后一行进行替换修改
:2,$s### --- 将一行中第一个匹配的信息做替换
:1,3copy3 --- 将连续多行内容进行复制操作
:1,3move3 --- 将连续多行内容进行剪切操作
:set ic --- 设置过滤数据时, 忽略大小写进行过滤
:set ignorecase --- 设置过滤数据时, 忽略大小写进行过滤
/信息 --- 文件中过滤指定内容(头部开始查找) n 继续向下查找 N 继续向上查找
/oldgirl\c --- 忽略大小写
?信息 --- 文件中过滤指定内容(尾部开始查找) n 继续向上查找 N 继续向下查找
没必要都记下来,记一部分常用的就行。