如果通過reattach-to-user-namespace
包裝推出的炮彈(我爲包裝的文檔中描述),他們的孩子將被連接到用戶引導命名空間,所以你不會有在您的個人呼叫中使用它(例如)pbcopy
和pbpaste
。
或者,您可以通過包裝器運行Vim的實例,以使其(及其子)訪問引導程序名稱空間。這樣,你應該可以使用*
寄存器(如果你有Vim 7.3編譯的+clipboard
功能,即幾乎任何版本的Vim除OS X之外的版本)。
reattach-to-user-namespace vim …
# use "* inside Vim to access the OS X clipboard.
如果你真的想避免運行的包裝,除了需要它(例如pbcopy
),那麼你可以使用Vim的system()
功能的最終處理。這也是你會怎麼一般一些內部對Vim的數據發送到任何(非交互式)外部命令:
:call system('reattach-to-user-namespace pbcopy', getreg(''))
你可能要打包這是一個新的命令(這樣就可以更容易地使用它有不同的寄存器):
command -bar -register Pbcopy call system('reattach-to-user-namespace pbcopy', getreg(<q-reg>))
這個新的命令可以這樣(參數是註冊名稱):
:Pbcopy "
:Pbcopy a
你可以走一步,並調用映射命令:
nnoremap <F3> :<C-u>execute 'Pbcopy ' . v:register<CR>
你會通過鍵入F3或使用「一個F3(即帶有寄存器前綴,就像任何其他使用寄存器的正常模式命令一樣)。
該命令應該添加到你的'〜/ .tmuxconf'中:不需要管道。我相當肯定''* y'在我的Mac上工作在tmux上。 – romainl
可能類似的帖子:http://stackoverflow.com/questions/12414745/send-echo-or-register-contents-to-pbcopy -mac-clipboard-on-mac-os-x/12415965 –
不是重複的文章,我正在嘗試輸出一個外部命令的Yank寄存器。這一次恰好發生,我想'pbcopy'。將來我會使用相同的命令來管道「紅寶石」。 – Jason