vim的使用
项目名称
运维培训
文件名称
vim的使用
编制部门
后台运维
作者
刘珂
当前版本
201807171911
受众范围
后台运维
文档控制
修改记录
日期
版本
修改类型
修改主要内容
作者
◆修改类型:A增加、B删除、C修改
审阅人
姓名
部门
职位
审阅签字
审阅时间
存档
存档时间
存放方式
存放地点、位置
备注
◆存放方式:A电子、B纸质
目录
打开或者创建文件,有则打开,无则创建。
vim [option] file
常用option
+n:打开文件后,让光标处于第n行的行首,+默认行尾
vim +2 soa.log
vim + soa.log
+/pattern:打开文件后直接让光标处于第一个被pattern匹配到的行的行首
vim +/INFO soa.log
如果该文件存在,文件被打开并显示内容;如果该文件不存在,当编辑后第一次存盘创建它。
基本上 vi 共分为三种模式,分别是『一般模式』、『编辑模式』与『命令命令模式』。这三种模式的作用分别是:
一般模式可与编辑模式及命令模式切换,但编辑模式与命令模式之间不可互相切换。
可以使用h,j,k,l键来进行光标的移动
h:左 l:右 j:下 k:上
G:最后一行
gg/1G:第一行
#G:直接跳转至第#行
0:绝对行首
$:绝对行尾
^:行首第一个非空白字符
可以使用w,e,b键来进行移动
w:下一个单词词首
e:当前单词或下一个单词词尾
b:当前单词或前一个单词词首
x 删除光标所在处的字符
#x 删除光标处起始#个字符
dd 删除光标所在的行
#dd 删除#行
d$ 删除到行尾
d^ 删除到非空行首
d0 删除到行首
yy 复制行
Y 复制行
#yy 复制多行
y 复制,结合光标跳转字符使用,复制跳转范围内的字符,行为相似于d命令
y$ 复制光标所在的那个字符到该行行尾的所有数据
y0 复制光标所在的那个字符到该行行首的所有数据
y^ 复制从光标到行首的内容
p 粘贴
u 撤销最近的更改
#u 撤销之前#多次更改
U 撤消光标落在这行后所有此行的更改
Ctrl + r反撤销
/PATHERN 从当前光标前向文件尾部查找
?PATHERN 从当前光标向文件首部查找
在查找过程中可以使用n或N来辅助查找:
n 查找下一个
N 查找上一个
:%s/要查找的内容/替换为的内容/修饰符
要查找的内容:可以使用正则表达式
替代换成的内容:不能使用模式
i: 忽略大小写 g: 全局替换;默认情况下,每一行只替换第一次出现
gc:全局替换,每次替换前询问
查找替换中的分隔符/可替换为其它字符,
例如
:%s@/etc@/var@g
:%s#/boot#/#i
:%s#/boot#/#ig
按Esc输入:可以在其中(末行模式)执行命令改变vim的行为,如
语法高亮:
:syntax on
:syntax off
搜索高亮:
:set hlsearch
:set nohlsearch
末行模式中的窗口属性只对当前vim进程有效,可通过修改下面的配置文件进行定义:
用户:~/.vimrc
全局:/etc/vim/vimrc 或 /etc/vimrc
需要注意的是,vim会将i我们的以前的行为都记录下来,以方便我们操作。它保存在文件 ~/.viminfo 中。
:set all 显示目前所有的环境参数值
:set 显示与系统默认值不同的参数值
:set nu 设置行号
:set nonu 取消行号
:set hlsearch 设置高亮度查找
:set nohlsearch 取消高亮度查找
:syntax on/off 是否开启依据相关程序语法显示不同的颜色
:set bg=dark/light 是否显示不同的颜色色调
整体vim的设置值一般是放在/etc/vimrc中的。一般不修改这个文件,而是修改~/.vimrc这个文件。
常用的编辑软件,都有个恢复的功能,就是说当系统因为某些原因而导致类似当机的情况时,还可以利用这个恢复功能将之前未保存的数据找回来。vim也有这个功能。
当使用vim编辑时,vim会在与被编辑的文件的目录下,再建立一个名为 .filename.swp的文件。如果系统因为某些原因断线了,导致编辑的文件还没有保存,这个时候 .filenam.swp 就能够发会救援的功能了。
打开文件时没有进入文件而是显示类似下图的信息
可能的原因:
1.可能有其他人或程序正在编辑这个文件
2.在前一个vim的环境中,可能因为某些不知名原因导致vim中断 (crashed):
右下角会出现六个命令项,其作用说明如下:
(O)pen Read-Only:打开此文件成为只读档, 可以用在你只是想要查阅该文件内容并不想要进行编辑行为时。
(E)dit anyway:还是用正常的方式打开你要编辑的那个文件,并不会载入暂存盘的内容。如果说两个人都在编辑这个文件的话,很容易出现互相改变对方的文件等问题。
(R)ecover:就是加载暂存盘的内容,用在你要救回之前未保存的工作。 不过当你救回来并且储存离开vim后,还是要手动自行删除那个暂存档。
(D)elete it:你确定那个暂存档是无用的!那么开启文件前会先将这个暂存盘删除
(Q)uit:按下 q 就离开vim,不会进行任何动作回到命令提示字符。
(A)bort:忽略这个编辑行为,感觉上与 quit 非常类似。