什么是VIM?
VIM类似于Vi编辑器, 它是一个功能强大、可高度定制的文本编辑器, 是一个纯粹的自由软件。注意:vi和vim不完全相同
为什么要使用VIM?
相信大多数人接触Linux时使用的第一个文本编辑器都不是VIM,很多人看到VIM复杂的命令操作就望而祛步了, 从而选择nano,gedit等较简单的文本编辑器, 但是熟悉使用VIM之后你真的就不想回去了!
VIM的用法:
很多习惯使用Windows的朋友可能一开始难以接受VIM编辑器, 因为它实在是太"难"了, 纯命令操作, 但是很多经常使用Linux的朋友一般能快速上手。
VIM如何打开文件:
vim [OPTION]... [FILE]...
如果不指定文件则进入以下界面
vim +2 /etc/passwd ##使用vim打开/etc/passwd文件并且使光标处在第二行
vim PATTERN /etc/passwd ## 使用vim打开/etc/passwd文件并且使光标处在指定模式匹配到的行上, 关于模式请自行查阅正则表达式的相应内容,这里不做阐述
VIM是一种模式化的编辑器, 分为以下4种模式:
命令模式:输入相应指令完成文本的编辑
输入模式:可直接输入字符
末行模式:VIM内建的命令行接口,功能强大
可视化模式:可选定字符通过相应指令执行对选定字符的操作
模式转换:
命令模式 –> 输入模式
i:在所在光标前进入插入模式 a:在所在在光标后进入插入模式 o:在光标所在行下新建一行,并转到插入模式 O;在光标所在行上新建一行,并转到插入模式 I:直接跳到所在行的行首,并进入插入模式 A:直接跳大所在行的行尾,并进入插入模式
输入模式 –> 编辑模式
按下ESC键退回到命令模式
命令模式 –> 末行模式
输入: 进入末行模式
末行模式 –> 命令模式
按下ESC键退回命令模式, 可能有时候需要按两下
关闭文件:
末行模式中: q:退出 w:保存 q!:强制退出 wq:保存退出 x:保存退出 命令模式下: ZZ:保存退出
光标跳转:
字符间跳转:
h:左 j:下 k:上 l:右 #COMMAND:指定一次跳转的数量, 例如3h, 向左跳转3个字符
单词间跳转:
w:后一个单词的词首 e:当前或下一个单词的词尾 b:当前或上一个单词的词首 #COMMAND:同样可以通过#指定一次跳转的数量
行首尾跳转:
^:跳转到当前行的第一个非空白字符 $:跳转到当前行的尾部 0:跳转到当前行的首部
行间移动:
#G:跳转到指定行 G:跳转到最后一行 gg,1G:跳转到第一行
句间移动:
):下一句 (:上一句 #COMMAND:同样可以通过#指定一次跳转的数量
段间移动:
}:下一段 {:上一段 #COMMAND:同样可以通过#制定一次跳转的数量
VIM的命令模式下的命令:
字符编辑:
x:删除当前光标所在的字符 #x:删除当前光标起始处的#个字符 xp:交换和光标所在字符后的字符的位置
替换命令:
r:替换当前光标所在字符
删除命令:
d:删除命令, 可结合光标跳转命令使用,来实现范围删除 例如:dw删除一个单词, dG删除当前光标所在行到最后一行 dd:删除整行 D:删除光标当前所在行并保存当前行 #COMMAND:同样可以通过#制定一次跳转的数量
粘贴命令:
p:粘贴当前缓存区的内容, 如果缓存区中内容为整行内容,则内容粘贴在当前行的正下方, 否则粘贴至光标的后面 P:粘贴当前缓存区的内容, 如果缓存区中内容为整行内容,则内容粘贴在当前行的正上方, 否则粘贴至光标的后面
复制命令:
y:复制, 工作命令相似d命令 例如:yw复制一个单词 yy:复制整行 #COMMAND:同样可以通过#制定一次跳转的数量
改变命令:
c:修改,可以使 命令模式 --> 输入模式 cc:删除行并输入新内容 cw:删除后一个单词,并进入插入模式 ce,c^,c0...操作请自己尝试, 这里不做阐述
其他相关的编辑操作:
v:按字符选定 V:按行选定 选定后结合编辑命令使用 u:撤销之前的编辑 Ctrl+r:撤销之前的撤销 .:重复前一个编辑操作
翻屏操作:
Ctrl+f:向文件尾部翻一屏 Ctrl+b:向文件首部翻一屏 Ctrl+d:向文件尾部翻半屏 Ctrl+u:向文件首部翻半屏
查找操作:
/PATTERN:在全文搜索指定模式匹配的字符, 从光标的位置至文件尾部的顺序 ?PATTERN:在全文搜索指定模式匹配的字符, 从光标的位置至文件首部的顺序 n:与当前命令同方向, /PATTERN为往后翻 N:与当前命令反方向
VIM末行模式的操作:
(1) 地址定界
注释:以下命令不加:, 使用前须输入:进入末行模式 start,end #:具体第#行, 例如2表示第2行 #,#:表示第#行到第#行, 例如2,10表示第2行到第10行 #,+#:表示左侧的#表示起始, 加上右边#表示的行数 .:表示当前行 $:表示最后一行 .,$-1:表示当前行到倒数第2行 %:表示全文, 相当于1,$ /pat1/,/pat2/:从第一个被匹配的pat1行开始,到第一个被匹配的pat2的行结束 使用方法: 后跟一个编辑命令 d:删除 y:复制 w /path/to/somewhere:将范围内的行另存到指定文件 r /path/to/somewhere:在指定位置插入指定文件的所有内容
(2) 查找和替换
地址定界s/要查找的内容/替换的内容/修饰符 例如:替换全文的abc为123 %s/abc/123/gi 要查找的内容:可使用模式匹配 替换为的内容:不可使用模式, 但可以使用\1,\2等后向引用, 还可以使用&符号引用在前面找到的内容 修饰符: i:忽略大小写 g:全局替换 查找替换的分隔符可替换为其他字符 例如::s/abc/123/g可替换成 :s@abc@123@g
练习:
1、复制/etc/grub2.cfg 至/tmp目录, 用查找替换命令删除/tmp/grub2.cfg文件中的行首的空白字符 %s/^[[:space:]]// 2、复制 /etc/rc.d/init.d/functions文件至/tmp目录, 用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首添加一个#号 %s/^[[:space:]]/#&/
多文件模式:
vim FILE1 FILE2 FILE3...
在末行模式下输入以下命令: firs:第一个 netx:下一个 prev:上一个 last:最后一个 wall 保存所有文件 qall 退出所有
窗口分隔模式:
vim -o|-O FILE1 FILE2... -o:水平分隔 -O:垂直分隔 在窗口间切换:Ctrl+w+上下左右 单文件窗口分隔: Ctrl+w,s split 水平分隔 Ctrl+w,v vertical 垂直分隔
如图:为水平分隔
如图:为垂直分隔
定制vim的工作特性:
我们可以通过修改VIM的配置文件来达到定制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 简写 set noh (5) 语法高亮 启用:syntax on 禁用:syntax off (6) 忽略字符大小写 启用:set ic 禁用:set noic (7) 获取帮助: :help :help subject
总结:
VIM是一个入门难,精通难的文本编辑器,诸多指令需要牢牢的记在心中,熟练使用可以提高效率
原创文章,作者:Net18-AnyISalIn,如若转载,请注明出处:http://www.178linux.com/12057
评论列表(1条)
不错,层次清晰,内容丰满。赞