亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

vim復制粘貼解密

系統 1915 0

Vim作為最好用的文本編輯器之一,使用vim來編文檔,寫代碼實在是很愜意的事情。每當學會了vim的一個新功能,就會很大地提高工作效率。有人使用vim幾十年,還沒有完全掌握vim的功能,這也說明了vim的強大。而這樣何嘗不是一件好事呢,只要有的學習,就有的提高。 最近使用Vim來寫博客,發現在Vim中粘貼Python代碼后,縮進就全亂了。仔細研究了以下,原來是自動縮進的緣故,于是做如下設置:

    :set noai nosi
  

取消了自動縮進和智能縮進,這樣粘貼就不會錯行了。但在有的vim中不行,還是排版錯亂。 后來發現了更好用的設置:

    :set paste
  

進入paste模式以后,可以在插入模式下粘貼內容,不會有任何變形。這個真是灰常好用,情不自禁看了一下幫助,發現它做了這么多事:

  • textwidth設置為0
  • wrapmargin設置為0
  • set noai
  • set nosi
  • softtabstop設置為0
  • revins重置
  • ruler重置
  • showmatch重置
  • formatoptions使用空值

下面的選項值不變,但卻被禁用:

  • lisp
  • indentexpr
  • cindent

怪不得之前只設置noai和nosi不行,原來與這么多因素有關! 但這樣還是比較麻煩的,每次要粘貼的話,先set paste,然后粘貼,然后再set nopaste。有沒有更方便的呢?你可能想到了,使用鍵盤映射呀,對。我們可以這樣設置::

    :map <F10> :set paste<CR>

:map <F11> :set nopaste<CR>
  

這樣在粘貼前按F10鍵啟動paste模式,粘貼后按F11取消paste模式即可。其實,paste有一個切換paste開關的選項,這就是pastetoggle。通過它可以綁定快捷鍵來激活/取消 paste模式。比如::

    :set pastetoggle=<F11>
  

這樣減少了一個快捷鍵的占用,使用起來也更方便一些。 但,這是最方便的嗎?Vimer們對高效的追求永無止境。還有其他更好地方法嗎? 你可能想到了,vim寄存器。對,使用vim寄存器 "+p 粘貼即可。根本不用考慮是否自動縮進,是否paste模式,直接原文傳遞!:

    "+p
  

要說vim寄存器,就要從vim文件間的復制粘貼說起。 Vim中,若要復制當前行,普通模式下按 yy 即可,在要粘貼的地方按 p 。這是vim將復制內容保存到了自己的寄存器中的緣故。如果在其他地方執行yy,新的內容將覆蓋掉原寄存器中內容。如果想保存原寄存器中內容而同時增加新的內容呢?這時就要在yy前增加標簽了。標簽以雙引號開始,跟著的是標簽名稱,可以是數字0-9,也可以是26個字母,然后就是復制操作,這樣就把復制內容保存到該標簽寄存器里。通過下面命令顯示所有寄存器內容::

    :reg
  

其中注意兩個特殊的寄存器:"* 和 "+。這兩個寄存器是和系統相通的,前者關聯系統選擇緩沖區,后者關聯系統剪切板。通過它們可以和其他程序進行數據交換。

備注:

若寄存器列表里無"* 或 "+ 寄存器,則可能是由于沒有安裝vim的圖形界面所致。Debian/Ubuntu下可以通過安裝vim-gnome解決。

        $ sudo apt-get install vim-gnome
      

選擇緩沖區和系統剪切板啥子區別?讓我們繼續研究。

選擇緩沖區和剪切板

不同于Windows,Linux系統里存在兩個剪切板:一個叫做選擇緩沖區(X11 selection buffer),另一個才是剪切板(clipboard)。 選擇緩沖區是實時的,當使用鼠標或鍵盤選擇內容時,內容已經存在于選擇緩沖區了,這或許就是選擇緩沖區的由來吧。 使用下面的命令查看選擇緩沖區的內容::
      $ xclip -out
    
如果沒有xclip命令,Debian/Ubuntu下可以通過如下命令安裝::
      $ sudo apt-get install xclip
    
可以使用鼠標中鍵或鍵入Shift+Insert來粘貼選擇緩沖區的內容。但對于有些GUI程序,比如gedit,只能通過鼠標中鍵調用選擇緩沖區的內容,使用Shift+Insert的話,調用的是剪切板的內容。 剪切板和Windows的剪切板類似,在選擇文字內容后,執行Ctrl + c或在菜單里選擇‘復制’的話,這時內容才存放到剪切板里。 使用下面的命令查看剪切板的內容::
      $ xclip -out -sel clipboard
    
而使用剪切板的內容,則是Ctrl+v。 但在有些情況下,比如gnome-terminal,不能直接使用Ctrl+c,Ctrl+v,這時就要用Shift+Ctrl+c,Shift+Ctrl+v代替。

原格式粘貼

好了,了解了選擇緩沖區和剪切板,下面就是實現保留格式粘貼的完美解決方案:
  • 方案一:
  1. 選擇文本內容
  2. vim普通模式下按 "*p 將選擇緩沖區中內容粘貼進來
  • 方案二:
  1. 復制文件內容
  2. vim普通模式下按 "+ p 將剪切板內容粘貼進來
這時,如果要復制的內容也是vim編輯器中的內容,那么如何復制才更方便呢?

vim中的復制

vim有一個可視模式(Visual Mode),在此模式下可以選擇區域。可以在普通模式下鍵入v進入可視模式,也可以個性化一點,鍵入V進入行可視模式,或者鍵入Ctrl+v進入列可視模式。這時移動光標就可以選擇內容了。注意這時被選內容已經實時保存于選擇緩沖區了,當然你也可以鍵入"+y將此內容也保存到剪切板里,或者"ay將內容保存到標簽為a的寄存器中。但要知道,只有前兩個中的內容可以在其他程序中使用,而a寄存器中的內容只能在該vim編輯器內使用。 也可以通過鼠標來復制。這里首先要打開鼠標模式。:
      :set mouse=a
    
這樣在普通模式下可以直接使用鼠標選擇區域復制到選擇緩沖區。但這種情況下不能復制到剪切板。 若要使用鼠標復制內容到剪切板,則需要做如下設置::
      :set mouse=v
    
這種情況下,除了可以像上面一樣直接使用鼠標選擇區域復制到選擇緩沖區以外,還可以在右鍵菜單中選擇“復制”來保存到剪切板里。但新問題又出來了。若顯示行號,也會將行號一并選擇。你會想到,這好辦呀,如果不需要行號的話,在復制前,先執行set nonu來取消行號顯示唄。 其實沒必要這樣,如果不需要復制行號的話,用在可視模式下用鍵盤來選擇不就可以嗎? 并且,從上面的討論,我們不難得出,使用選擇緩沖區比使用剪切板要方便的多,可以節省很多步驟。 所以,最終我們得到了vim文件間復制粘貼的完美方案,文件傳輸的中轉使用選擇緩沖區。

vim文件間復制粘貼完美方案

  1. 在~/.vimrc中增加如下一行::

              set mouse=v
            
  2. 復制內容到選擇緩沖區。

    • 帶行號時,使用鼠標選擇內容區域。
    • 不要行號,使用 "*yny 復制n行或可視模式下選擇。
  3. 將選擇緩沖區中內容粘貼到vim文件:普通模式下按 "*p 。


補充: 設置vim中默認使用選擇緩沖區寄存器 "*:
      set clipboard = unnamed
    
則可以直接通過y,p和系統選擇緩沖區進行數據交換。
?
好文必轉

vim復制粘貼解密


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲精品αv一区二区三区 亚洲精品爱爱久久 | 色噜噜亚洲精品中文字幕 | 美女黄色免费在线观看 | 日韩伦理一区 | 精品久久久久久18免费看 | 婷婷亚洲五月色综合 | 午夜精品久久久久久久99热浪潮 | 亚洲激情小视频 | 久久99久久99精品免观看不卡 | 国产伦精品一区二区三区视频小说 | 久久综合九色综合97_ 久久久 | 久久精品国产91久久麻豆自制 | 欧美大交乱xxxxbbbb | 欧美综合图区 | 四虎影视永久地址www成人 | 欧美国产一区二区二区 | 久久日本精品99久久久久 | 伊人久操| 国内精品久久久久香蕉 | 欧美日韩一区二区高清免费视频 | 久久ww精品w免费人成 | 久久精品国产三级不卡 | 久久久久久午夜精品 | 99热久久精品国 | 亚洲精品国产v片在线观看 亚洲精品国产啊女成拍色拍 | 99热最新网站 | 七色永久性tv网站免费看 | 美女在线国产 | 中文字幕在线观看 | 精品一级毛片 | 久久国产美女免费观看精品 | 久久久亚洲 | 亚洲综合极品香蕉久久网 | 国产福利在线视频 | 91亚洲精品久久91综合 | 国产成人a v在线影院 | 天天干天天玩天天操 | 中文字幕国产视频 | 国内精品久久久久久影院网站小说 | 亚洲精品美女久久久久 | 久热影视 |