写在前面的话:centos中有一个vim的官方文档,输入vimtutor即可进入,可进行练习。
输入以下命令,即可进入:
[root@CHENDAJIE ~]# vimtutor
下面开始简单介绍vim编辑器的使用:
一:vim 编辑器模式
首次进入文件 ---- 命令模式
出现 “Insert” ---- 编辑模式
输入:— 命令行模式
从编辑模式到命令模式之间的切换:
编辑模式->esc->命令模式 ->:->命令行模式
进入编辑模式:
a i o A I O
字符说明:
i 当前字符之前插入(光标前)
I 行首插入(行首)
a 当前字符之后插入(光标后)
A 行尾插入(行尾)
o 下一行插入(另起一行)
O 上一行插入
x 向后删除一个字符 等同于delete
X 向前删除一个字符
u 撤销一步 没按一次就撤销一次
r 替换
二、光标定位:
hjkl 左下上右
0 和 home键表示切换到行首,
和
e
n
d
键
表
示
切
换
到
行
尾
g
g
快
速
定
位
到
文
档
的
首
行
,
G
定
位
到
未
行
3
g
g
或
者
3
G
快
速
定
位
到
第
3
行
/
s
t
r
i
n
g
(
字
符
串
)
−
−
−
−
−
找
到
或
定
位
你
要
找
的
单
词
或
内
容
,
如
果
相
符
内
容
比
较
多
,
我
们
可
以
通
过
N
、
n
来
进
行
向
上
向
下
查
找
,
并
且
v
i
会
对
查
找
到
的
内
容
进
行
高
亮
显
示
,
取
消
用
:
n
o
h
/
d
−
−
−
−
意
思
表
示
以
什
么
开
头
,
,
查
找
以
字
母
d
开
头
的
内
容
/
t
和end键表示切换到行尾 gg 快速定位到文档的首行 , G定位到未行 3gg 或者 3G 快速定位到第3行 /string(字符串) -----找到或定位你要找的单词或内容,如果相符内容比较多,我们可以通过N、n来进行向上向下查找,并且vi会对查找到的内容进行高亮显示,取消用 :noh /^d ----^意思表示以什么开头 ,,查找以字母d开头的内容 /t
和end键表示切换到行尾gg快速定位到文档的首行,G定位到未行3gg或者3G快速定位到第3行/string(字符串)−−−−−找到或定位你要找的单词或内容,如果相符内容比较多,我们可以通过N、n来进行向上向下查找,并且vi会对查找到的内容进行高亮显示,取消用:noh/d−−−−意思表示以什么开头,,查找以字母d开头的内容/t -----$意思表示以什么结尾,,查找以字母t结尾的内容
vim + a.txt 打开文件后,光标会自动位于文件的最后一行
三、对文本进行编辑
删除、复制、粘贴、撤销
y 复制(以字符为单位) :表示对单个字符进行复制,如果要复制整行,用yy(以行为单位)
复制N行: Nyy ,比如: 2yy ,表示复制2行
dd(删除,以行为单位,删除当前光标所在行)
删除N行: Ndd ,比如: 2dd ,表示删除2行
p : P粘贴
剪切: dd
x 删除光标所在位置的字符
D 从光标处删除到行尾
u 撤销操作
ctrl+r 还原撤销过的操作,将做过的撤销操作再还原回去,也就是说撤销前是什么样,再还原成什么样
r 替换,或者说用来修改一个字符
总结:vim如何进入其它模式
a A o O i I 都是可以进行插入,编辑模式
: 进入命令行模式
v 进入可视模式
ctrl+v 进入可视块模式
V 进入可视行模式
R 擦除、改写,进入替换模式
你进入以上模式后,想要退出 ,按esc
扩展:插入模式中的操作
ctrl+p可以进行补全操作,所需要的内容必须是在当前打开的文件内存在的,它只针对当前文件
V模式(列)
进入v模式 移动光标选择区域、
编程的时候需要进行多行注释:
1)、ctrl+v 进入列编辑模式
2)、向下或向上移动光标,把需要注释、编辑的行的开头选中起来
4)、然后按大写的I
5)、再插入注释符或者你需要插入的符号,比如"#"
6)、再按Esc,就会全部注释或添加了
删除:再按ctrl+v 进入列编辑模式;向下或向上移动光标 ;选中注释部分,然后按d, 就会删除注释符号。
命令行模式操作
:w 保存 save
:w! 强制保存
:q 没有进行任何修改,退出 quit
:q! 修改了,不保存,强制退出
:wq 保存并退出
:wq! 强制保存并退出
:x 保存退出
例: wq! 强制保存并退出
[root@CHENDAJIE ~]# ll /etc/shadow
---------- 1 root root 1208 9月 25 19:54 /etc/shadow
[root@CHENDAJIE ~]# vim /etc/shadow
调用外部文件或命令
假设:我想要写入我的网卡MAC地址,我要查看一下,当前在vim编辑文档,照着写。这样好麻烦。
在命令行模式下操作:
:!ifconfig 调用系统命令
!+命令
读取其他文件。(把其他文件中的内容追加到当前文档中)
:r /etc/hosts
四、文本替换
格式 : 范围(其中%所有内容) s分隔符 旧的内容 分隔符 新的内容 (分隔符可以自定义)
默认是每一行的第一个符合要求的词 (/g全部)
:1,3 s/bin/xuegod 替换第1到3行中出现的第一个bin进行替换为xuegod
:1,3 s/bin/xuegod/g 替换第1到3行中查找到所有的bin进行替换为xuegod
:3 s/xue/aaaaa #只把第3行中内容替换了
:% s/do/xuegod/g 将文本中所有的do替换成xuegod
:% s/do/xuegod/gi 将文本中所有的do替换成xuegod, 并且忽略do的大小写
:% s@a@b@g 将文本中所有的a替换成b
5.1.5 自定义vim使用环境
临时设置
:set nu 设置行号
:set nonu 取消设置行号
:noh 取消高亮显示
永久设置环境
vim /etc/vimrc 设置后会影响到系统所有的用户
~/.vimrc #在用户的家目录下,创建一个.vimrc。这样只影响到某一个用户,没有自己建一个
此处是我自己定义的root用户的环境:
[root@CHENDAJIE ~]# cat ~/.vimrc
set nu
将 set nu 定义到文件以后,每次root用户启动vim编辑器都会显示行号。
五、vim打开多个文件
方法1:以上下形势,打开两个文档
vim -o File1 File2
[root@CHENDAJIE ~]# vim -o /etc/passwd /etc/inittab
按ctrl+ww 在两文档之间切换
:qa 全部退出
方法二:以左右形式打开俩个文档
vim -O File1 File2
[root@CHENDAJIE ~]# vim -O /etc/passwd /etc/inittab
六、比较两个文件的内容
diff 命令
NAME
diff - 找出两个文件的不同点
总览
diff [选项] 源文件 目标文件
[root@CHENDAJIE ~]# cp /etc/passwd mima.txt
[root@CHENDAJIE ~]# echo bbb >> mima.txt
[root@CHENDAJIE ~]# diff /etc/passwd mima.txt
41a42
> bbb
在vim编辑器中使用
[root@CHENDAJIE ~]# vimdiff /etc/passwd mima.txt
从图中可以看出,不同之处有高亮显示。