2016-01-19 28 views
1

我在Windows上使用Vim 7.4,並且Vim的Graphviz點文件縮進似乎是半工半工。vim中的半工作Graphviz點行爲

如果我unindent整個文件,突出顯示所有,並使用=,一切縮進罰款。但是,當我輸入時,一切都會自動進入最左邊的列(沒有縮進)。

下面是一個示例文件,以防萬一我打字不對勁:

digraph "test" { 
    "node1" -> "node2"; 
    "node2" -> "node3"; 
} 

點文件的語法高亮顯示工作正常,在其他文件(Java,XML等)不縮進。

回答

1

這可能是因爲您沒有設置smartindentcindent

檢查的

:set smartindent? 
:set cindent? 

輸出。如果它們分別返回nosmartindentnocindent,然後加入

set smartindent 

(或set cindent)會解決這個問題。

:h smartindent

開始一個新行時使用智能自動縮進。適用於類似C的 程序,但也可用於其他語言。


  1. 那麼,爲什麼正在爲其它文件類型縮進?這是因爲這些文件類型(編輯java文件時嘗試:verb set indentexpr?)設置了特殊函數來告訴vim如何縮進給定線indentexpr:h indentexpr

創建一個新的線時,將使用,對於| = |運算符和 按照'indentkeys'選項指定的插入模式。 當此選項不爲空時,它將否決'cindent'和 'smartindent'的縮進。

  1. 爲什麼縮進與=一起使用?從:h =

過濾{運動}通過與 'equalprg' 選項指定的外部程序 線。當'equalprg' 選項爲空時(這是默認設置),請使用 內部格式化函數| C-indenting |和 |'lisp'|。但是當'indentexpr'不爲空時,將會使用 。

+0

你明白了。很好的答案,謝謝! – David