VIM编辑模式
进入编辑模方式:
i 在当前字符前插入
a 在当前字符后插入
I(大写i) 在光标所在行首插入
shift+a 从光标在所行尾插入
o 在光标所在行下一行插入
shift+o 在光标所在行上一行插入
VIM命令模式
字符搜索
/ word 从光标开始向后搜索字符串,按n向后继续搜索
?word 从光标开始向前搜索字符串,按n向前继续搜索
替换
: n1,n2s/word1/word2/g 在n1-n2之间将word1替换为word2,不加g则只替换每行第一个
:1,$s/word1/word2/g 全局替换word1为word2,不加g则只替换每行的第一个word1
保存与退出
:w 保存文本
:w! 强制保存,在root用户下,即使文本只读也可以完成保存
:q 退出vim
:q! 强制退出,不保存
:wq 保存并退出
:x 在更改内容时用等于 :wq,未更改内容时用则不会更改文件mtime
行号显示
:set nu 显示行号
:set nonu 不显示行号
:nohl 取消高亮
语法
当被替换的内容中含有 / 且与命令中的 / 重叠时,可用 # 或 \ 或 @ 代替命令中的 /
VIM实践
1、分别向下,右,左,上方向移动6个字符,(6j, 6l, 6h, 6k)
2、分别向下,向上翻两页(两次Ctrl+f , 两次Ctrl+b)
3、将光标指定到第49行(49 shift+g)
4,、将光标移动到行尾,再移动到行首,($ , ^)
5、移动到文件的首行(gg)
6、移动到文件的尾行,(shift + g)
7、搜索文中“dnsmasq”,并统计字符出现的次数(/dnsmasq 再按n)
8、将文中第1至第10行出现的 dnsmasq替换成dns(:1,10s/dnsmasq/dns/g)
9、还原上一次操作(u)
10、全局替换etc为cte (:1,$/etc/cte/g)。