vim/vi是unix/linux下极为广泛的一种文本编辑器, 大部分机器上都有 vi , 在不一样的机器上经常使用不一样的变种软件 其中 vim 比较好用也用得比较普遍 vim 是 Vi IMproved 的缩写, 表示更好的 vi 本文就说些其中比较有用, 比较经常使用的命令, 若能熟练运用这些命令, 那么会发现编辑文件很大帮助,尤为是作开发的人员,能快速的提升开发效率。linux
全屏文本编辑器:shell
vi:Visual Interfacevim
vim:VI iMproved编辑器
它是一种模式化编辑器:有不少工做模式,主要用到其三:ide
1.编辑模式(命令模式)--> 默认的工做模式学习
2.末行模式spa
3.插入模式(输入模式)unix
(另外还有替换模式、可视化模式)blog
下面介绍一下vim的基本操做:开发
1、打开(文件)方式:
1.vi/vim:直接打开界面,如图
2.vim FILE: FILE存在时,打开并将光标默认放置在第一行第一个字符;FLIE不存在,则以新 文件的方式打开,若保存,文件被建立,不保存文件消失;
3.vim +# FILE 打开文件的时候光标在第#行;
4.vim + FILE :光标定位在最后一行;
5.vim +/PATTERN/:打开文件,将光标定位在首次被PATTERN匹配的行的行首位置;即只完成首 次匹配。
2、关闭方式:
末行模式的关闭:
:q 直接关闭不保存改变的内容;
:wq 保存并退出;
:w 保存修改的内容
:q! 强制退出
:wq! 对于root来讲,一些只读文件的修改能够强制保存退出;
编辑模式的关闭;
ZZ:保存并退出;
ZQ:不保存退出;
3、在vim编辑模式中,移动光标;
1.逐字符移动:
1).ARROW
2).hjkl:左下上右
2.逐字移动:
w:移动到下一个字的字首;
e:移动到字尾
b:移动到上一个字的字首;
3.行内跳转;
0:绝对行首;
^:相对行首;
$:绝对行尾;
4.行间跳转:
#G:直接移动至第#行;
G:直接移动至文档的最后一行;
gg:第一行第一个字符;
末行模式光标的移动
:#直接移动至第#行
:$最后一行
4、翻页/翻屏:
Ctrl+f:向下翻一屏
Ctrl+b:上翻一屏
Ctrl+d:下半屏
Ctrl+u:上半屏
5、逐字符删除:
x:删除光标所在位置的字符;
X:删除光标所在位置左侧的单个字符;
6、编辑模式中的万能删除命令;
d:删除光标通过的全部内容;例如dG:删除了所在行到最后一行的全部内容;
dd:删除光标所在行,前能够加#,表示删除共#行;
末行模式下:
:d
:#d
:m,nd(从第m到第n行删除)
:.,$(当前行.到末尾行$删除)
:m,+nd(从m开始再删除n行)
7、编辑模式中的粘贴命令;
p:向右向下进行粘贴;
P:向左向上进行粘贴;
8、编辑模式中的复制命令:
y:相似d;复制光标所通过的全部内容;
9、模式的切换;
1.编辑模式到末行模式:
:输入命令
/和 ?:进行查找,n和N,顺序和逆序查找;
/:自上而下
?:自下而上
2.末行模式到编辑模式:
ESC键
Enter键
Backspace键
3.编辑模式到输入模式:
I:Insert 至行首并进入输入模式;
i:insert 光标所在位置前面插入信息;
A:apend;光标移动至行尾并进入输入模式;
a:在光标所在位置的后面插入字符;
O:Otherline光标所在行的上面插入新行
o: 下面插入新行;
cc:删除整行内容以后进入输入模式;
C: 从光标所在位置删除至行尾进入输入模式;
s:删除光标后的一个字符,进入输入模式;
S:删除整行进入输入模式;
4.输入模式到编辑模式:
ESC键
5.编辑模式到替换模式:
R:进入
6.替换模式到编辑模式:
ESC键
7.编辑模式到可视化模式;
v:按照字符为单位进行矩形选取;
V:按照行为单位进行矩形选取;
选取后可执行复制删除操做;
完成操做后返回到编辑模式;
注意:全部模式切换必须经由编辑模式,两种非编辑模式之间没法直接切换;
10、替换命令;
r:替换光标所在位置的一个字符;
11、 撤销编辑操做
u:撤销一次此前的编辑操做
Ctrl+r:撤销最近的一次撤销操做
12、重复以前的一次编辑操做;
.
十3、特殊的末行命令:
1.显示和取消行编号:
:set number-->set nu
:set nonumber-->set nonu
2.开启或者关闭字符大小写的区分;
:set ignorecase-->set ic
:set noignorecase-->set noic
3.开启或关闭自动缩进功能:
:set autoindent--set ai
:set noautoindent--set noai
4.开启或关闭查找高亮显示:
:set hlsearch 无简写
:set nohlsearch--nohl
5.开启和关闭语法着色:
:syntax off
:syntax on
十4、内容替换
查找替换
/pattern 向后搜索字符串pattern
?pattern 向前搜索字符串pattern
n 下一个匹配(若是是/搜索,则是向下的下一个,?搜索则是向上的下一个)
N 上一个匹配(同上)
:%s/old/new/g 搜索整个文件,将全部的old替换为new
:%s/old/new/gc 搜索整个文件,将全部的old替换为new,每次都要你确认是否替换
十六:使用vim编辑多个文件:
1.直接打开:vim FILE1 FILE2 FILE3 ...
:next 查看编辑后一个文档的内容
:prev 查看编辑前一个文档
:first 查看编辑第一个文档
:last 查看编辑最后一个文档
2.vim -o|-O FILE1 FILE2 ...
选项:
-o:水平
-O:垂直
光标在窗口间的切换: Ctrl+w,ARROW;#Ctrl+w,Arrow
Ctrl+w,s:水平分屏显示;
Ctrl+w,v:垂直分屏显示;
:wa 保存all
:qa 退出all
十七:将其余文件的内容填充至当前文件中
末行模式下 :r /PATH/TO/SOMEFILE
十八:与shell交互
:! COMMAND
十九:部分另存为
:w /PATH/TO/SOMEFILE 所有另存为;
:m,nw /PATH/TO/SOMEFILE 从m到n行另存为;
:.,$w /PATH/TO/SOMEFILE 光标所在行到末尾另存为;
vim还有不少命令,这些命令均可以经过“vimtutor”这一命令得到帮助文档,来帮助学习;