vim编辑器是众多文件编辑软件中比较好的一个,也是使用最多 ,功能最强大的,提供了图形化界面。
Vi:类unix系统中默认的文本编辑器
Vim:vi编辑器的增强版本,习惯上也称vi。
作用:创建或修改文本文件,维护linux系统的各种配置文件
vim的使用格式:
vim [选项]…file..
可用选项:
+#:打文件后,直接让光标处于低#行的行首
+/PATTERN:打开文件后直接让光标处于第一个被PATTERN匹配到的行的行首
vim编辑器有三种模式:
命令模式:默认进入的是命令模式,在命令模式中可以对文件进行删除、复制、粘贴等功能,
编辑模式:对文件修改编辑
扩展模式:对文件保存、退出等
三种模式之间的切换:
命令模式切换到编辑模式按a A i I o O键
a:在光标所在处后面插入
A:在光标所在行的行尾插入
i:在光标前插入
I:在光标所在行的行首插入
o:在光标所在行的下一行插入
O:在光标所在行的上一行插入
命令模式切换到扩展模式按Shift键+:键
插入模式到命令模式:按ESC键
扩展模式到命令模式:按ESC键
ctrl+s 锁定
ctrl+q 解锁
命令模式操作:
光标跳转:
^:跳转至行首的第一个非空字符
0:跳转至行首
$:跳转至行尾
#G、扩展模式:跳转至#行
G:跳转至最后一行
1G或gg:跳转至第一行
翻屏操作:
ctrl+f:向文件尾部翻一屏
ctrl+b:向文件首部翻一屏
ctrl+d:向文件尾部翻半屏
ctrl+u:向文件首部翻半屏
保存退出:
ZZ;保存退出
ZQ:不保存退出
字符编辑:
x:删除光标处的字符
#x:删除光标处起始#个字符
xp:交换光标所在处的字符
~:转换大小写
替换命令:
r:替换光标所在处的字符
R:切换成替代模式
删除命令:
d:删除命令,可结合光标跳转字符实现范围删除
d$:删除到行尾
d^:删除到非空行首
d0:删除到行首
dw:删除一个单词,从光标处往后删
db:删除一个单词,从光标处往前删
dd:删除光标所在行
#dd:删除#行
D:从当前光标位置一直删除到行尾ieee,留空行,等同于d$
复制命令:
y:复制,与d相似
y$:复制到行尾
y0:复制到行首
y^:复制到非空行首
yw:复制单个单词,从光标处往后复制
yb:复制单个单词,从光标处往前复制
#yy:复制#行内容
y:复制整行内容
粘贴命令:
p:把复制的内容保存在缓冲区,如果是整行内容,粘贴至下一行,如果不是整行,粘贴至光标所在处的后面
P:把复制的内容保存在缓冲区,如果是整行内容,粘贴至上一行,如果不是整行,粘贴至光标所在处的前面
多次粘贴:#i内容[ESC]:粘贴内容#次
改变命令:
c:修改后切换成插入模式
c$:修改到行尾
c^:修改到非空行首
c0:修改到行首
cw:修改单个单词,从光标处往后修改
cb:修改单个单词,从光标处往前修改
cc:删除当前行斌输入新内容
#cc:删除#行并输入内容
C:删除当前光标到行尾,并切换成插入模式
撤销命令:
u:撤销最近一次的更改
#u:撤销之前多次更改
U:撤销光标落在 这行后所有此行的更改
按Ctrl -r重做最后的“撤销”更改
.重复前一个操作
n.重复前一个操作n
扩展模式: :q 退出 :q! 强制退出,丢弃做出的修改 :wq 保存退出 :x 保存退出 ? 命令模式 ZZ: 保存退出 ZQ:不保存退
按“:”进入扩展模式在“:”后添加命令
命令:
w:写入
wq:写入并退出
x:写入并退出
q:退出
q!:不保存,强制退出
r 文件名 :读文件内容到当前文件
w 文件名 :另存为
!命令 : 在底部执行其他命令
r! 命令 : 执行命令并把命令结果保存到vim所编辑的文件中
地址定界:
起始,结束
#:具体地#行,例如5表示地5行
#,#:从左侧#表示行开始,到右侧表示行结束
#,+#:从左侧#表示开始,往后加上#行 1,+2 表示1到3行
.:表示当前行
$:最后一行
$-1:当前行到倒数第二行
%:表示全文
/pat1/,/pat2/ :从第一次被模式1匹配到的行开始,直到第一次被模式2匹配到的行结束
#,/pat/ :从第#行开始,一直到第一次被模式匹配到的行结束
/pat/,$:从第一次被模式匹配到的啊很难过开始,一直到最后一行。
使用方式:在地址后面跟上一个编辑命令即可
查找:
/条件:从当前光标所在处向文件尾部查找
?条件:从当前光标所在处向文件首部
多个结果切换:n:与命令同方向
N:与命令反方向
查找并替换 s/// 分隔符/可以替换 如:s### s@@@ s$$$
s:在扩展模式下查找替换,与sed命令有相识之处
格式:s/要查找的内容/替换为的内容/修饰符
要查找的内容可使用已使用正则表达式,替换的内容不能用但可以是用后向引用\1、\2…,还可以使用“&”符号引用前面查找是找到的整个内容
例如:s/ab/&cd/g :结果就是把ab替换成了abcd
修饰符:
i:忽略大小写
g:全局替换,默认每一行只替换第一个匹配到的
gc:全局替换并且每次替换前询问
vim的寄存器:
有26个命名寄存器和1个无命名寄存器,常存放不同的剪切版内容,可以不同会话间共享。
用a,b,…z表示,用寄存器表示,放在数字和命令之间
例如:5“tty表示复制5行到t寄存器中
”tp 表示将t寄存器内容粘贴
如果未至定,将使用无命名寄存器
有10个数字寄存器,用0,1,2….9表示,0存放最劲复制 的内容,1存放最劲删除的内容,当新的文本变更和删除时,
1转存到2,2转存到3,以此类推,数字寄存器不能在不同会话间共享。
可视化模式:
允许选择的文本块
v 面向字符
V 面向行
crtl -v 面向块
示例:
可视化键可用于与移动键结合使用,突出显示的内容可以被删除,复制,变更,过滤,搜索等。
多文件模式:
当一个vim同时打开多个文件时,可以用以下命令进行管理
:next 下一个
:prev 前一个
:first 第一个
:last 最后一个
:wall 保存所有
:qall 退出所有
:wqall 保存退出
使用多窗口
vim -o file 水平分割文件
vim -O file 垂直分割文件
在窗口间切换:Ctrl+w ,Arrow
单文件窗口分割:
ctrl+w,s: split,水平分割
ctrl+w,v: vertical,垂直分割
ctrl+w,q: 取消相邻窗口
ctrl+w,o: 取消全部窗口
: wqall 退出
示例:垂直分割:
示例;水平分割
定时vim的工作特性
配置文件:永久有效
全局:/etc/vimrc
个人:~/.vimrc
扩展模式:当前vim进程有效
1、 set nu 命令 显示行号 取消 set nonu
2、 set sm 命令 括号成对匹配 取消 set nosm
3、 set ai 命令 自动缩进 禁用 set noai
4、 set hlsearch 命令 高亮搜索 禁用 set nohlsearch
5、 syntax on 命令 语法高亮 禁用 syntax off
6、 set ic 命令 忽略字符大小写 禁用 set noic
vim练习题:
1、复制/etc/profile至/tmp/目录,用查找替换命令删除 /tmp/profile文件中的行首的空白字符 ?
2、复制/etc/rc.d/init.d/functions文件至/tmp目录,用查 找替换命令为/tmp/functions的每行开头为空白字符的行的 行首添加一个#
3、如何设置tab缩进为4个字符? ?
4、复制/etc/rc.d/init.d/functions文件至/tmp目录;替换 /tmp/functions文件中的/etc/sysconfig/init为/var/log; ?
5、删除/tmp/functions文件中所有以#开头,且#后面至少 有一个空白字符的行的行首的#号
解答:
1、操作
效果:
2、操作:
效果:
3、操作
打开 ~.vimrc 或者/etc/vimrc添加如下项:
4、操作
效果:
5、操作:
效果:
原创文章,作者:ZJM,如若转载,请注明出处:http://www.178linux.com/33299