四周第三次课(1月4日) 5.5 进入编辑模式 5.6 vim命令模式 5.7 vim实践

时间:2022-02-06 14:23:36

四周第三次课(1月4日)
5.5 进入编辑模式
5.6 vim命令模式
5.7 vim实践

扩展
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

小键盘问题

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

vim加密

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

 

进入编辑模式

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

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

光标行,行首,开始编辑
Shift + i (大写I)

光标行,行尾,开始编辑
Shift + a (大写a)

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

光标行,上面另起一行,开始编辑
Shift + o (大写o)

 

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

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

退出vim编辑器
:q

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

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

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

强制保存退出
:wq!

显示行号
:set nu

不显示行号
:set nonu

取消高亮的关键词
:nohl


vim实践

练习:
(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

 四周第三次课(1月4日) 5.5 进入编辑模式 5.6 vim命令模式 5.7 vim实践

 

四周第三次课(1月4日) 5.5 进入编辑模式 5.6 vim命令模式 5.7 vim实践

 

四周第三次课(1月4日) 5.5 进入编辑模式 5.6 vim命令模式 5.7 vim实践

 

四周第三次课(1月4日) 5.5 进入编辑模式 5.6 vim命令模式 5.7 vim实践四周第三次课(1月4日) 5.5 进入编辑模式 5.6 vim命令模式 5.7 vim实践


Connecting to 192.168.183.128:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Last login: Thu Jan 4 20:57:13 2018
[root@localhost ~]# vim /tmp/xxx.sh
[root@localhost ~]# cp /etc/dnsmasq.conf /tmp/12.txt
[root@localhost ~]# vim /tmp/12.txt
[root@localhost ~]#