5.1 vim介绍

1. vim是vi的升级版本

2. vim是带有颜色显示

3. yum安装vim命令:

[[email protected] ~]# yum install -y vim-enhanced

4. vim的三种模式 一般模式编辑模式命令模式

进入编辑模式:i键 或 a键


5.2 vim颜色显示和移动光标

显示颜色,会根据文件名字类型内容语法等而变化

一般模式:快捷键!

光标移动到首行gg  

光标移动到行尾Shift键 + g

光标向左移动:h

光标向右移动:l

光标向右移动:空格键(指定移动数字+空格键,可移动指定数字字节)

光标向上移动:k

光标向下移动:j


5.3 vim一般模式下移动光标

1. vim显示颜色的条件有很多:文件名称,文件内容,文件所在目录等因素的不同,所显示的颜色也不近相同。

2. 一般模式下移动光标

5.1-5.7 VIM编辑器相关

指定数字+指定按键=移动到指定位置

数字11  +  键盘= 当前光标所在,向左移动11字符


5.4 一般模式下复制剪切粘贴

1.剪切光标行——dd

剪切5行(光标行下4行):5+dd

2.复制光标行——yy

复制5行(光标行下4行):5+yy

3.粘贴到光标下行: p

4.粘贴到光标上行  Shift p(大写P)

5.删除光标前字符—— Shift + x (大写X)

  删除前5个字符—— + Shift + x

6.删除光标后字符—— x

  删除后5个字符——+ x

7.还原上一步操作:u

8.反还原上一步操作:Ctrl + r  

9.标记选中字符:v + 移动键

标记选中字符剪切:v + 移动键 + x

粘贴:p

5.1-5.7 VIM编辑器相关



5.5 进入编辑模式

i

光标位置的前一位,开始编辑

a

光标位置的后一位,开始编辑

Shift + i    (大写I)

光标行,行首,开始编辑

Shift + a  (大写a)

光标行,行尾,开始编辑

o

光标行,下面另起一行,开始编辑

Shift + o  (大写o)

光标行,上面另起一行,开始编辑

5.1-5.7 VIM编辑器相关


5.6 vim命令模式

搜索关键词/关键词 (搜索到的关键词,会高亮显示)

向下查找高亮的关键词:n

向上查找高亮的关键词:Shift + n

搜索关键词?关键词 (搜索到的关键词,会高亮显示)

向下查找高亮的关键词:Shift + n

向上查找高亮的关键词:n

关键词,替换:

范围行替换:

指定范围行内包含的所有关键词,替换成目标字符   :开始行,结束行s/关键词/替换词/g

310行内包含的所有关键词root,替换成haoroot    :3,10s/root/haoroot/g

(注意:如果没有g,只会替换每行第一个出现的关键词,并不会所有关键词全部替换!) (特殊情况:如果要替换的关键词中带有/斜杠,分割符斜杠可以用#代替!)

例如    :1,10s#/sbin/nologin#hao#g

全文替换:

全文所有行,包含的所有关键词,替换成目标字符 :

:1,$s/关键词/替换词目标字符/g

1$(最后一行),包含的所有关键词root,替换成haoroot : :1,$s/root/haoroot/g

(注意: 没有g,只会替换每行第一个出现的关键词,并不会所有关键词全部替换!)

(特殊情况: 如果要替换的关键词中带有/斜杠,分割符斜杠可以用#代替!)

例如:1,$s#/sbin/nologin#hao#g

vim常用命令:

:w

保存文本

:w!

强制保存,在root用户下,即使文本只读也可以完成保存

:q

退出vim编辑器

:q!

强制退出,所有改动不生效

:wq

保存并退出,如果文本没有任何改动,mtime(修改时间)会更改为当前时间

:x

保存并退出,如果文本没有任何改动,不会更改mtime!

:wq!

强制保存退出

:set nu

显示行号

:set nonu

不显示行号

:nohl

取消高亮的关键词


5.7 vim实践

复制文件,用作练习:

[[email protected] ~]# cp /etc/dnsmasq.conf  /tmp/1.txt

练习题:

(1) 向下向上向左向右 移动6个字符

答:下6行:  6j 上6行:  6k  左6字符:  6h   右6字符:  6l                  

(2) 向下向上 翻2页

答:向上翻2页:  2次 ctrl+   向下翻2页:  2下 ctrl+b

(3) 把光标移动到第49

答: 49  +  Shift+g(大写G)

(4) 把光标移动行尾,再移动行首

答: 行尾:  Shift+4     行首: Shift+6

(5) 移动到1.txt文件内容最后一行

答:Shift+g(大写G)

(6) 移动到文件内容首行(第一行)

答:gg

(7) 搜索关键词dnsmasq,并数出关键词出现次数

答: 查找关键词:  /dnsmsq 下查高亮的关键词n

(8) 把从第1行第10行出现的关键词dnsmasq替换成dns

答:  :1,10s/dnsmasq/dns/g

(9) 还原上一步操作

答:  u

(10) 把整个文件所有etc替换成cte

答:   :1,$s/etc/cte/g

(11) 把光标移动到第25行,删除字符串 ly

答:移到25行: 25  向右移动光标找到lyj  标记选中:  v   删除标记字符:  x

(12) 还原上一步操作

答:  u

(13) 删除50行

答: 移到50行: 50G     删除光标所在行:  dd

(14) 还原上一步操作

答: u

(15) 删除37-42行所有内容

答: 移到37行:  37  删除37光标行42行(共6行):  6dd

(16) 还原上一步操作

答: u

(17) 复制48行内容粘贴到第52行下面

答: 移到48行: 48  复制光标行: yy    移到52行: 52G   粘贴到下面:  p

(18)还原上一步操作

答: u

(19) 复制37-42行内容粘贴到第44行上面

答: 移到37行: 37 复制37光标行42行(共6行): 6yy  移到44行: 44G  

粘贴到上面:  大写P(Shift+p)

(20) 还原上一步操作

答: u

(21) 把第37-42行内容移动(剪切)到第19行下面

答: 移到37行: 37 剪切37光标行42行(共6行): 6dd   移到19行: 19 

粘贴到下面: p    

(22) 还原上一步操作

答: u

(23) 光标移动首行,把第1行内容改为#!/bin/bash

答: 移到第一行: gg  从行尾开始编辑: Shift+ 清空光标前字符: Shift+u  添加更改内容: #!/bin/bash

(24) 在1行下面插入新的一行,并输入# Hello!

答: 移到第一行: gg  光标行下面另起一行: o    输入: # Hello!

(25) 保存文档退出

答: 退出编辑模式: Esc键   一般模式下,保存退出:  :wq


扩展:

vim的特殊用法 

http://www.apelearn.com/bbs/thread-9334-1-1.html

vim常用快捷键总结 

http://www.apelearn.com/bbs/thread-407-1-1.html

vim快速删除一段字符 

http://www.apelearn.com/bbs/thread-842-1-1.html

vim粘贴代码乱码 

http://www.apelearn.com/bbs/thread-6753-1-1.html

putty和Shell小键盘问题 

http://www.apelearn.com/bbs/thread-7215-1-1.html

vim加密  

http://www.apelearn.com/bbs/thread-7750-1-1.html