修改VIM惡心的注釋自動格式化


我復制一段代碼,里面有// 只有一行,但是復制到vim中就下面全部都有//了。我要取消這個功能

 

vim ~/.vimrc

 set nu!
 "set formatoptions=croql 這句就是問題的一句話
 set formatoptions=tcpmM

 好像 還有問題,他會自動添加croql,不知道是在那個文件中添加的。我都在~/.vimrc添加的代碼了,為什么不放到最后執行呢??

 

其含義是什么呢?

 

選項 formatoptions 確定了跟文本格式化有關的基本選項,常用的數值有:

  • t:根據 textwidth 自動折行;
  • c:在(程序源代碼中的)注釋中自動折行,插入合適的注釋起始字符;
  • r:插入模式下在注釋中鍵入回車時,插入合適的注釋起始字符;
  • q:允許使用“gq”命令對注釋進行格式化;
  • n:識別編號列表,編號行的下一行的縮進由數字后的空白決定(與“2”沖突,需要“autoindent”);
  • 2:使用一段的第二行的縮進來格式化文本;
  • l:在當前行長度超過 textwidth 時,不自動重新格式化;
  • m:在多字節字符處可以折行,對中文特別有效(否則只在空白字符處折行);
  • M:在拼接兩行時(重新格式化,或者是手工使用“J”命令),如果前一行的結尾或后一行的開頭是多字節字符,則不插入空格,非常適合中文


上面提到的注釋,可以是 C/C++ 中的“//”和“/*”,也可以是郵件中引用原文使用的“>”等字符(具體由 comments
選項控制;參見“:help 'comments'”)。Vim
在遇到這些字符時,能夠相當智能地進行處理,足以完成日常編輯源代碼和郵件的需要。在使用一些處理純文本不夠強大的郵件客戶端時,我通常使用 Vim
編輯郵件(特別是英文郵件),然后把結果貼回到郵件編輯窗口中進行發送。
Vim 中 formatoptions 的缺省值是“tcq”,一般我會在 .vimrc 文件中加入一行“set formatoptions+=mM”來確保 Vim 能在中文字符之間折行而不要求空格的存在,並且在大部分情況下可以正確地處理中文重新格式化。

 

 

 

參考:

http://linux.chinaunix.net/techdoc/beginner/2009/08/12/1129794.shtml

http://vim.wikia.com/wiki/How_to_stop_auto_indenting

http://blog.chinaunix.net/uid-11278770-id-148575.html

http://if.ustc.edu.cn/~xbzhou/blog/archives/vimmanual/options.html

http://www.baidu.com/s?ie=UTF-8&wd=vim+formatoptions

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM