vim(vi improve)编辑器前身是vi(Visual Interface), 一种常用的文本编辑器,而文本指的是由纯ASCII或Unicode组成的文本数据。ASCII是美国国家信息标准交换代码,Unicode是国际通用的编码方式,其使用16位的二进制符号将全世界的常用字符进行统一编码,常用的编码机制如UTF-8等。
按文本编辑器种类可分为:行编辑器(如:sed)、全屏编辑器(如:nano, vi)
vi可称为模式化编辑器,常用模式:编辑模式、输入模式、末行模式(命令模式)
一、打开文件
vim [OPTION]… FILE…
+[#]:想打开文件后,让光标直接处于第#行的行首,如vim + system.log,打开后光标在末行行首;
+/PATTERN:打开文件后,直接让光标处于第一个被PARTTERN匹配到的行的行首;
二、模式转换
1.编辑模式 转为–> 输入模式:
i:insert,在光标所在处前面插入;
a:append, 在光标所在处后面输入;
o:在当前光标所在行下方打开一个新行;
I:在当前光标所在行的行首输入
A:在当前光标所在行的行尾输入
O:在当前光标所在行的上方打开一个新行;
c:删除命令
C:删除整行
2.输入模式转换–>编辑模式
按ESC键
3.编辑模式转换–>末行模式
:(冒号)
4.末行模式转换–>编辑模式
按ESC键
三、关闭文件
:q :推出
:q! 强制退出,不保存
:wq或:x或ZZ 保存退出
:w /PATH/TO/SOMEWHERE 将当前文本保存到其他文件
四、光标跳转
1.字符间跳转
h: 向左跳一个字符
j: 向下跳一个字符
k: 向上跳一个字符
l: 向右跳一个字符
#COMMAND:跳转由#指定的个数的字符
2.单词间跳转
w: 跳转至下一个单词的词首
e: 跳转当前或下一个单词的词尾
b: 跳转至当前或下一个单词的词首
#COMMAND:由#指定一次跳转的单词数
3.行首行尾跳转
^: 跳转至行首的第一个非空白字符;
0: 跳转至行首;
$: 跳转至行尾;
4.行间跳转
#G:跳转至第#行
gg或1G: 跳转至行首
5.句间跳转
(:跳转至上一句的句首
):跳转至下一个句子
6.段落间跳转
} :跳转至下一个段落
{ :跳转至上一个段落
五、编辑操作命令
1.字符编辑
x: 删除光标处的单个字符
#x : 删除光标处起使位置开始的#个字符
xp: 交换光标所在处的字符及其后面字符的位置;
2.删除命令
d: 删除命令,可结合光标跳转字符,视线范围内删除;
d$: 删除光标处至行尾的内容
d^: 删除光标处至行首的内容
d0: 删除光标处至行首的内容
dw: 删除光标处所在位置至当前单词或下一个单词词尾内容
de: 删除光标处所在位置至当前单词或下一个单词词尾内容
db: 删除光标处所在位置至当前单词或上一个单词词尾内容
#COMMAND:删除#个单词
dd: 表示删除光标所在行整行
#COMMAND:向下删除当前光标行在内的#行,实现多行删除
3.粘贴命令(p, put, paste)
P(大写): 缓冲区中如果为整行内容,则粘贴至当前光标所在行的下方;否则粘贴至当前光标所在处的后面
p(小写): 缓冲区中如果为整行内容,则粘贴至当前光标所在行的上方;否则粘贴至当前光标所在处的前面
4.复制命令(y, yank)
y: 复制,工作行为相似于删除d命令;
5.改变命令(c, change)
c:删除并输入新内容,工作行为相似于删除d命令;
6.替换命令(r, replace)
r: 单字符替换,如r+a, 把光标处字符替换为a;
#r: 把光标处后的#个字符替全部换为输入的字符;
其他编辑操作命令:
7、可视化模式
v(小写): 按字符选定内容
V(大写): 按行选定内容
通常结合编辑命令:d, c, y 一起使用
8、撤销此前的编辑:(默认可撤销50次)
u(undo): 撤销此前的操作
#u:撤销指定#次的操作
9、恢复此前的撤销
Ctrl+r
10、重复前一次操作
.(点号)
11.翻屏操作
Ctrl+f:向文件尾部翻一屏;
Ctrl+b:向文件首部翻一屏;
Ctrl+d:向文件尾部翻半屏;
Ctrl+u:向文件首部翻半屏;
vimtutor命令可以学习vim相关使用方法
六、VIM的末行模式
1.地址定界“:start_pos,end_pos”, 如:1,10, 表示从1到10行
#:表示具体到第#行,例如:20表示第20行;
#,#:从左侧#表示行开始,到右侧#表示行结尾;
#,+#:从左侧#表示行开始,加上右侧#表示的行数;
.:当前行;
$:最后一行;
.,$-1:当前行到最后一行减一
%:表示全文,相当于1,$
/pat1/,/pat2/:表示第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束;
#,/pat/:从第#行开始到第一次被pat匹配到的行;
/pat/,$:从第一次被pat匹配到的行开始到最后一行;
地址定界后面可以直接跟命令d,w,y
w /PATH/TO/SOMEWHERE : 将范围内的行另存到指定的文件中;
r /PATH/TO/SOMEWHERE :在指定位置插入指定文件中的所有内容;
2.查找
/PATTERN:从光标所在出向文件尾部查找;
?PATTERN: 从光标所在处向文件首部查找;
敲键盘n键,向同命令方向查找;
敲键盘N键,向命令相反方向查找;
3.查找并替换
s命令: 在末行模式下完成查找替换操作,标准模式为:
s/要查找的内容/要替换的内容/修饰符
查找的内容:可以使用模式,
替换的内容:不能使用模式,但是可以使用后项引用\1,\2,……的引用符号,还可以使用&符引用前面查找到的整个内容。
修饰符:
i: 表示忽略大小写
g: 表示全局替换,不加g的话下每一行只替换第一次出现的内容
分隔符:可以使用@、#之类的特殊字符
七、其他模式的使用
1.多文件模式
vim FILE1 FILE2 FILE3 … ,末行模式下
:next 切换到下一个文件内容;
:prev 切换到前一个文件内容;
:first 切换到第一个文件内容
:last 切换到最后一个文件内容;
:wall 保存所有
:qall 退出所有
2.窗口分割模式
vim -o|-O FILE1 FILE2 FILE …
-O:水平分割,
-o:垂直分割,
Ctrl+w+w在窗口间切换
3.单文件窗口分割:
Ctrl+w,s :水平分割,split
Ctrl+w,v:垂直分割,vertical
八、vim的个性化配置
配置文件(永久配置):全局配置文件/etc/vimrc, 个人配置文件~/.vimrc
末行定制(临时:当前vim进程有效)
1.行号配置
显示行号:set number简写set nu;
取消显示:set nonumber简写set nonu;
永久配置在~/.vimrc文件中加入相关命令如:set nu后每次打开文件显示行号
2.括号匹配
显示匹配:set showmatch, 简写set sm
取消匹配:
3.自动缩进
启用:set ai
取消:set noai
4.高亮搜索
启用:set hlsearch
禁用:set nohlsearch
5.语法高亮
启用: syntax on
禁用: syntax off
6. 忽略字符大小写
启用:set ic
不忽略:set noic
九、获取帮助
获取VIM相关帮助,可在末行模式下输入:
:help :help subject
评论前必须登录!
注册