1、简介程序员
1.vi:Visual Interface,是一种文本编辑器,所谓文本数据是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。
正则表达式
2.Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被普遍使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。编程
3.Vim的第一个版本由布莱姆·米勒在1991年发布。最初的简称是ViIMitation,随着功能的不断增长,正式名称改为了Vi IMproved。如今是在开放源代码方式下发行的自由软件。vim
2、文本编辑器的种类编辑器
1.行编辑器:所谓行编辑器是指一行一行来编辑处理的工具,如sed。
ide
2.全屏编辑器:编辑空间占据整个屏幕,如nano,vi。
工具
3、vim的使用编码
1.打开文件
spa
2.语法:vim [OPTION]... [FILE]...
开放源代码
3.vim有如下几种打开方式:
①vim +#(后接数字):打开文件后,直接让光标处于第#行的行首;例如:vim +3 /etc/passed;
②vim +/PATTERN(正则表达式):打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首;例如:vim +/^U /etc/fstab;
③vim + file:直接打开file,光标在最后一行;例如:vim + /etc/fstab;
④vim -b file:二进制方式打开文件;例如:vim -b /bin/cat;
⑤vim -d file1 file2...:比较多个文件
⑥vim -m file:只读方式打开文件;例如:vim -m /etc/fstab;
4.若是该文件存在,文件被打开并显示内容;若是该文件不存在,当编辑后第一次存盘时建立它;
4、vim是一个模式编辑器
1.vim三种主要模式:
命令模式(默认):移动光标,剪切/粘贴文本;
插入模式(编辑):修改文本;
扩展命令模式:保存,退出等;
2.Esc键:能够从插入模式转换到命令模式
5、模式转换
1.从命令模式----->插入模式,可以使用如下命令:
i:在当前光标所在处前面输入;
I:在当前光标所在行的行首输入;
a:在当前光标所在处后面输入;
A:在当前光标所在行的行尾输入;
o:在当前光标所在行的下方打开一个新行;
O:在当前光标所在行的上方打开一个新行;
2.从插入模式----->命令模式:Esc键;
3.命令模式----->扩展模式:直接输入冒号(:)便可在窗口左下方显示冒号;
4.从扩展模式---->命令模式:Esc键;
5.锁定和解锁:ctrl+s,ctrl+q;
6、退出文件
1.扩展模式:
:q 退出;
:q! 不保存退出;
:wq 保存退出;
:x 保存退出;
:wq! 强制保存退出;
2.命令模式
ZZ:保存退出;
ZQ:不保存退出;
7、扩展模式
1.按冒号(:)进入扩展模式:
r filename:读文件内容到当前文件中;例如 :r /etc/issue;
w filename:将当前文件内容写入另外一个文件;例如:w /testdir/f1;
!command:执行命令;例如:!ls;
r!command:读入命令的输出;例如:r!ls /root;
8、命令模式光标跳转
1.字符间跳转:
h:左
l:右
K:上
j:下
#command:跳转由#指定的个数的字符;例如:#h,#k;
2.单词间跳转:
w:下一个单词的词首;
e:当前单词或下一个单词的词尾;
b:当前单词或前一个单词词首;
#command:由#指定一次跳转的单词数;例如:3w,3e;
3.当前页跳转:
H:页首;
M:页中间行;
L:页底;
4.行首行尾跳转:
^:跳转至行首的第一个非空白字符;
0:跳转至行首;
$:跳转至行尾;
5.行间移动:
#G:直接跳转至第#行;
G:最后一行;
1G,gg:第一行;
6.句子间移动:
):下一句;
(:上一句;
7.段落间移动:
}:下一段;
{:上一段;
9、命令模式翻屏操做
ctrl+f:向文件尾部翻一屏;
ctrl+b:向文件首部翻一屏;
ctrl+d:向文件尾部翻半屏;
ctrl+u:向文件首部翻半屏;
10、命令模式操做
1.字符编辑:
x:删除光标处字符;
#x:删除光标处起始的#个字符;
xp:交换光标所在处的字符及其后面字符的位置;
~:转换大小写;
2.替换命令:
r:替换光标所在处字符;
R:切换成REPLACE模式;
3.删除命令:
d:删除命令,可结合光标跳转字符,实现范围删除;
d$:删除到行尾;
d^:删除到非空行首;
d0:删除到行首;
dw:删除到下一个单词的词首;
de:删除到当前单词或下一单词的词尾;
db:删除到当前单词或前一单词的词首;
#command:删除多个单词;
dd:删除光标所在的行;
#dd:多行删除;
D:从当前光标位置一直删除到行尾,留空行,等同于d$;
4.复制命令:
y:复制,可结合光标跳转字符,实现范围复制;
y$:复制到行尾;
y0:复制到行首;
y^:复制到非空行首;
ye:复制到当前单词或下一单词的词尾;
yw:复制到下一个单词的词首;
yb:复制到当前单词或前一单词的词首;
#command:复制多个单词;
yy:复制行;
#yy:复制多行;
Y:复制整行;
5.粘贴命令:
p:缓冲区存的若是为整行,则粘贴当前光标所在行的下方;不然,则粘贴至当前光标所在处的后面;
P:缓冲区存的若是为整行,则粘贴当前光标所在行的上方;不然,则粘贴至当前光标所在处的前面;
6.改变命令:
c:修改,可结合光标跳转字符,实现范围修改;所谓修改就是先删除,再转换为插入模式;
c$:删除到行尾;
c^:删除到非空行首;
c0:删除到行首;
cb:删除到当前单词或前一单词的词首;
ce:删除到当前单词或下一单词的词尾;
cw:删除到下一个单词的词首;
#command:删除多个单词
cc:删除当前行并输入新内容;
#cc:删除多行
C:删除当前光标到行尾,并切换成插入模式
7.100iwu [Esc]:含义是粘贴“wu”100次;
8.语法:<start position> <command> <end position>
Command:
y:复制
d:删除
gU:变大写
gu:变小写
例如:0y$命令含义是:
0:跳到行首
y:从这里开始复制
$:复制到本行最后一个字符
11、扩展模式
1.地址定界
:start_pos,end_pos
#:具体第#行,例如2表示第2行;
#,#:从左侧#表示行起始,到右侧#表示行结尾;
#,+#: 从左侧#表示的行起始,加上右侧#表示的行数;例如:2,+3表示2到5行;
.:当前行;
$:最后一行;
.,$-1:当前行到倒数第二行;
%:全文,至关于1,$;
/pat1/,/pat2/:从第一次被pat1模式匹配到的行开始,一直到第一次被 pat2匹配到的行结束;
#,/pat/:
/pat/,$:
使用方式:后跟一个编辑命令:
d:删除
y:复制
w file:将范围内的行另存至指定文件中;
r file: 在指定位置插入指定文件中的全部内容;
2.查找:
/PATTERN:从当前光标所在处向文件尾部查找;
?PATTERN:从当前光标所在处向文件首部查找;
n:与命令同方向;
N:与命令反方向;
3.查找并替换:
s:在扩展模式下完成查找替换操做;
格式:s/要查找的内容/替换为的内容/修饰符;
要查找的内容:可以使用模式;
替换为的内容:不能使用模式,但可使用\1, \2, ... 等后向引用符号;还可使用“&”引用前面查找时查找到的整个内容;
修饰符:;
i: 忽略大小写
g: 全局替换;默认状况下,每一行只替换第一次出现;
gc:全局替换,每次替换前询问;
注:查找替换中的分隔符/可替换为其它字符,例如:
s@/etc@/var@g;
s#/boot#/#i;
12、命令模式
1.撤销更改:
u:撤销最近的更改;
#u:撤销以前屡次更改;
U:撤消光标落在这行后全部此行的更改;
ctrl+r:重作最后的“撤消”更改 ;
.:重复前一个操做;
n.:重复前一个操做n次;
十3、vim的寄存器
1.有26个命名寄存器和1个无命名寄存器,常存放不一样的 剪贴版内容,能够不一样会话间共享。
2.用a,b,…,z表示,用“寄存器表示,放在数字和命令之间;
如:3"tyy 表示复制3行到t寄存器中 ;
"tp 表示将t寄存器内容粘贴;
3.未指定,将使用无命名寄存器;
4.有10个数字寄存器,用0,1,…,9表示,0存放最近复制内容,1存放最近删除内容。当新的文本变动和删除时,1转存到2,2转存到3,以此类推。数字寄存器不能在不一样会话间共享。
十4、vim编辑二进制文件
步骤:
1.以二进制方式打开文件:
vim -b binaryfile
2.扩展命令模式下,利用xxd命令转换为可读的十六进制:
:%!xxd
3.编辑二进制文件;
4.扩展命令模式下,利用xxd命令转换回二进制:
:%!xxd –r
5.保存退出;
十5、可视化模式
1.容许选择的文本块:
v:面向字符;
V:面向行;
ctrl+v:面向块;
2.可视化键可用于与移动键结合使用:
w, ) , } ,箭头等;
3.突出显示的文字能够被删除,复制,变动,过滤,搜索/替换等;
十6、多文件模式
1.格式:vim file1 file2 file3 ...
:next 下一个文件;
:prev 前一个文件;
:first 第一个文件;
:last 最后一个文件;
:wall 保存全部;
:qwall 退出全部;
:wqall 保存全部文件并退出;
十7、使用多个窗口
1.多文件分割:
格式:vim -o|-O FILE1 FILE2 ...
-o:水平分割;
-O:竖直分割;
在窗口间切换:ctrl+w,arrow(上下左右方向键)
2.单文件窗口分割:
ctrl+w,s: split,水平分割;
ctrl+w,v: vertical,垂直分割;
ctrl+w,q:取消相邻窗口;
ctrl+w,o:取消所有窗口;
:wqall 退出;
十8、定制vim的工做特性
1.配置文件:
全局:/etc/vimrc
我的:~/.vimrc
2.扩展模式:只对当前vim进程有效:
(1)行号
显示:set nu;
取消显示:set nonu;
(2)括号成对匹配
匹配:set sm;
取消:set nosm;
(3)自动缩进
启用:set ai;
禁用:set noai;
(4)高亮搜索
启用:set hlsearch;
禁用:set nohlsearch;
(5)语法高亮
启用:syntax on;
禁用:syntax off;
(6)忽略字符大小写
启用:set ic;
禁用:ser noic;
(7)文件格式
启用Windows格式:set fileformat=dos;
启用Unix格式:set fileformat=unix;
(8)设置文本宽度
:set textwidth=65
:set wrapmargin=15
3.vim内置帮助
(1):help
(2)Use :q to exit help
4.vimtutor(使用手册)