解析vi文本编辑器——方便新手记忆

 析vi文本编辑器——方便新手记忆
本帖最后由 dchwlinux 于 2009-7-15 10:40 编辑

最近在复习的时候发现相思爱文同学发的鸟哥的lnux私房菜第二版电子书中关于vi的命令介绍有一些小错误,所以就来发一个帖子,顺便为新手用户写一些总结性的东西。如果你现在正有一张vi的介绍在你面前,再配合本文会加深你的理解和记忆。
      首先,关于vi的三种模式,尽管有的地方叫法不同,但是大同小异,我把三种模式叫做插入模式(窗口下面会出现插入字样,这时主要进行文本录入)、一般模式(刚进入vi是的模式,要进入该模式请按Esc,这时不能进入键盘录入,而是移动光标、复制等操作)和命令模式(在一般模式下按:进入该模式,这时屏幕下面会变成冒号。有几个命令我后面会说)。
1、只要是想进入一般模式,就按Esc键
2、插入模式:要进入插入模式,要先进入一般模式下,然后可以按的有四个键i,a,o,r。i=insert表示插入(当前字符之)。a=add,表示添加(当前字符之插入)。o=other(line),表示另起一行输入。r=replac表示替换。四个字母大写与小写的意义又不同。详细的说明不作为总结。个人使用的时候很少用大写的功能,都是把光标移动到相应位置然后直接按小写字母进行输入。有用的大写字母是R,r表示替换单个字符,然后就又进入一般模式,而R表示一直替换,直到按Esc键。
3、一般模式下的文本操作:
1)光标的移动:左右下上hljk这没有什么说的,和方向键一样的功能,不过在使用过程中发现,这四个键也可以配合数字使用,如20l就表示向后移动20列,也就是身后移动20个字符,和20[空格]作用是一样的。 那么我要移动到第几行呢,那就是G这个行移动键了。这个键本身 表示移动到全文的最后一行。在前面加个数字就表示移动到第几行了。 gg表示移动到全文第一行。 那么在相应的行上,0就表示行的开头,$表示行末(在正规表示法中$表示结尾,这和shell是相通的)。
2)翻页:翻面功能可以用pagedown/up,也可以用Ctrl+f(forward,向前)/b(backward,向后翻面。
3)几个大写字母H(head,屏幕最上面)、M(middle,屏幕中间)L(last,屏幕最下面)。
4)查找用/,替换要给出区域(section),所以要进入命令模式下,如:12,50s/word1/word2/g(最后这个g表示global,全部替换),配合:set nu命令(命令模式下)很好用。又:1,$s/word1/word2/gc表示从第1行到最后一行(1,$s)进行替换,替换前进行确认(最后那个c表示confirm,确认。)
5)删除复制和粘贴:
删除当前字符,就是把当前字符叉掉,所有就是x。删除一行呢?dd表示删除当前行,你可以认为d表示delete,不过我老是把它想成decline,这个词本身表示下降,不过有个line在里面就理解成删除行了。d又可以配合其它的范围键就可以大范围删除了,比如12dd,dG,d1G,d0,d$,意思一看就明白。
复制用y,我不知道为什么用这个键,但是感觉yy有点偷懒的意思,确实有点儿YY。和d相似,参照上面一段。
粘贴:p=paste,粘贴。小写表示向后p,大写表示向前p。
6)u=undo就是撤销,Ctrl+r表示重复上一个动作,r=repeat
4、命令模式下的一些命令:
w=write,写入,亦即保存。q=quit,退出。:wq就是保存退出。还有一个!,表示强制,一般和q使用,不和w一起用,因为能不能定入终究是看你的权限够不够。:e!表示恢原始状态。这个e可以理解成erase,擦除所有痕迹,亦即变成原始的样子。为什么要加个!,因为只要是改过的文档,没保存之前系统建议你先保存而出现错误提示,加个!就强制还原了。
:w[filename],这就是另存为。:12,20w[filename]表示把12到20行另存为。:r[filename]读取(read)另一个文件的内容插入到光标后面,这个功能我很喜欢。:!command,暂离开vi进行其它作业,就是强制(!)执行command的意思。这个功能我也很喜欢。还有一个很实用的功能:set nu和:set nonu,显示和隐藏行号功能。nu=number,nonu=no number。另外在一般模式下换ZZ,表示:wq。

       好了,关于vi我就说这么多,其实如果大家习惯在vi,那就可以文本模式下进行编辑,不用启动桌面就可以进行维护工作了。在桌面是也是用终端写文件了,好方便,一直在终端下就行了,别的什么也不用开。对了,忘了说鸟哥的书了,书上说dd和ndd是删除列,其实是删除行。
       谢谢8楼的小17,题目已经改过来了。另外补充一下,搜索的情况下按n可以顺序查找下一个,N可以查找上一
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值