5.1 vim介绍

  1. vim是vi的升级版本
  2. vim是带有颜色显示的
  3. yum安装vim命令: [root@hao-01 ~]# 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. 一般模式下移动光标

指定数字+指定按键=移动到指定位置 数字11 + 键盘h = 当前光标所在,向左移动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个字符—— 5 + Shift + x 6.删除光标后字符—— x 删除后5个字符——5 + x 7.还原上一步操作:u 8.反还原上一步操作:Ctrl + r
9.标记选中字符:v + 移动键 标记选中字符剪切:v + 移动键 + x 粘贴:p

5.5 进入编辑模式 i 光标位置的前一位,开始编辑 a 光标位置的后一位,开始编辑 Shift + i (大写I) 光标行,行首,开始编辑 Shift + a (大写a) 光标行,行尾,开始编辑 o 光标行,下面另起一行,开始编辑 Shift + o (大写o) 光标行,上面另起一行,开始编辑

5.6 vim命令模式 搜索关键词:/关键词 (搜索到的关键词,会高亮显示) 向下查找高亮的关键词:n 向上查找高亮的关键词:Shift + n 搜索关键词:?关键词 (搜索到的关键词,会高亮显示) 向下查找高亮的关键词:Shift + n 向上查找高亮的关键词:n 关键词,替换: 范围行替换: 指定范围行内包含的所有关键词,替换成目标字符 :开始行,结束行s/关键词/替换词/g 3到10行内包含的所有关键词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实践 复制文件,用作练习: [root@hao-01 ~]# cp /etc/dnsmasq.conf /tmp/1.txt 练习题: (1) 向下、向上、向左、向右 移动6个字符 答:下6行: 6j 上6行: 6k 左6字符: 6h 右6字符: 6l
(2) 向下、向上 翻2页 答:向上翻2页: 按2次 ctrl+f 向下翻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行: 25G 向右移动光标找到ly: j 标记选中: v 删除标记字符: x (12) 还原上一步操作 答: u (13) 删除第50行 答: 移到50行: 50G 删除光标所在行: dd (14) 还原上一步操作 答: u (15) 删除第37-42行的所有内容 答: 移到37行: 37G 删除37光标行到42行(共6行): 6dd (16) 还原上一步操作 答: u (17) 复制第48行的内容并粘贴到第52行下面 答: 移到48行: 48G 复制光标行: yy 移到52行: 52G 粘贴到下面: p (18)还原上一步操作 答: u (19) 复制第37-42行的内容并粘贴到第44行上面 答: 移到37行: 37G 复制37光标行到42行(共6行): 6yy 移到44行: 44G
粘贴到上面: 大写P(Shift+p) (20) 还原上一步操作 答: u (21) 把第37-42行的内容移动(剪切)到第19行下面 答: 移到37行: 37G 剪切37光标行到42行(共6行): 6dd 移到19行: 19G
粘贴到下面: p
(22) 还原上一步操作 答: u (23) 把光标移动到首行,把第1行内容改为#!/bin/bash 答: 移到第一行: gg 从行尾开始编辑: Shift+a 清空光标前字符: 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