全屏文件编辑器
vi:visual interface, Bill Joy, S.U.N SUNOS(Solaris) VI可视化接口
vim:VI improved
格式化编辑器:
编辑模式(命令模式)-----》默认的工作模式
末行模式
插入模式(输入模式)
可视化模式
一、vi/vim的打开方式:
1、 vi/vim:打开 vi/vim的界面
2、 vi file:file存在,则打开并将光标默认放置在第一行第一个字符;file不存在,则以新文件的方式打开,若保存,则文件被创建,若不保存,文件消失
3、 vi +# file:指定在打开文件的时候,将光标定位在第#行行首,如果定位的行数比整个文档的行数还要大,则光标停留在最后一行的行首
4、 vi + file:直接将光标定位在最后一行的行首
5、 vi +/PATTERN/:打开文件,并将光标定位至首次被PATTERN匹配的行的行首位置;即只完成首次匹配
Vim +/patttern/ 例如:pattern +c(c开头的)
例如:# vi +5 pick.sh
# vi + pick.sh
二、vim的关闭方式
末行模式的关闭:
:q 直接关闭vim编辑器,不保存修改内容
:q! 强制退出但不予保存
:w 保存修改的内容
:wq 保存修改的内容并关闭vim编辑器
:wq! 对root用户来说,一些只读文件的修改可以强制保存并退出
:w! 强制保存
编辑器模式的关闭:
ZZ:保存并退出
ZQ:不保存退出
ZZ\ZQ要用shift
5h向左移5个
字:遇到空格等算一个字
只有绝对行尾,没有相对行尾
三、在vim的编辑模式中,移动光标
1、逐字符移动:
(1)、ARROW
(2)、h:光标向左
J:光标向下
k:光标向上
l:光标向右
2、逐字移动:
w:移动到下一个字的字首
e:移动到下一个字的字尾
b:移动至上一个字的字首
3、行内跳转:
0:绝对行首
^:相对行首
$: 绝对行尾
4、行间跳转:
#G直接将光标移动至第#行
G:直接将光标移动至文档的最后一行
gg:直接将光标移动至第一行 gg和0一样,都是跳转至第一行第一个字符
末行模式中的光标移动:
:# 直接将光标移动至第#行
:1 直接将光标移动至第一行
:$ 直接将光标移动至文档的最后一行
四、翻屏
Ctrl+f:向下翻一屏
Ctrl+b:向上翻一屏
Ctrl+d:向下翻半屏
Ctrl+u:向上翻半屏
五、逐字符删除:
x: 删除光标所在位置的单个字符 x:相当与delete
X: 删除光标所在位置左侧的单个字符 X:相当于backspace
3x 3X
六、编辑模式中的万能删除命令:
d: 删除光标经过的所有内容
dh、dj、dk、dl、dARROW、dw、de、db、dG、dgg 光标移动的前面都可以加d
dd: 删除光标所在行 dd 光标在中间的情况可以删除一行
在末行模式下:Vim中冒号一定不能省略
:d 删除光标所在行
:# 删除第#行
:m,+nd 删除从m行开始,再经过n行的所有行
:m,nd 删除从第m行开始到第n行结束的所有行
:.,$d:删除从光标所在行到最后一行
.:表示当前光标所在行 .:光标所在行,当前行(点)
$:文档的最后一行
.,$:从光标所在行到文档最后一行
m, +n:从当前光标所在行开始,在经过n行
例::4,8d :4,+4d
七、编辑模式中的万能粘贴命令:
p: 向右向下进行粘贴
P:(大写)向左向上进行粘贴
末行模式下:
粘贴:小p:向右向下
大P:向左向上
例如:10p
八、编辑模式中的万能复制命令
y: 复制光标经过的所有内容
用法与d命令相同
yy:复制光标所在行
九、模式的切换
1、从编辑器模式到末行模式: 切换:要配合n和N
:输入命令
/和? 进行查找
n和N n表示顺序查找,N表示逆序查找
/:自上而下
?:自下而上
2、从末行模式到编辑模式:
I:将光标移动至行首并进入输入模式
i: 在光标位置的前面插入字符
A:将光标移动至行尾并进入输入模式
a: 在光标所在位置的后面插入字符
O: 在光标所在行上面插入行
o: 在光标所在行下面插入行
cc: 删除整行内容后,进入输入模式
C:从光标所在位置删除至行尾,并进入输入模式
s: 删除光标所在位置的一个字符,进入输入模式
S: 删除整行内容后,进入输入模式 大S相当于cc
3、从输入模式到编辑模式:
ESC键
4、从编辑模式到替换模式:
R:进入替换模式
5、从替换模式到编辑模式:
ESC键
6、从输入模式到可视化模式: 可视化:用键盘当鼠标用
v: 可以按照字符为单位进行矩形选取
V:按照行尾单位进行矩形选取
在选择完成之后可以进行复制或删除操作
只要完成操作,就返回编辑模式
注意:所在的模式切换必须经过编辑模式,两种非编辑模式之间无法进行直接进行切换
十、替换命令:
r: 替换光标所在位置的一个字符
小r:替换一个字符,字符多了不管用,不是替换模式
替换模式:qwyryt变为123456
十一、撤销编辑操作
u: 撤销一次此前的编辑操作
Ctrl+l:撤销最近的一次撤销操作
十二、重复之前的一次编辑操作
.
十三、特殊的末行命令:
1、显示和取消编号:
:set number --->(简写):set nu :set number 显示行号
: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
vimtutor当作命令来用,大篇幅
十五、使用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/SOMEFILES
十七、跟shell交互
:!COMMAND
十八、部分另存为
:w /PATH/TO/SOMEFILES文件内容全部保存
:m,nw /PATH/TO/SOMEFILES保存m到n行位置的文件
:m,+nw
:.,$w部分另存为,从当前行到最后一行
本文转自little_ding 51CTO博客,原文链接http://blog.51cto.com/12496428/1906125:,如需转载请自行联系原作者