i 键 在当前字符前插入
I 键 在光标所在行的行首插入
a键 在光标所在的后一个字符开始
A键 在光标所在行的行尾插入
o 键 在光标所在的行的下一行插入新的一行
O键 在光标所在的行的上一行插入新的一行
5.6 vim命令模式
/word 向光标之后查找一个字符串word,按n向后继续搜索,N或shift+n向前
?word 向光标之前查找一个字符串word,按n向前继续搜索,N或shift+n向后
:n1,n2s/word1/word2/g 在n1~n2行间查找word1并替换为word2,不加g则只替换每行第一个word1
:1,$s/word1/word2/g 将文档所有word1替换为word2,不加g则只替换每行的第一个word1
:w 保存文本
:q 退出vim
:w! 强制保存,在root用户下,即使文本只读也可以完成保存
:wq 强制退出,所有改动不生效
:set nu 显示行号
:set nonu 不显示行号
:↑ 上次使用的命令
:nohl 高亮显示的词,不高亮提示
:x 保存退出,更改文件后类似于wq;文件打开未操作,会更改mtime
:1,100s/dnsmasq/aminglinux/g 从第1行到100行,s表示开始替换,把dnsmasq替换为aminglinux,g表示全部替换
1,$s/\/etc\/hosts\//aminglinux/g 把/etc/hosts/替换为aminglinux,用 \ 转义;或者 1,$s#/etc/hosts/#aminglinux/g或者@符号分隔
set nu 显示行号
5.7 vim实践
#cp /etc/dnsmasq.conf /tmp/1.txt
1,分别向下,向右,向左,向上移动6个字符(6j,6l,6h,6k)
2,分别向下、向上翻两页(分别按两次ctrl+f和ctrl+b)
3,把光标移动到第49行(49G)
4,把光标移动到行尾, 再移动到行首(shift+4,shift+6)
5,移动到1.txt文件的最后一行(G)
6,移动到文件的首行(gg)
7,搜索文件中出现的“dnsmasq”,并数一下该字符串出现的次数(/dnsmasq然后按n)
8,把从第1行到第10行出现的dnsmasq替换成dns(:1,10s/dnsmasq/dns/g)
9,还原上一步操作(u)
10,把整个文件中所有的etc替换成cte (1,$s/etc/cte/g)
11,把光标移动到第25行,删除字符串“ly”(25G然后按j向右移动光标找到“lyl”,按v选中,然后按x)
12,还原上一步操作(u)
13,删除第50行(50G dd)
14,还原上一步操作(u)
15,删除第37-42行所有内容(37G 6dd)
16,还原上一步操作(u)
17,复制第48行的内容并粘贴到第52行下面(48G yy 52G p)
18,还原上一步操作(u)
19,复制第37-42行的内容并粘贴到第44行上面(37G 6yy 44G P )
20,还原上一步操作(u)
21,把第37-42行的内容移动到第19行下面(37G 6dd 19G p)
22,还原上一步操作(u)
23,把光标移动到首行,把第1行内容改为“#!/bin/bash”(先按gg,把光标定位到第1行,然后按字母A,进入编辑模式,同时>光标到行尾,进行修改操作,完成后按Esc)
24,在第1行下面插入新的一行,并输入“#Hello!”(按o进入编辑模式,同时光标向下另起一行,输入“#Hello!”)
25,保存文档并退出(按Esc键,输入":wq")
原文:http://blog.51cto.com/11530642/2057466