[主題]:
前面幾篇已經說明在tmux下如何使用mouse直接copy/paste。
這個方法不可或缺但也很多缺點:
1. 用起來慢(用起來會有點頓)
2. 要用到滑鼠(如果純鍵盤的方式,常常還是比手要移到滑鼠做操作還要快)
如果不想看基礎介紹,可以直接跳到[快速鍵設定]部份。
[基礎介紹]:
所以這邊介紹另外一種方法,此方法就是在Vim yank的資料直接可以copy出來用。
其實Vim也有提供直接copy到system clipboard的功能,你可以用以下的command檢查自己的Vim是否支援這個功能:
vim --version | grep clipboard
如果是 +clipboard就是支援,否則如果是-clipboard就是不支援。
如果在不支援的情況下,建議可以自己去抓最新版的vim。然後自己下以下的指令來enable clipboard的功能:
./configure --with-x --with-features=normal
make
make完就會自己裝完。(似乎不用make install也會裝上去...)
這時後再用 vim --version | grep clipboard檢查一次,應該就可以看到:
+clipboard +iconv +path_extra +toolbar
+eval +mouse_dec +startuptime +xterm_clipboard
這樣應該就是打開了。
這時候再進到vim裡面隨便打一段文字,然後select它,再按:
“+yy
然後這段文字就會被copy到 * register裡面(clipboard專用的register buffer),這時候可以用檢查:
:reg
就會看到* buffer裡面有你剛剛yank的文字。
然後再回到你桌面的browser或是其他GUI的編輯器按Ctrl+v,就可以把剛剛的內容貼上了。
let @* = @+<CR>
請看下面...
[快速鍵設定]:
接下來就可以map自己在vim的快速鍵:
vim ~/.vimrc
------------------------------------------------------------
:vmap <F2> "+yy:let @* = @+<CR>
[使用方法]:
這樣子以後只要在vim的select mode下,再按F2 就可以將內容存到 vim 的 *以及+ register buffer中。然後就可以在任何地方用滑鼠中鍵 or Ctrl+v 貼上。
不過正常人,應該還是比較習慣ctrl+v吧。所以如果有照:vmap <F2> "+yy:let @* = @+<CR> 這樣
設定,平時的使用方法就是:
1. 在vim的normal mode先按下V選擇自己想要的範圍。
2. 按下 F2 將所選範圍的資料copy到vim的+ and * register
3. 在你想要貼的地方按下 Ctrl + V or 滑鼠中鍵
[結論]:
上一篇我提供了一個tmux的copy/past方法,可以用滑鼠在任何地方(不一定是vim裡面)。
而在這篇我提供了一個vim的copy/past方法,copy的方式必須在vim裡面先yank而past的地方可以是任何地方(目前tmux裡面不行,可能需要一些技巧將* or + buffer的內容copy到tmux的buffer應該就可以了)。
沒有留言:
張貼留言