2011-01-25 77 views

回答

126

要允許基於語法摺疊加入類似下面你.vimrc

set foldmethod=syntax 
set foldlevelstart=1 

let javaScript_fold=1   " JavaScript 
let perl_fold=1    " Perl 
let php_folding=1    " PHP 
let r_syntax_folding=1  " R 
let ruby_fold=1    " Ruby 
let sh_fold_enabled=1   " sh 
let vimsyn_folding='af'  " Vim script 
let xml_syntax_folding=1  " XML 

基於語法的摺疊在位於$ VIM /語法語言的語法文件中定義。但是有些語言的語法文件沒有內置摺疊規則。例如Python。對於這些語言,您需要從http://vim.sf.net下載摺疊的東西。否則,您將需要使用基於縮進的摺疊。要做到這一點,你有效地將可能要添加以下到您的.vimrc文件:

set foldmethod=indent 
set foldnestmax=2 

其他各種摺疊式的

共有6種褶皺:

manual   manually define folds 
indent   more indent means a higher fold level 
expr   specify an expression to define folds 
syntax   folds defined by syntax highlighting 
diff   folds for unchanged text 
marker   folds defined by markers in the text 

我個人只使用語法摺疊。通常我只想摺疊該方法,而不是摺疊每個縮進級別。在工作中不一致的縮進和奇怪格式的遺留代碼經常使縮進摺疊變得困難或不可能。對文檔添加標記是很乏味的,而不使用Vim的人在編輯文檔時不會對它們進行維護。手動摺疊很好地工作,直到有人在源代碼管理中編輯你的代碼,並且你所有的摺疊現在都在錯誤的地方。

更多閱讀

  1. :help fold-methods學習的不同摺疊方法的細節。
  2. 請參閱:help folding以瞭解操作摺疊的鍵盤命令。
  3. 請參閱:help folds以獲取整個摺疊主題的幫助。
+8

呃......那很快。 – 2011-01-25 03:42:49

+8

您是否真的在發佈的問題的一分鐘內鍵入了所有這些內容? +1,清晰,細節和速度! – Cascabel 2011-01-25 03:54:49

3

JavaScript摺疊對我也不起作用。我發現當我做了設置語法= javaScript(與大寫S),它突然工作。

1

在Vim的新版本中啓用摺疊的方式已經改變了(我使用的是vim 7.4)。現在您應該創建文件~/.vim/ftplugin/javascript.vim(在Linux上)並添加您的代碼摺疊指令,如Eric Johnson的答案中所述。文件類型檢測和加載插件的具體文件類型必須通過把它放入你的.vimrc

filetype plugin on