我之前在貼上大量文字進 Vim 的時候覺得有點慢,所以搜尋過如何更快速的貼上, 不過也只找到 paste mode 可以用 (應該是當時沒有打到重要的關鍵字)
paste mode 預設就有 toggle key 可以設定
" use '<leader>p' to toggle paste mode
set pastetoggle=<leader>p
或是手動用 :set paste 來進入 paste mode, :set nopaste 來離開 paste mode
今天終於找到了我想要的解法,直接從 system clipboard 拿資料, 而不是由 terminal 去慢慢模擬輸入 …
這邊要用到 Vim 裡的 register,
在 Vim 裡面對應到外面 Linux 的 clipboard 的 register 是 + ,
所以可以從這裡面快速的拿到資料
方法 1 : 在 insert mode 快速貼上
在 insert mode 裡面可以用 Ctrl+R 來 access Vim 的 register,
內容會直接輸入,所以可以使用 Ctrl+R + + 來快速的輸入 clipboard 裡的東西
方法 2 : 在 normal mode 快速貼上
在 normal mode 裡面可以用 " 來 access Vim 的 register,
所以可以使用 " + + + p 來快速的貼上 clipboard 裡的東西
方便起見,當然還是 map 到某個 key 上面,這樣就可以快速的使用了,
目前我是把自己之前用在 paste mode toggle 的 <leader>p map 成了 "+p ,
想說我如果想切到 paste mode 通常也就是我要從外面貼東西進來,
乾脆就直接換成這個快速貼上 ~
先使用一陣子看看,如果真的不習慣再換囉 ~
其他應用 - 從 Vim 裡複製到 system clipboard
在 visual mode 或是 visual block mode 裡面可以也可以用 " 來 access Vim 的 register,
所以可以先選取想要複製的區塊,
接著用 " + + + y 來複製資料到 clipboard 裡 ~~~
然後就可以在其他程式裡快樂的貼上了 ~ ya ~
其他 Vim registers
想知道其他更多 Vim 裡的 registers 的資料可以下 :reg ,
更多資訊可以 Vim 的 manual