教你用Vim编辑器
1、Vim编辑器基本使用方法
光标移动
查找/替换
插入模式
复制/粘贴
复制/粘贴
2、vim打开时的警告信息
当使用vim打开一个文件时,会同时在该目录下创建个.filename.swap的文件。对文件filename的操作会被记录到.filename.swap文件中,防止因意外关闭vim/断电等造成文件的损坏。
当存在.filename.swap的文件时,使用vim打开filename文件时,会出现以下提示
出现上述提示的问题有以下几点原因:
1、 可能有其他人或程序在同时编辑此文件
2、 在前一个vim中,可能因为某些不明原因或者正在编辑时掉电
解决方法:
针对第一种情况,找到编辑该文件的人,让其结束对文件的操作,然后再操作
针对第二种情况,因先按下R,这样vim会载入swap文件中的内容,挽救之前未保存的工作。但结束vim操作后,需要自行删除swap文件。
3、vim的块选择
例:
1) 建立文件host.txt
192.168.1.1 host1.class.net
192.168.1.2 host2.class.net
192.168.1.3 host3.class.net
192.168.1.4 host4.class.net
2)复制第二列的内容,将其粘贴到末行的下面
将光标移动到第一行的h上,按下 ctrl-v,这时候下面显示
移动光标选择
按y复制,按p粘贴
4、Vim的典型例子
1) 请在 /tmp 这个目录下建立一个名为 vitest 的目录;
2) 进入 vitest 这个目录当中;
3) 将 /etc/man.config 复制到本目录底下(或由上述的连结下载 档案);
4) 使用 vi 开启本目录下的 man.config 这个档案;
5) 在 vi 中设定一下行号;
6) 移动到第 58 行,向右移动 40 个字符,请问你看到的双引号内是什么目录?
7) 移动到第一行,并且向下搜寻一下『 bzip2 』这个字符串,请问他在第几行?
8) 接着下来,我要将 50 到 100 行之间的『小写 man 字符串』改为『大写 MAN 字符串』,并且一个一个挑选是否需要修改,如何下达指令?如果在挑选过程中一直按『y』, 结果会在最后一行出现改变了几个 man 呢?
9) 修改完之后,突然反悔了,要全部复原,有哪些方法?
10) 我要复制 65 到 73 这九行的内容(含有MANPATH_MAP),并且贴到最后一行之后;
11) 21 到 42 行之间的开头为 # 符号的批注数据我不要了,要如何删除?
12) 将这个档案另存成一个 man.test.config 的檔名;
13) 去到第 27 行,并且删除 15 个字符,结果出现的第一个单字是什么?
14) 在第一行新增一行,该行内容输入『I am a student...』;
15) 储存后离开吧!
结果如下:
1) 『mkdir /tmp/vitest』
2) 『cd /tmp/vitest』
3) 『cp /etc/man.config .』
4) 『vi man.config』
5) 『:set nu』然后你会在画面中看到左侧出现数字即为行号。
6) 先按下『58G』再按下『40→』会看到『/dir/bin/foo』这个字样在双引号内;
7) 先执行『1G』或『gg』后,直接输入『/bzip2』,则会去到第 118 行才对!
8) 直接下达『 :50,100s/man/MAN/gc 』即可!若一直按『y』最终会出现『在 23 行内置换 25 个字符串』的说明。
9) (1)简单的方法可以一直按『 u 』回复到原始状态,(2)使用不储存离开『 :q! 』之后,再重新读取一次该档案;
10) 『65G』 然后再『 9yy 』之后最后一行会出现『复制九行』之类的说明字样。 按下『 G 』到最后一行,再给他『 p 』贴上九行!
11) 因为 21~42 22 行,因此『 21G 』→『 22dd 』就能删除 22 行,此时你会发现游标所在 21 行的地方变成 MANPATH 开头啰, 批注的 # 符号那几行都被删除了。
12) 『 :w man.test.config 』,你会发现最后一行出现 "man.test.config" [New].. 的字样。
13) 『27G』 之后,再给他『 15x 』即可删除 15 个字符,出现『 you 』的字样;
14) 先『 1G 』去到第一行,然后按下大写的『 O 』便新增一行且在插入模式;开始输入『I am a student...』后, 按下[Esc]回到一般模式等待后续工作;
15) 『:wq』