您的位置:首页 > 其它

VIM 复制黏贴

2011-06-19 20:02 267 查看
VIM的复制黏贴老是影响我的速度

(一)

正在学习使用vim
,前一阵想学linux,然后突然发现vim
是个好东西,学习使用,今天发现,无法使用ctrl+c/ctrl+v来跟系统其它应用之间做复制
粘贴,非常不爽,搜了一下,发现很多人有写这个问题,试了几个,觉得这个最好,转帖过来收藏。

原文地址:http://lsong17.spaces.live.com/blog/cns!556C21919D77FB59!603.entry

内容:

vim
这么久 了,始终也不知道怎么在vim
中使用系统粘贴板,通常要在网上复制
一段代码都是先gedit打开文件,中键粘贴后关闭,然后再用vim
打开编辑,真的不 爽;上次论坛上有人问到了怎么在vim
中使用系统粘贴板,印象里回复很多,有好几页的回复却没有解决问题,今天实在受不了了又在网上找办法,竟意外地找到 了,贴出来分享一下。

如果只是想使用系统粘贴板的话直接在输入模式按Shift+Inset(粘贴)就可以了,下面讲一下vim
的粘贴板的基础知识,有兴趣的可以看看,应该会有所收获的。

vim
帮助文档里与粘贴板有关的内容如下:

vim
有12个粘贴板,分别是0、1、2、...、9、a、“、+;用:reg命令可以查看各个粘贴板里的内容。在vim
中简单用y只是复制
到“(双引号)粘贴板里,同样用p粘贴的也是这个粘贴板里的内容;

要将vim
的内容复制
到某个粘贴板,需要退出编辑模式,进入正常模式后,选择要复制
的内容,然后按"Ny(注意带引号)完成复制
,其中N为粘贴板号(注意是按一下双引号然后按粘贴板号最后按y),例如要把内容复制
到粘贴板a,选中内容后按"ay就可以了,有两点需要说明一下:

“号粘贴板(临时粘贴板)比较特殊,直接按y就复制
到这个粘贴板中了,直接按p就粘贴这个粘贴板中的内容;

+号粘贴板是系统粘贴板,用"+y将内容复制
到该粘贴板后可以使用Ctrl+V将其粘贴到其他文档(如firefox、gedit)中,同理,要把在其他地方用Ctrl+C或右键复制
的内容复制
vim
中,需要在正常模式下按"+p;

要将vim
某个粘贴板里的内容粘贴进来,需要退出编辑模式,在正常模式按"Np,其中N为粘贴板号,如上所述,可以按"5p将5号粘贴板里的内容粘贴进来,也可以按"+p将系统全局粘贴板里的内容粘贴进来。

注意:在我这里,只有vim.gtk或vim.gnome才能使用系统全局粘贴板,默认的vim.basic看不到+号寄存器。安装vim.gnome使用apt-get install vim-gnome,然后vim自动会链接到vim.gnome。

(二)

yy  複製游標所在行整行。或大寫一個 Y。

2yy 或 y2y  複製兩行。ㄟ,請舉一反三好不好!:-)

y^  複製至行首,或 y0。不含游標所在處字元。

y$  複製至行尾。含游標所在處字元。

yw  複製一個 word。

y2w 複製兩個字。

yG  複製至檔尾。

y1G 複製至檔首。

p   小寫 p 代表貼至游標後(下)。

P   大寫 P 代表貼至游標前(上)。

整行的複製,按 p 或 P 時是插入式的貼在下(上)一行。非整行的複製則是貼在游標所在處之後(前)。

[code]"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还是很好用的.

我是越来越喜欢它了:)

[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: