VIM简介
VIM是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是纯粹的自由软件。
VIM的使用
在介绍基本使用前,先了解下VIM的基本模式
基本模式可分为三种:命令模式、输入模式、末行模式
命令模式:Vim启动后的默认模式,通过输入指令完成对应的编辑操作。输入模式和末行模式从命令模式进入
输入模式:可以正常输入字符、编辑文本的状态
末行模式:可以理解为Vim内置的命令行接口,可以进行保存退出等操作
-
打开文件
格式:vim [OPTION]… FILE…
选项:
+#:打开文件后,直接让光标处于弟#行的行首
+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首
注:如果不指定文件,将会出现如下界面
-
模式转换
命令模式–>输入模式
i:insert,在光标所在处输入
I:在当前光标所在行的行首输入
a:append,在光标所在处后面输入
A:在当前光标所在行的行尾输入
o:在当前光标所在行的下方打开一个新行
O:在当前光标所在行的上方打开一个新行
输入模式–>命令模式
按ESC键
命令模式–>末行模式
键入:
末行模式–>命令模式
按ESC键后稍等或者连按两次ESC键
-
关闭文件
末行模式下
:q 退出
:q! 强制退出。丢弃作出的修改
:wq 保存退出
: x 保存退出
:w /PATH/TO/SOMEWHERE 表示当前文本所有内容保存到指定路径
命令模式下
ZZ:保存退出
-
光标跳转
字符间跳转:
h:左
l:右
j:下
k:上
#COMMAND:跳转由#指定个数的字符
注:#为数字,COMMAND为上述字符
单词间跳转:
w:下一个单词的词首
e:当前或下一个单词的词尾
b:当前或前一个单词的词首
#COMMAND:由#指定一次跳转的单词数
行首行尾跳转:
^: 跳转至行首的第一个非空白字符
0: 跳转至行首
$: 跳转至行尾
行间移动:
#G:跳转至由#指定行
G:跳转至最后一行
1G或gg:跳转至第一行
句间和段间移动:
):下一句
(:上一句
}:下一段
{:上一段
#COMMAND:由#指定一次跳转的句数或段数
-
命令模式的命令
字符编辑:
x:删除光标处的字符
#x:删除光标处起始的#个字符
xp:交换光标所在处的字符及后面字符的位置
替换命令:
r:替换光标所在处的字符
删除命令:
d:删除命令。可结合光标跳转字符,实现范围删除
例:d$删除光标所在处到行尾的字符,d^和d0表示删除光标所在处到行首的字符
#COMMAND:例如3dl表示删除光标所在处及其右两位字符
dd:删除光标所在的行
#dd:多行删除
注意:最后一次删除的内容会被保存至缓冲区
粘贴命令:
p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面
复制命令
y:复制命令,可结合光标跳转字符,实现范围复制
注:y命令使用方式与d命令相似,参照即可
修改命令:
c:使用修改命令会触发模式转换,由命令模式–>输入模式,其功能表现为先删除,在转换为输入模式,可结合光标跳转字符使用。
cc:删除光标所在行的字符并转换为输入模式
C:删除光标所在处到行尾的所有字符并转换为输入模式
其它编辑操作:
可视化模式:
v:按字符选定
V:按行选定
注意:经常结合编辑命令(d,y,c)使用
撤销此前的编辑:
u:撤销此前的操作
#u:撤销由#指定次数的操作
撤销此前的撤销:Ctrl+r
重复前一个编辑操作:.
翻屏操作:
Ctrl+f:向文件尾部翻一屏
Ctrl+b:向文件首部翻一屏
Ctrl+d:向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏
vim自带练习教程:vimtutor
-
末行模式的操作
注:默认已进入末行模式,以下命令就不加:
地址定界
格式:star_pos,end_pos
#:具体第#行,例如2表示第2行
#,#:从左侧#行表示起始,到右侧#行表示行尾
#,+#:从左侧#表示的行起始,加上右侧#表示的行数
.:当前行
$:最后一行
.,$-1:当前行到倒数第二行
%:全文,相当于1,$
/pat1/,/pat2/:从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束
使用方法:后跟一个编辑命令
d:删除
y:复制
w /PATH/TO/SOMEWHERE:将范围内的行另存至指定文件中
r /PATH/FROM/SOMEFILE:在指定位置插入指定文件中的所有内容
查找
/PATTERN:从当前光标所在处向文件尾部查找
?PATTERN:从当前光标所在处向文件首部查找
n:跳转到下一个与命令同方向的结果
N:跳转到下一个与命令反方向的结果
查找并替换
s:在末行模式下完成查找替换操作
s/要查找的内容/替换为的内容/修饰符
要查找的内容:可使用模式
替换为的内容:不能使用模式,但可以使用\1, \2, …等后向引用符号;还可以使用“&”引用前面查找时查找到的整个内容
修饰符:
i:忽略大小写
g: 全局替换
注:默认情况下,每一行只替换第一次出现
查找替换中的分隔符/可替换为其它字符,例如s/123/321/g可替换为s#123#321#g
多文件模式
启动格式:vim FILE1 FILE2 FILE3 …
next:下一个文件
prev:前一个文件
first:第一个文件
last:最后一个文件
wall:保存所有
qall:退出所有
窗口分割模式
启动格式:vim -o|-O FILE1 FILE2 …
-o: 水平分割
-O::垂直分割
在窗口间切换:Ctrl+w,Arrow(↑↓←→)
单文件窗口分割:
Ctrl+w,s:split,水平分割
Ctrl+w,v:vertical,垂直分割
-
定制VIM的工作特性
配置文件:永久有效
全局:/etc/vimrc
个人:~/.vimrc(需要自行创建)
末行模式:当前vim进程有效
(1) 行号
显示:set number, 简写为set nu
取消显示:set nonumber, 简写为set nonu
(2) 括号匹配
匹配:set showmatch, 简写为set sm
取消:set nosm
(3) 自动缩进
启用:set ai
禁用:set noai
(4) 高亮搜索
启用:set hlsearch
禁用:set nohlsearch
(5) 语法高亮
启用:syntax on
禁用:syntax off
(6) 忽略字符的大小写
启用:set ic
不忽略:set noic
获取帮助:
:help
:help subject
原创文章,作者:Net18-海滨,如若转载,请注明出处:http://www.178linux.com/14053
评论列表(1条)
写标签有助文章收录,
markdown 火候不足,加油