在LINUX終端和VIM下複製粘貼

來源:互聯網
上載者:User

標籤:

http://www.tinylab.org/linux-terminal-and-paste-copy-under-vim/

 

在GUI介面下,我們可以很自由的複製粘貼。但是在字元介面下,我們不得不用滑鼠選定,然後單擊右健,選擇複製,再到別處去Ctrl-v。並且對於 那些用沒有配置過的VIM來說,VIM的粘貼板和X Window的粘貼板還不共用。這在碼字的過程中,感覺非常不流暢。下面,我們就嘗試解決這個問題。

首先我們得讓VIM和X Window共用一個粘貼板,這樣我們就可以像在GUI介面下一樣去複製粘貼了。我們可以在自己的VIM設定檔.vimrc裡添加這麼一行:

set clipboard=unamedplus
1 set clipboard=unamedplus

這 行配置的意思是讓VIM把$$’+‘$$這個寄存器(粘貼板)設定為平常yank和p操作的預設粘貼板,而$$’+‘$$寄存器在VIM裡就是代表X Window的粘貼板。這樣我們就讓VIM和X Window共用一個粘貼板,再也不用擔心VIM裡複製的東西,不能在VIM外去粘貼。

但是這裡要注意,如果你下載的是基本VIM的話,按照上面的設定是無法實現預期的效果的。因為VIM基本版預設不支援X Window的粘貼板,所以你得安裝VIM完全版,或者巨型版。你可以執行如下命令去判斷你的VIM是否支援X Window的粘貼板:

vim --version | grep clipboard
1 vim --version | grep clipboard

如果clipboard和xterm_clipboard帶有加號,那麼就表示支援這個特性,減號就表示不支援。

在Ubuntu下面,你應該安裝vim-gnome,而在fedora下面,你需要安裝vim-X11。

這都做完後,你會發現VIM在每次退出的時候都會清空粘貼板,而這並不是我們想要的。我們可以在VIM設定檔裡添加下面一行配置,來讓VIM在退出的時候,保留粘貼板中的內容:

autocmd VimLeave * call system("xsel -ib", getreg(‘+‘))
1 autocmd VimLeave * call system("xsel -ib", getreg(‘+‘))

這個配置其實就是在VIM每次退出的時候,運行xsel命令來把’+‘寄存器中的內容儲存到系統粘貼板中,所以這個配置要求你安裝xsel。

現在,假設我們從VIM中yank一些內容,然後退出VIM,粘貼到終端命令列上,這個時候我們可能還是得拿起滑鼠,右鍵粘貼。其實在大多數terminal中都有一個快速鍵:Ctrl-Shift-v,把內容粘貼到命令列中。這樣我們就解決了在終端下面粘貼的問題。

可能有人會問,在終端下面複製怎麼辦?這個,暫時還沒有找到很滿意的解決方案。

在LINUX終端和VIM下複製粘貼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.