2012-12-08 42 views
1

代碼硬包裝。我已經配置Vim自動(在我鍵入的時候)在80列上重寫長評論。效果很好。但是,它似乎沒有自動換行代碼。我想加入set formatoptions+=t(目前我有set formatoptions=c,r,q,a,n)會做的伎倆,但它不。另外,在Vim腳本中,如果由於硬包裝導致需要續行時,Vim可以自動執行反向斜槓\。那麼有沒有辦法實現代碼和這種高級功能的硬包裝?Vim:代碼硬包裝和Vim腳本中的高級縮進/對齊

高級縮進/對齊。我喜歡使用gg=G - 我甚至將它作爲寫入文件的前置附件。我已啓用cindent。現在我不知道是否有可能寫indentexpr或可能調整一些其他變量來實現Vim腳本代碼如下,例如:

" Before gg=G 
let g:SuperTabNoCompleteAfter = ['^', '\s', ',', '(', ')', '[', ']', '{', 
    \'}', '<', '>', '''', '"'] 

" After gg=G 
let g:SuperTabNoCompleteAfter = ['^', '\s', ',', '(', ')', '[', ']', '{', 
           \'}', '<', '>', '''', '"'] 

我嘗試添加vim.vim文件到~/.vim/after/ftplugin/具有以下內容:

setlocal indentexpr=IndentExpression() 

fun IndentExpression() 
    let indent = cindent(v:lnum) 
    let match = matchstr(getline(v:lnum - 1), '^\s*\S\+\s\+\S\+\s*=\s*\[\ze.*$') 

    if !empty(match) 
    let indent = len(match) 
    endif 

    return indent 
endf 

但是我運氣不好。

回答

1

關於'formatoptions':當您有a在那裏時,不需要t;前者會在輸入時自動換行,所以當達到文本寬度時(後者會這樣做),換行符會發生,無論如何。造成問題的原因是c,因爲這會將自動格式限制爲註釋。 CP。 :help fo-table

a自動格式化段落。每次插入文本或刪除該段落將被重新格式化。請參閱|自動格式|。 當'c'標誌存在時,這隻會發生在已識別的 註釋中。

因此,一個:set fo-=c應該做的伎倆。

+0

不幸的是,這是行不通的。 –