vi使用大全

1.一般模式:移动

n<space>:向右移动这一行的n个字元;

0:移动到这一行的最前面

$:移动到这一行的最后面

H:移动到这一屏的最上面

M:移动到这一屏的最中间

L:移动到这一屏的最下面

G:移动到这个文件的最后一行

nG:移动到这个文件的第n行

gg:移动到这个文件的第一行

n<Enter>:向下移动n行

2.一般模式:查找与取代

/word:向下查找一个名称为word的字串

?word:向上查找一个名称为word的字串

n:重复前一个搜寻的动作

N:与n相反

:n1,n2s/word1/word2/g:在第 n1 与 n2 行之间寻找 word1 这个字串,并将该字串取代为 word2

:1,$s//word1/word2/g:从第一行到最后一行寻找 word1 这个字串,并将该字串取代为 word2

:1,$s//word1/word2/gc:从第一行到最后一行寻找 word1 这个字串,并将该字串取代为 word2,在替代前需要用户确认。


3.一般模式:删除、复制与粘贴

x,X:在一行中,x为向后删除一个,X为向前删除一个

nx:向后删除n个

dd:删除当前行

ndd:向下删除n行

d1G:删除从当前行到第一行

dG:删除从当前行到最后一行

d$:删除当前位置到当前行的最后一个

d0:删除当前位置到当前行的第一个

yy:复制当前行

nyy:向下复制n行

y1G:复制从当前行向上到第一行

yG:复制从当前行到最后一行

y0:复制从当前位置到当前行行首

y$:复制从当前位置到当前行行尾

p,P:p 为将已复制的资料在游标下一行贴上,P 则为贴在游标上一行!

J:将游标所在行与下一行合并

u:复原前一个动作

[Ctrl]+r:重做上一个动作

4.进入编辑模式

i, I:i 为『从目前游标所在处插入』, I 为『在目前所在行的第一个非空白字元处开始插入』

a, A:a 为『从目前游标所在的下一个字元处开始插入』, A 为『从游标所在行的最后一个字元处开始插入』

o, O:o 为『在目前游标所在的下一行处插入新的一行』; O 为在目前游标所在处的上一行插入新的一行!

r, R:取代∶r 会取代游标所在的那一个字元;R会一直取代游标所在的文字,直到按下 ESC 为止;

Esc:退出编辑模式,回到一般模式中

5.指令模式

:w:保存

:w!:强制保存

:q:退出

:q!:不保存,强制退出

:wq:保存并退出

:e!:还原到最原始的状态

ZZ:若没改变则不保存离开,若有改变则保存后离开

:w[filename]:将编辑的资料保存为另一个文件

:r[filename]:在编辑的文件中,读入另一个文件的内容,加入游标所在行的后面

:n1,n2 w [filename]:将n1行到n2行的内容储存为filename文件

:!command:暂时离开 vi 到指令列模式下执行 command 的显示结果

:set nu:显示行号

:set nonu:取消行号


举例子:

1. 请在 /tmp 这个目录下建立一个名为 vitest 的目录;

2. 进入 vitest 这个目录当中;
3. 将 /etc/man.config 拷贝到本目录底下(或由上述的连结下载man.config 档案);
4. 使用 vi 开启本目录下的 man.config 这个档案;
5. 在 vi 中设定一下行号;
6. 移动到第 58 行,向右移动 40 个字元,请问您看到的双引号内是什么目录?
7. 移动到第一行,并且向下搜寻一下『 bzip2 』这个字串,请问他在第几行?
8. 接著下来,我要将 50 到 100 行之间的 man 改为 MAN,并且一个一个挑选是否需要修改,如何下达指令?
9. 修改完之后,突然反悔了,要全部复原,有哪些方法?
10. 我要复制 51 到 60 行这十行的内容,并且贴到最后一行之后;
11. 删除 11 到 30 行之间的 20 行;
12. 将这个档案另存成一个 man.test.config 的档名;
13. 去到第 29 行,并且删除 15 个字元;
14. 储存后离开吧!


整个步骤如下:

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』,则会去到第 116 行才对!
8. 直接下达『 :50,100s/man/MAN/gc 』即可!
9. (1)简单的方法可以一直按『 u 』回复到原始状态,(2)使用不储存离开『 :q! 』之后,再重新读取一次该档案;
10. 『51G』 然后再『 10yy 』之后按下『 G 』到最后一行,再给他『 p 』贴上十行!
11. 『11G』 之后,再给他『 20dd 』即可删除 20 行了;
12. :w man.test.config
13. 『29G』 之后,再给他『 15x 』即可删除 15 个字元;
14. 『:wq!』



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值