2011-08-07 37 views
3

問題是,使用X11剪貼板(通過「plus」寄存器)的舊式方法在Unity中不起作用。有沒有人遇到過這個問題?它是如何解決的?Vim在Ubuntu 11.04:使用Unity的剪貼板

+1

嘗試使用Ctrl-Shift-V進行粘貼,使用Ctrl-Shift-C進行復制。這是一個終端黑客,我認爲,不是vim黑客。 – tjameson

+0

是的,我知道。但是,創建將數據放入剪貼板的宏時,該方法無用。我需要處理這種情況。 –

+0

試試*(星)寄存器。 – tjameson

回答

5

該問題在GVim安裝後自行解決。然後「加號」寄存器就像它應該那樣工作。

+1

我用'vim-gnome'軟件包得到了GVim,並且工作正常。 – chrismar035

+0

同樣在這裏,安裝vim-gnome後可以使用'+'寄存器 – Piva

0

我不知道統一桌面,但我知道它是基於gnome庫。因此,如果您可以使用dbus與統一剪貼板進行交互,則可以考慮編寫一個使用dbus設置剪貼板內容的shell腳本。如果將映射指定給過濾器命令,該腳本可以接收來自vim的輸入。當然,如果您知道任何其他可以設置剪貼板內容的命令行實用程序,它的工作方式都是相似的。 我曾經有在.vimrc裏以下地圖舊DCOP和klipper程序(KDE的剪貼板),你可以自定義:

:vmap k :w! $HOME/.vimclip<CR>:silent execute "!dcop klipper klipper setClipboardContents \"$(cat $HOME/.vimclip)\" &>/dev/null &"<CR>:redraw!<CR>
:nmap z :silent execute "!dcop klipper klipper getClipboardContents > $HOME/.vimclip"<CR>:r $HOME/.vimclip<CR>:redraw!<CR>

例如在視覺模式下進行選擇後按k複製。請注意,它複製並過去行明智。

+0

感謝您的回答。我今天會在家嘗試。有趣的是,在工作機器上,我從之前的版本更新過,「加號」寄存器仍然有效。我認爲這是因爲舊的庫需要提供與系統中已安裝的舊軟件的兼容性。 –

+0

我無法檢查地圖,因爲我沒有使用KDE的系統。但我認爲這個想法是使用外部程序作爲Vim和Unity剪貼板之間的代理。不管怎樣,謝謝你! –

0

我以後再次遇到問題。必須說我在GNOME Terminal中使用vim,而不是也安裝了GVim。

有趣的是,加號寄存器在我的不同計算機上大約同時停止工作。

首先,我認爲它是一個錯誤,因爲圖形版本是像以前一樣安裝的。但最後我剛開始GVim並在那裏測試了加號寄存器。它正在工作。之後,註冊表也開始在終端上工作。

所以如果你再次遇到問題,當你已經安裝GVim,只需啓動它。這應該有所幫助。

1

即使您沒有安裝gvimxterm_clipboard啓用,您可以使用xsel來管理你的剪貼板(通過apt-get安裝)。

我希望我的腳本將幫助你:https://github.com/FUT/config-files/blob/master/vim-dotfiles/vim/settings/clipboard.vim

+0

謝謝。我會試試這個。 –

+0

您也可以將緩衝區內容寫入另一個程序的標準輸入 - 「:w!program」。特別是使用'xsel -b' - ':w!xsel -b'將內容複製到剪貼板時,可以通過按_Ctrl + V_將內容粘貼到其他位置,這非常有用。 –

1

用途:
sudo apt-get install vim-gtk
這將安裝VIM剪貼板支持。
像以前一樣運行:
vim