讓vim支援系統剪貼簿

2puT發表於2016-09-15
1. 在vim裡面寫原創文章,或者轉帖自己看到的經典文章;
2. 在vim裡面寫好之後,排好版,然後,快捷鍵操作:gg, shift+V, shift + G, 
"+y,解釋:"+y是把選中內容複製到系統剪下板裡
3. ctrl + M 開啟opera mail,貼上之;
4. 寫好主題,直接傳送到我的部落格關聯郵箱;

ok, 一篇文章完成了。

所有的剪下、複製、貼上操作都在vim暫存器+和系統剪下貼上板之間切換完成。vim的暫存器+是和系統剪下板關聯的,即:
"+y 複製到系統剪下板
"+p 把系統貼上板裡的內容貼上到vim


無論是vim內部抑或外部的複製([y]ank)、刪除([d]elete)、貼上([p]ut),在vim中都是藉助registers(暫存器)實現的,vim共有9類暫存器:
無名(unnamed)暫存器:"",快取最後一次操作內容;
數字(numbered)暫存器:"0 - "9,快取最近操作內容,複製與刪除有別;
行內刪除(small delete)暫存器:"-,快取行內刪除內容;
具名(named)暫存器:"a - "z或"A - "Z,指定時可用;
只讀(read-only)暫存器:":, "., "%, "#,分別快取最近命令、最近插入文字、當前檔名、當前交替檔名;
表示式(expression)暫存器:"=,只讀,用於執行表示式命令;
選擇及拖拽(selection and drop)暫存器:"*, "+, "~,存取GUI選擇文字,可用於與外部應用互動,使用前提為系統剪下板(clipboard)可用;
黑洞(black hole)暫存器:"_,不快取操作內容(乾淨刪除);
模式暫存器(last search pattern):"/,快取最近的搜尋模式。

上面的說明為簡要概述,並不完全準確,詳細說明須參考手冊:1 :help copy-move


無圖形介面的vi或vim下可用的暫存器只包括{a-zA-Z0-9.%#:-"},顯然,這裡面沒有包含上面提到的"*或者"+等選擇及拖拽存器。

由此可見,實現vim與外部應用相互複製、貼上的關鍵在於系統剪下板對於vim是否可用。檢視vim剪下板是否可用的命令為vim --version,
對於非GUI版本的vim,剪下板是不可用的,解決方案很簡單,安裝一下就是了:
sudo apt-get install gvim

ubuntu 和mint預設安裝的vim是不支援系統剪下、貼上版的,需要執行以下安裝:
sudo apt-get install vim-gnome

相關文章