-
vi和 vim都是文本编辑器,vim是vi的升级版
-
vim会高亮显示,而vi不会
1、命令行模式
h |
光标向左移动 |
j |
光标向下移动 |
k |
光标向上移动 |
l |
光标向右移动 |
yy |
复制一行,复制10行:10yy |
p |
粘贴到光标所在的下一行,10p就是把复制的内容粘贴10次 |
P |
粘贴到光标所在的上一行 |
dd |
剪切光标所在行,100dd,剪切光标以下100行 |
d1G |
从光标所在行,删除到第一行 |
dG |
从光标所在行,删除到最后一行 |
D |
从光标处剪切到行尾,这时,p,会在光标后面粘贴 |
d$ |
同上 |
gg |
光标回到第一行行首 |
G |
光标到最后一行行首 |
$ |
移动光标到当前行尾 |
0 |
数字零,移动光标到当前行首 |
x |
删除光标所在字符,2x,从光标往后删除2个字符 |
X |
往前删 |
r |
替换光标处单个字符,r2,把光标处字符替换成2 |
R |
进入替换模式,一直替换,除非按esc,回到命令行模式 |
u |
撤消上一次操作 |
ctrl+r |
恢复上一次的撤消操作 |
. |
重复上一次操作 |
ctrl+f |
向下一页 |
ctrl+b |
向上一页 |
2、编辑模式
从命令行模式进入编辑模式的方式:
i |
在光标当前位置的前面插入字符 |
I |
光标移动当前行的行首 |
a |
光标往后退一个字符 |
A |
光标移动到行尾 |
o |
光标所在行下一行新起一行 |
O |
上一行新起一行 |
回到命令行模式,按esc键,切换到其它模式必须先回到命令模式,再切换
图形化下用鼠标复制粘贴内容,要先进入编辑模式,否则会掉东西
3、末行模式
进入vim内置的命令行接口
:help |
查看帮助 |
:wq |
保存退出,或:x |
:wq! |
强制保存退出,对一个只读文件 不过到底能不能写入,还是跟权限有关 |
:w f1 |
另存到f1这个文件 |
:q |
退出 |
:q! |
强制不保存退出 |
:set nu |
显示行号 |
:set nonu |
取消行号 |
:9 |
光标移动到第9行行首 |
:1,9d |
删除第一行到第9行 |
:1,3 > |
1到3 行缩进,默认8个空格,可定义sw定义缩进值 |
:1,$s/root/hehe/g |
从第一行到最后一行,全局把root替换成hehe l 1,$,表示第一行到最后一行,可用%替代 l s///g,替换表达式,s/查找字符/替换为的字符/修饰符
修饰符: l i,忽略大小写; l g,全局替换,默认情况下,每一行只替换第一次查找到的字符。 |
:.,$s/r\(..\)t/R\1T/g |
从当前行到最后一行中的root替换为RooT l .,$,表示当前行到最后一行 l r\(..\)t,表示查找r和t中间只有两个字符的字符 l R\1T,表示将前面查找的内容,替换为R开头,T结尾,中间字符按前面第一个\(\)查找到的内容 |
:%s/bash/s&/g |
将所有的bash,替换为sbash l &,表示前面查找到的内容 |
:%s@/bin@/sbin@g |
将全局的/bin替换为/sbin 将表达式的分隔符用@代替,因为/和要查找和替换的字符冲突 |
:%s/^[[:space:]]\+// |
将所有行前面的空白字符替换为无 |
:! ls /boot |
叹号,表示会暂时离开vim,然后去执行叹号后面的命令 |
:r /etc/passwd |
把r后面的文件,读取到当前vim编辑器 |
:r ! ls /boot |
把ls /boot命令的输出,读取到当前vim编辑器 |
/ |
往光标所在行之下搜索关键字 |
? |
往光标所在行之上搜索关键字 |
n |
下一个关键字 |
N |
上一个关键字 |
4、visual可视模式
最主要的功能:可以分区块的选中文件内容
v |
选中连续字符,然后可以用x删除,d剪切,y复制 |
V |
选中整行 |
ctrl+v |
选中区块,注意:XShell不支持 |
注意:
-
正在编辑的文件,会在文件当前目录产生一个.swp缓存文件,如果这时,意外退出vim,可通过这个缓存文件找回之前编辑的内容。
-
比如:将一个正在用vim编辑的文件,ctrl+z,将该操作放到后台;jobs,查看后台运行程序,找到刚才的命令编号;kill -9 %1,杀掉该命令,模拟意外中断
-
这时,再用vim打开该文件,会有提醒:1.有多人打开这个文件;2.这个文件上次编辑时,意外中断。
-
可以按提示,按R恢复文件,D删除缓存文件等
5、同时编辑多个文件
vim f1 f2
:files |
列出打开的所有文件 |
:n |
切换到下一个文件 |
:N |
切换到上一个文件 |
:wall |
保存所有 |
:qall |
退出所有 |
#-o,多个文件同时打开,水平分割显示
#-O,多个文件同时打开,垂直分割显示
vim -o file1 file2
-
ctrl+方向键,切换光标
vim f1
:sp |
把当前文件在一个新窗口再打开一次 |
:sp f2 |
在新窗口打开f2这个文件 |
ctrl+w+j |
ctrl+w,松开,再按j,移动光标到下一个文件 |
ctrl+w+k |
ctrl+w,松开,再按k,移动光标到上一个文件 |
6、定制vim
配置文件:
-
/etc/vimrc
-
~/.vimrc
注意:用户家目录下的.vimrc,默认没有,需要自己创建
vim ~/.vimrc
#默认开启行标
set nu
#开启括号匹配,高亮显示
set showmatch
#开启自动缩进
set ai
#开启高亮搜索
set hlsearch
#语法高亮
syntax on
#忽略大小写
set ic
#一个tab的宽度为4个空格宽度
set ts=4
#用space代替tab
set expandtab
#缩进时,使用4个空格,默认8个空格
set sw=4
实例1:配置vim,使用tab缩进,自动转换成2个空格
vim ~/.vimrc
set ai ts=2 sw=2 et