2014-05-24 73 views
2

我想創建一個快捷方式來追加到寄存器「+」(所​​以我可以在Vim之外做一個系統粘貼)。例如,我想做"+yy複製一行,然後"=yy將另一行追加到'+'寄存器。Vim:追加到特殊寄存器(例如+)

我找到了 VIM: how to append yanked text to unnamed register 我覺得應該很容易得到我想要的,但我不明白任何Vim腳本。

+1

也許[this](http://vim.1045645.n5.nabble.com/how-to-copy-non-continuous-matched-lines-int-clipboard-td1164018.html#a1164021)將幫助,直到真正的專家出現! – jahroy

回答

1

你可以選擇任意的寄存器,說z,給你做追加舞蹈,"zyy然後"Zyy,並且只爲「出口」是註冊創建一個快捷方式:

nnoremap <silent> <key> :<C-u>call setreg('+', getreg('z', 1), getregtype('z'))<CR> 

(編輯按ZYX的)

+1

不要使用':let'來複制寄存器內容:這裏有'setr​​eg()'。要將'z'複製到'+',您需要'setr​​eg('+',getreg('z',1,1),getregtype('z'))'。理由:1.':let'不保存寄存器類型(是的,即使你使用系統寄存器,Vim也會保存寄存器類型)2.'@ c'將NULs轉換爲換行符。 – ZyX