1. 程式人生 > >vim粘貼取消自動縮進

vim粘貼取消自動縮進

exp href 占用 gin options 映射 text ons 提高工作效率

Vim 復制粘貼探秘

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> 

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

轉自:https://www.cnblogs.com/end/archive/2012/06/01/2531147.html

vim粘貼取消自動縮進