2013-11-22 119 views
0

有沒有辦法在vim中爲Javascript文件禁用摺疊評論?foldmethod=syntax禁用vim中的摺疊評論

我用下面的摺疊代碼在我vimrc

if has("folding") 
    set foldenable 
    set foldopen=hor,search,tag,undo 
    set fillchars=diff:\ ,fold:\ ,vert:\ 

    function! JavaScriptFold() 
      setl foldmethod=syntax 
      setl foldlevelstart=1 
      syn region foldBraces start=/{/ end=/}/ transparent fold keepend extend 
    endfunction 
endif  

調用JavaScriptFold折以下代碼:

/** 
* Hello, this is a comment. 
*/ 
function hello() { 
    console.log('hello'); 
} 

到這一點:

+-- 3 lines: * 
+-- 3 lines: function hello() { 

我想它以得到這個摺疊:

/** 
* Hello, this is a comment. 
*/ 
+-- 3 lines: function hello() { 

我發現了約c_no_comment_fold通過this Stack Overflow question on C comment folding,但我找不到一個等效的Javascript。有沒有辦法做到這一點?

+0

哪個JavaScript語法文件,你用(默認?對於哪個Vim版本?) –

+0

我只想提出與Ingos相同的問題,如果設置了'fdm = syntax',則摺疊規則在語法文件中定義。檢查語法文件。 – Kent

+0

我正在使用[從這個插件的JavaScript語法文件](https://github.com/jelera/vim-javascript-syntax),並且我正在使用vim 7.3。 –

回答

2

可用的JavaScript語法插件處於不良狀態。你使用的是一個奇怪的(定義一個函數來啓用(一些)摺疊,默認情況下啓用註釋摺疊),並有未使用的配置變量(javaScript_fold,它什麼都不做)。

要禁用摺疊徵求意見,可以直接編輯腳本,並從syntax region javaScriptDocComment ...線取下fold關鍵字,或添加以下重新定義~/.vim/after/syntax/javascript.vim

syntax clear javaScriptDocComment 
syntax region javaScriptDocComment  matchgroup=javaScriptComment start="/\*\*\s*$" end="\*/" contains=javaScriptDocTags,javaScriptCommentTodo,@javaScriptHtml,@Spell 
+0

在語法插件中編輯'javaScriptDocComment'工作,但在'vimrc'中添加重定義不起作用。另外,'javaScript_fold'變量似乎與某種默認摺疊相關。它也被引用[這是關於摺疊的SO問題](http://stackoverflow.com/questions/4789605/how-do-i-enable-automatic-folds-in-vim)。 –

+0

'.vimrc'來源太早了,你需要使用'.vim/after/syntax'目錄! –

+0

哦,我錯過了你提到'after/syntax'。謝謝! –