-
Vim编辑器使用详解
-
vim介绍
-
为什么要学习vim
-
vim三种模式
-
vim工作模式(图解)
-
vim如何打开文件
-
vim关闭文件
-
命令模式光标跳转
-
字符间跳转:
-
单词间跳转:
-
行首行尾跳转:
-
行间移动:
-
VIM的命令模式下的命令:
-
字符编辑:
-
替换命令(r, replace)
-
删除命令:
-
复制命令
-
粘贴命令(p, paste): :
-
其他相关的编辑操作:
-
翻屏操作:
-
查找操作:
-
VIM末行模式的操作:
-
地址定界
-
查找和替换
-
练习:
-
多文件模式:
-
窗口分隔模式:
-
定制vim的工作特性:
Vim编辑器使用详解
vim介绍
在Linux系统中配置应用服务,实际上就是在修改它的配置文件(配置文件可能有多
个,其中包含不同的参数),而且日常工作中也一定免不了编写文档的事情吧,这
些都是要通过文本编辑器来完成的。在热门Linux操作系统中都会默认安装一款超好用的文本编辑器——名字叫“vim”,vim是vi编辑器的升级版。
为什么要学习vim
Vim能够得到这么多厂商与用户的认可,原因就是在Vim编辑器中有三种模式——命
令模式、末行模式和编辑模式,分别又有多种不同的命令快捷键组合,很大的提高
了工作效率,用习惯后会觉得非常的顺手。要想在文本操作时更加高效率,我们必
需先搞清Vim编辑器的三种模式的操作不同与切换方法。
vim三种模式
命令模式
:控制光标移动,可对文本进行删除、复制、粘贴等工作。输入模式
:在一般模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式。注意了!通常在 Linux 中,按下这些按键时,在画面的左下方会出现『INSERT 或 REPLACE 』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。
末行模式
:在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的动作则是在此模式中达成的!
vim工作模式(图解)
记住每次运行vim编辑器后都默认是“命令模式”,需要先进入到“输入模式”后再进行编写文档的工作,而每次编辑完成需先返回到“命令模式”后再进入“末行模式”对文本的保存或退出操作。
vim如何打开文件
格式:vim [OPTION]… [FILE]…
[root@localhost ~]# vim +2 /etc/passwd //直接打开file, 光标在第二行
[root@localhost ~]# cp /etc/passwd passwd
[root@localhost ~]# echo "zabbix" >>passwd
[root@localhost ~]# vim -d /etc/passwd passwd //比较两个文件
vim关闭文件
末行模式中: :q
退出 :q!
强制退出,丢弃做出的修改 :wq
保存退出 :x
保存退出
命令模式 ZZ:
保存退出 ZQ :
不保存退出
命令模式光标跳转
字符间跳转:
h
: 左 l
: 右 j
: 下 k
: 上
单词间跳转:
w :
下一个单词的词首 e :
当前或下一单词的词尾 b :
当前或前一个单词的词首
行首行尾跳转:
^:
跳转至行首的第一个非空白字符; 0:
跳转至行首 $:
跳转至行尾
行间移动:
G
:最后一行 1G, gg:
第一行
VIM的命令模式下的命令:
字符编辑:
x:
删除光标处的字符; #x:
删除光标处起始的# 个字符 xp:
交换光标所在处的字符及其后面字符的位置
替换命令(r, replace)
r:
替换光标所在处的字符
:s/root/admin/g
删除命令:
d:
删除命令, 可结合光标跳转命令使用,来实现范围删除
例如:dw删除一个单词, dG删除当前光标所在行到最后一行 d$:
删除到行尾 d0:
删除到行首 dd:
删除光标所在的行 #dd :
多行删除
复制命令
y:
复制, 工作命令相似d命令
例如:yw复制一个单词 yy:
复制整行
粘贴命令(p, paste): :
p:
粘贴当前缓存区的内容, 如果缓存区中内容为整行内容,则内容粘贴在当前行的正下方, 否则粘贴至光标的后面 P:
粘贴当前缓存区的内容, 如果缓存区中内容为整行内容,则内容粘贴在当前行的正上方, 否则粘贴至光标的后面
其他相关的编辑操作:
v:
按字符选定 V:
按行选定
选定后结合编辑命令使用 u:
撤销之前的编辑 Ctrl+r:
撤销之前的撤销
翻屏操作:
Ctrl+f:
向文件尾部翻一屏 Ctrl+b:
向文件首部翻一屏 Ctrl+d:
向文件尾部翻半屏 Ctrl+u:
向文件首部翻半屏
查找操作:
/PATTERN:
在全文搜索指定模式匹配的字符, 从光标的位置至文件尾部的顺序 ?PATTERN:
在全文搜索指定模式匹配的字符, 从光标的位置至文件首部的顺序 n:
与当前命令同方向, /PATTERN为往后翻 N:
与当前命令反方向
VIM末行模式的操作:
地址定界
注释:以下命令不加:, 使用前须输入:进入末行模式
start,end #:
具体第#行, 例如2表示第2行 #,#:
表示第#行到第#行, 例如2,10表示第2行到第10行
:2,10s/root/admin/g
#,+#:
表示左侧的#表示起始, 加上右边#表示的行数
:2,+9s/admin/root/g
.:
表示当前行 $:
表示最后一行 .,$-1:
表示当前行到倒数第2行 %:
表示全文, 相当于1,$
:%s/admin/root/g
/pat1/,/pat2/:
从第一个被匹配的pat1行开始,到第一个被匹配的pat2的行结束
:/admin/,/ftp/s/admin/root/g
使用方法:
后跟一个编辑命令
d:
删除y:
复制w /path/to/somewhere:
将范围内的行另存到指定文件r /path/to/somewhere:
在指定位置插入指定文件的所有内容
查找和替换
地址定界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...
在末行模式下输入以下命令: :n
切换到下一个文件 :N
切换到上一个文件 wall
保存所有文件 qall
退出所有
窗口分隔模式:
vim -o|-O FILE1 FILE2...
-o:
水平分隔 -O:
垂直分隔
在窗口间切换:Ctrl+w+上下左右
单文件窗口分隔: 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 简写 set noh
(5) 语法高亮
启用:syntax on
禁用:syntax off
(6) 忽略字符大小写
启用:set ic
禁用:set noic
(7) 获取帮助:
:help
:help subject
原创文章,作者:M20_he,如若转载,请注明出处:http://www.178linux.com/43674