一、vim的三种模式:
基本上 vi 共分为三种模式,分别是『一般模式』、『编辑模式』、『指令列命令模式』。 这三种模式的作用分别是:
一般模式:
以 vi 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、粘贴』来处理你的文件数据。
按键说明:
-
输入nj会向下移动n行
-
crtl+f屏幕会向下移动一页,crtl+b屏幕会向上移动一页
-
n+空格键会向右移动n个字符
-
0或者Home会移动这一行第一个字符位置,$或End会移动到行的最末尾
-
G移动到这个档案的最后的一行,nG为定位到第n行,gg定位到档案的第一行
-
n+Enter键会向下移动n行
-
/word向光标下查找名称为word的字符串,?word 向光标上查找名称为 word 的字符串
-
:n1,n2s/word1/word2/g
n1 与 n2 为数字。在第 n1 与 n2 行间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行间搜寻 nevada 并取代为 NEVADA 则: 『:100,200s/ nevada / NEVADA /g』。(常用)
x删除字符,nx删除n个字符,dd删除游标所在的那一整列
yy复制游标所在的那一列 -
nyy:
n 为数字。复制光标所在的向下 n 列,例如 20yy 则是复制 20 列(常用) -
u是复原前一个动作,比如你不小心进行了某个动作,想反悔
-
[Ctrl]+r 重做上一个动作。
-
.
意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』。
编辑模式
在一般模式中可以进行删除、复制、粘贴等等的动作,但是却无法编辑文件内容! 要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母后才会进入编辑模式。注意了!通常在 Linux 中,按下这些按键时,在画面左下方会出现『 INSERT 或 REPLACE 』的字样,此时才可以编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。
指令列命令模式:
在一般模式当中,输入『 : / ? 』三个中的任何一个按钮,就可以将光标移到最底下那一行。在这个模式当中, 可以提供你『搜寻资料』,而读取、存盘、大量取代字符、离开 vi 、显示行号等等则是在此模式中!
- :w
将编辑的档案重新写入到硬盘档案中 - :w!
若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案档案权限有关啊! - :q
离开档案 - :q!
不保存强制离开 - :wq
存储后离开 - ZZ
这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开! - :n1,n2 w [filename]
将 n1 到 n2 的内容储存成 filename 这个档案。 - :! Command
暂时离开 vi 到指令列模式下执行 command 的显示结果!例如 『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息! - :set nu
显示行号,设定之后,会在每一行的前缀显示该行的行号 - :set nonu
与set nu 相反,为取消行号!
二、案例实战:
-
请在 /tmp 这个目录下建立一个名为 vitest 的目录;
mkdir /temp/vitest -
进入 vitest 这个目录当中;
cd /temp/vitest -
将 /etc/man.config 复制到本目录底下;
cp /etc/man.config /temp -
使用 vi 开起本目录下的man.config 这个档案;
vim man.config -
在 vi 中设定一下行号;
:set nu -
移动到第 58 行;
58G -
移动到第一行,并且向下搜寻一下『 bzip2 』这个字符串;
gg /bzip2 -
接着下来,我要将 50 到 100 行之间的『小写 man 字符串』改为『大写 MAN 字符串』;
:50,100s/man/MAN/gc -
修改完之后,突然反悔了,要全部复原,有哪些方法?
u -
我要复制 65 到 73 这九行内容,并且贴到最后一行后
『65G』 然后再『 9yy 』后最后一行会出现『复制九行』。 按下『 G 』到最后一行,再给他『 p 』贴上九行! -
21 到 42 行间的开头为 # 符号的批注数据删除;
21G 』→『 22dd 』就能删除 22 行 -
将这个档案另存成一个 man.test.config 的檔名;
『 :w man.test.config 』
三、vim 的额外功能
1、vim 具有颜色显示的功能,并且还支持许多程序语法 (syntax)
2、区块选择(Visual Block)
- 使用 vim hosts 来开吪该档案
- 将光标移劢到第一行癿 host 那个 h 上央,然后按下 [ctrl]-v
- 将光标移劢到最底部,此时光标区域会反白按下『 y 』复制
- 最后,将光标移动到第一行的最右边,并且再用编辑模式向右按两个空格键,回到一般模式后, 再按下『 p 』后,,就复制成功了
3、多档案编辑
快速的就将需要的资料复制到正确档案内