简介:
Vim是Unix及类Unix系统文本编辑器。
Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。它使用控制台图形模式来模拟文本编辑窗口,允许查看文件中的行、在文件中移动、插入、编辑和替换文本。
在GNU项目将vi编辑器移植到开源世界时,他们决定对其作一些改进。由于它不再是以前Unix中的那个原始的vi编辑器了,开发人员也就将他重命名为vi improved, 或vim。
一、vi和vim的区别:
1.多级撤销
在vi编辑器中按u只能撤销上一次操作,vim可以无限制的多次撤销
2.易用性
vi编辑器只能运行于unix中,而vim不仅可以运行于unix,还可用于mac、windows等多操作平台。
3.语法高亮
使用vim编辑文本时,会用不通的颜色加亮你的代码,还能够给你提示部分的语法错误。
4.可视化操作
就是说vim不仅可以在终端运行,也可以运行于x window、 mac os、 windows。
5.完全兼容vi
vim在使用过程中基本可以替代vi来使用。
二、vim的四种模式
1.命令模式
在命令模式下,可以通过上下左右移动光标的位置,可以对文章的行进行进行删除、复制、粘贴或者删除某个字符、字符串等。
2.编辑模式
在编辑模式下,可以对文章内容进行修改和删除等操作,比如使用i、a、o等。
3.末行模式
可以在末行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等等)。
4.视图模式(扩展)
批量操作,可视行,可视块的操作。比如给多行内容加上注释或者选中多行。
三、各模式下的命令
1.命令模式
h #向左移动一个字符
l #向右边移动一个字符
j #向下移动一个字符
k #将光标向上移动一个字符
^ #把光标移至行首
$ #把光标移至行尾
w #把光标向右移动一组字符,光标位于字符串的左边,以空白和特殊字符为分割
e #把光标向右移动一组字符,光标位于字符串的左边,以空白和特殊字符为分割
W #把光标向右移动一组字符,光标位于字符串的左边,以空白字符为分割
E #把光标向右移动一组字符,光标位于字符串的左边,以空白字符为分割
gg #把光标移到第一行
G #把光标移到最后一行
ngg/nG #跳转到指定的行,n为数字
dd #删除或剪切当前的行
ndd #删除或剪切从当前行到下面的n行
p #在当前行的下方粘贴剪切板上的内容
P #在当前行的上方粘贴剪切板上的内容
yy #复制当前光标所在的一行
nyy #复制当前光标所在行至下面的n行
de #删除一组字符,以空白字符或特殊字符为分隔符
dw #删除一组字符,以空白字符或特殊字符为分隔符,会把分隔符当做一组字符
r #替换光标所在的单个字符
R #替换从光标开始向后的多个字符
delete/x #删除光标后的字符
X #删除光标前的字符
~ #把光标所在的小写字母改成大写
Shift键 + 方向键 #向左或者向右移动一组字符,以特殊字符或空白符为分隔符
Ctrl键 + 方向键 #向左或者向右移动一组字符,以空白字符为分隔符
2.编辑模式
Esc键 #退出编辑模式,进入到命令模式
i #在当前光标前插入内容
a #在当前光标后插入内容
I #光标快速的移动到行首,并进入编辑模式,在当前光标前插入内容
A #光标快速的移动到行尾,并进入编辑模式,在当前光标后插入内容
ce #删除一组字符并进入编辑模式,以空白字符或特殊字符为分隔符
cw #删除一组字符并进入编辑模式,以空白字符或特殊字符为分隔符,会把分隔符当做一组字符删除
C #删除光标后的所有内容(针对行操作),并进入编辑模式
cc #删除光标所在的一整行,并进入编辑模式
S #删除光标所在的一整行,并进入编辑模式
s #删除光标所在一个字符,并进入编辑模式
o #在光标所在行的下一行添加空白行,并进入编辑模式
O #在光标所在行的上一行添加空白行,并进入编辑模式
3. 末行模式
退出保存
:q #退出不保存
:wq #保存退出
:q! #强制退出
:wq! #强制保存退出
:w #保存不退出
:x #保存退出
光标操作
:n #跳转到n行
:nd #删除第n行
:n,md #删除n-m行
搜索内容
/root #向下搜索root这个字符串
n #向下查找
N #向上查找
?root #向上搜索root这个字符串
/root\c #不区分大小写,搜索root
替换
:%S#root#admin#g
:1s#root#oldboy#g #替换指定行的匹配的字符串
:1,10s#root#oldboy#g #替换第一行到第十行所有匹配的字符串
:%s#root#oldboy#gi #替换的时候忽略大小写
:s#root#oldboy# #替换第一个匹配的字符串
:%s#root#oldboy# #替换每一行第一个匹配的字符串
读取其他文件和保存内容到新文件
:w /path #写入到新的文件
:r /path #读取文件写入到光标所在行的下面
:1r /path #读取文件写入到第一行的下面
:$r /path #读取文件写入到最后一行的下面
:0r /path #读取文件写入到第一行上面
:1 copy 10 #将第一行复制到第十行下面
:1,5 copy 10 #将第一行到第五行复制到第十行下面
:1 move 10 #将第一行移动到第十行下面
:sh #进入命令行进行操作,返回使用exit或Ctrl + d
4.视图模式
可视行
将光标移到要操作的行
V #进入可视行模式
通过控制光标选中你要选中的行,进行操作
x/d #删除选中的行
y #复制选中的行
可以结合命令模式用法使用
比如你想选中当前行到80行,80G/80gg即可直接跳转到80行。
可视块
#批量添加
将光标移动到要操作的行,并且是要操作的字符上面
Ctrl+v #进入可视块模式
使用方向键进行选中要操作的行
I #进入编辑模式
编辑内容 按esc退出
#批量删除
将光标移动到要操作的行,并且是要操作的字符上面
Ctrl+v #进入可视块模式
使用方向键进行选中要操作的行
d/x #进入编辑模式