全屏文本编辑器
vi:Visual Interface,Bill Joy,S.U.N sparc SUNOS(Solaris)
vim: VI iMproved
模式化编辑器:
编辑模式(命令模式)-->默认的工作模式
末行模式
插入模式(输入模式)
替换模式
可视化模式
一、vi/vim的打开方式:
1.vi/vim:打开vi/vim的界面
2.vim file:file存在,则打开并将光标默认放置在第一行第一个字符;
file不存在,则以新文件的方式打开,若保存,则文件被创建;若不保存,文件消失;
3.vim +# file:指定在打开文件的时候,将光标定位在第#行行首;如果定位的行数比整个文档的行还要大,则光标停留在最后一行的行首;
4.vim + file:直接将光标定位在文档的最后一行行首;
5.vim +/PATTERN/:打开文件,并且将光标定位至首次被PATTERN匹配的行的行首位置;即只完成首次匹配。
二、vim的关闭方式:
末行模式的关闭:
:q 直接关闭vim编辑器,不保存修改内容;
:q! 强制退出但不予保存;
:w 保存修改的内容;
:wq 保存修改的内容并关闭vim编辑器;
:wq! 对于root用户来说,一些只读文件的修改可以强制保存并退出;
:w! 强制保存
编辑模式的关闭:
ZZ:保存并退出;
ZQ:不保存退出;
三、在vim的编辑模式中,移动光标:
1.逐字符移动
1)ARROW
2)h:光标向左;
j:光标向下;
k:光标向上;
l:光标向右;
2.逐字移动
w:移动到下一个字的字首;
e:移动到下一个字的字尾;
b:移动到上一个字的字首;
3.行内跳转:
0:绝对行首;
^:相对行首;
$:绝对行尾;
4.行间跳转:
#G:直接将光标移动至第#行;
G:直接将光标移动至文档的最后一行;
gg:直接将光标移动至第一行;
末行模式中光标移动:
:# 直接将光标移动至第#行;
:1 直接将光标移动至第一行;
:$ 直接将光标移动至文档的最后一行;
四、翻屏
Ctrl+f:向下翻一屏
Ctrl+b:向上翻一屏
Ctrl+d:向下翻半屏
Ctrl+u:向上翻半屏
五、逐字符删除:
x:删除光标所在位置的单个字符;
X:删除光标所在位置左侧的单个字符;
六、编辑模式中的万能删除命令;
d:删除光标经过的所有内容;
dh、dj、dk、dl、dARROW、dw、de、db、dG、dgg
dd:删除光标所在行;
在末行模式下:
:d:删除光标所在行
:#d:删除第#行
:m,+nd:删除从第m行开始,再经过n行的所有行;
:m,nd:删除从第m行开始到第n行结束的所有行;
:.,$d:删除从光标所在行到文档的最后一行;
.:表示当前光标所在行;
$:文档的最后一行
七、编辑模式中的万能粘贴命令:
p(lower):向右向下进行粘贴;
P(upper):向左向上进行粘贴;
末行模式下:
p
八、编辑模式中的万能复制命令:
y:复制光标经过的所有内容;
用法与d命令相同。
yy:复制光标所在行;
九:模式的切换:
1.从编辑模式到末行模式:
: 输入命令
/和? 进行查找,n和N,n表示顺序查找,N表示逆序查找;
/:自上而下
?:自下而上
2.从末行模式到编辑模式:
ESC键
Enter键
Backspace键
3.从编辑模式到输入模式:
I:将光标移动至行首并进入输入模式;
i:在光标所在位置的前面插入字符;
A:将光标移动至行尾并进入输入模式;
a:在光标所在位置的后面插入字符;
O:在光标所在行的上面插入新行;
o:在光标所在行的下面插入新行;
cc:删除整行内容之后,进入输入模式;
C:从光标所在位置删除至行尾,进入输入模式;
s:删除光标所在位置的一个字符,进入输入模式;
S:删除整行内容之后,进入输入模式;
4.从输入模式到编辑模式:
5.从编辑模式到替换模式:
R:进入替换模式
6.从替换模式到编辑模式:
7.从编辑模式到可视化模式:
v:按照字符为单位进行矩形选取;
V:按照行为单位进行矩形选取;
在选择之后可以执行复制或删除的操作;
只要完成操作,就返回到编辑模式;
注意:所有的模式切换必须经由编辑模式,两种非编辑模式之间无法直接进行切换;
十、替换命令
r:替换光标所在位置的一个字符;
十一、撤销编辑操作:
u:撤销一次此前的编辑操作;
Ctrl+r:撤销最近的一次撤销操作;
十二、重复之前的一次编辑操作:
.
十三、特殊的末行命令:
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 on
:syntax off
十四、vimtutor
回顾:
touch、nano、cat、tac、head、tail、more、less、cp、mv
vi编辑器
十五、使用vim编辑多个文件
1) vim FILE1 FILE2 FILE3 ...
:next 查看或编辑后一个文档的内容
:prev 查看或编辑前一个文档的内容
:first 查看或编辑第一个文档的内容
:last 查看或编辑最后一个文档的内容
2) vim -o|-O FILE1 FILE2 FILE3 ...
-o:水平分屏显示多个文件
-O:垂直分屏显示多个文件
Ctrl+w, ARROW
#Ctrl+w, ARROW
Ctrl+w, s 将一个文件水平分屏显示
Ctrl+w, v 将一个文件垂直分屏显示
:qa
:wa
十六、将其他文件中的内容填充至当前文件中
:r /PATH/TO/SOMEFILE
十七、跟shell交互
:!COMMAND
十八、部分另存为
:w /PATH/TO/SOMEFILE
:m,nw /PATH/TO/SOMEFILE
:m,+nw
:.,$w