旅途

如果想飞得高,就该把地平线忘掉

VI复制指令 不指定

yy  复制游标所在行整行。或大写一个 Y。

2yy 或 y2y  复制两行。ㄟ,请举一反三好不好!:-)

y^  复制至行首,或 y0。不含光标所在处字符。

y$  复制至行尾。含光标所在处字符。

yw  复制一个 word。

y2w 复制两个字。

yG  复制至档尾。

y1G 复制至档首。

p   小写 p 代表贴至光标后(下)。

P   大写 P 代表贴至光标前(上)。



·         整行的复制,按 p 或 P 时是插入式的贴在下(上)一行。非整行的复制则是贴在游标所在处之后(前)。

"ayy  将本行文字复制到 a 缓冲区

·         a 可为 26 个英文字母中的一个,如果是小写的话,原先的内容会被清掉,如果是大写的话是 append 的作用,会把内容附加到原先内容之后。

·         " 是 Enter 键隔壁的那一个同上符号(ditto marks)。

"ap  将 a 缓冲区的内容贴上。

·         缓冲区的术语在 vim 称为 registers,vim 扩充了相当多的功能,有兴趣深入的朋友请 :h registers。您用 d、c、s、x、y 等指令改变或删除的内容都是放在 registers 中的。例如:您用 dd 删除的一行,也是可以使用 p 来贴上的。只要是在缓冲区的内容都可以使用 p 来贴上,不是一定要 y 起来的内容才能用 p。因此您认为 p 是 paste 也可以,认为是 put 可能较正确。

5"ayy  复制五行内容至 a 缓冲区。

5"Ayy  再复制五行附在 a 内容之后,现在 a 中有十行内容了!

·         ㄟ!不要我一直用 a 您就认为只有 a 可以用喔。26 个英文字母都可以的,交叉运用下,您会发觉 vi(m) 肚量不小。

·         问题来了!忘记谁是谁的时候怎么办? :reg(冒号命令)就会列出所有 registers 的代号及内容。您现在就试着按看看。咦!怎么还有数目字、特殊符号的缓冲区,原来您刚刚删除(复制)的内容就预设放在 " 这个缓冲区,然后依序是 0,1,2,...9。也就是说您按 p 不加什么的话,是取出 " 缓冲区的内容的。% 指的是目前编辑的档案,# 指的是前一次编辑的档案。还有其它的呀!因为没什么重要,就请 :h registers 吧!registers 有个 "s" 结尾,不要搞错了,而且 Tab 的补全键 vim 也支持的,也就是说您键入 :h regi 再按 Tab 键,vim 就会帮您补全,按了 Tab 后发现不是您要的,那就继续按,总会出现您要的。:-)

·         Tab 补全的功能,elvis 也有,但叫出 registers 列表的命令则没有,您得自行记忆在您的脑袋瓜子里。而且 elvis 的补全能力并没 vim 强。



另外,按下v键,可以进入可视模式,这个时候可以更自由更灵活的选取要复制的段落,区块了.
VI是越用越顺手了.
想过学Emacs,怎么说是GNU出品,
和gcc还有gdb很好的集成还是很有诱惑力的,不过也确实太过复杂了,先学好VI了,
其实VI还是很好用的.
我是越来越喜欢它了:)
Tags: ,

posted on 2009-09-17 23:11 旅途 阅读(868) 评论(0)  编辑 收藏 引用 所属分类: Linux Shell


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理