vim 貼上 取消縮排 set noai

2021-06-21 03:49:15 字數 1438 閱讀 1291

vim 作為最好用的文字編輯器之一,使用vim來編文件,寫**實在是很愜意的事情。每當學會了vim的乙個新功能,就會很大地提高工作效率。有人使用vim幾 十年,還沒有完全掌握vim的功能,這也說明了vim的強大。而這樣何嘗不是一件好事呢,只要有的學習,就有的提高。

最近使用vim來寫部落格,發現在vim中貼上python**後,縮排就全亂了。仔細研究了以下,原來是自動縮排的緣故,於是做如下設定:

:set noai nosi
取消了自動縮排和智慧型縮排,這樣貼上就不會錯行了。但在有的vim中不行,還是排版錯亂。

後來發現了更好用的設定:

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

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

怪不得之前只設定noai和nosi不行,原來與這麼多因素有關!

但這樣還是比較麻煩的,每次要貼上的話,先set paste,然後貼上,然後再set nopaste。有沒有更方便的呢?你可能想到了,使用鍵盤對映呀,對。我們可以這樣設定::

:map :set paste:map :set nopaste
這樣在貼上前按f10鍵啟動paste模式,貼上後按f11取消paste模式即可。其實,paste有乙個切換paste開關的選項,這就是pastetoggle。通過它可以繫結快捷鍵來啟用/取消 paste模式。比如::

:set pastetoggle=
這樣減少了乙個快捷鍵的占用,使用起來也更方便一些。

但,這是最方便的嗎?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

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

vim中貼上資料的時候如何取消自動縮排

vim中在貼上剪貼簿中的資料時會自動增加縮排,這對python這種對縮排要求嚴格的語言來說簡直是惡夢。如何讓它不縮排,保持原格式呢?答案就是paste模式。在貼上資料之前,輸入下面指定開啟paste模式 set paste貼上完畢後,輸入下面指定關閉paste模式 set nopaste每次都需要輸...

vim 檢視選項及貼上文字時防止多餘縮排

在 vim 中檢視選項是否開啟或選項的值是什麼?set option?option表示選項名稱,比如 set showcmd?set all 檢視所有選項貼上文字時怎麼防止多餘的縮排?比如一段正確的 python 如下 filename test.py for i in range 5 print ...

vim自動縮排

1 配置檔案的位置 在目錄 etc 下面,有個名為 vimrc 的檔案,這是系統中公共的 vim配置檔案,對所有使用者都有效。而在每個使用者的主目錄下,都可以自己建立私有的配置檔案,命名為 vimrc 例如,root 目錄下,通常已經存在乙個 vimrc 檔案。2 設定語法高亮顯示 1 開啟 vim...