2010-12-01 27 views
3

當鍵入javascript對象文字,如:如何停止VIM移動javascript對象鍵列0

foo = { 
    bar: baz 
}; 

VIM認爲「欄:」是指C-風格的標籤並將其移動到0

我該如何解決這個問題?

+0

我認爲這是用':`用於交換機的方式。它將它移動到第0列。它不會顯示爲簡單的結構,但僅適用於更復雜的結構,我發現(有時它似乎不會發生......就像現在當我嘗試重現它!)。不管它是什麼,但是我也爲它感到惱火,並且學會了與之共處......希望有人對此有一個答案:-) – 2010-12-01 05:13:45

回答

3

嘗試:set cinkeys-=:

標籤壓痕不能被cinoptions控制。引述:help indent

Vim把一個行1列,如果:

  • 它以 '#'(預處理指令),並且 'cinkeys' 包含 '#'。
  • 它以標籤(關鍵字後跟「:」,除「case」和 「default」)開頭。
  • 任何縮進組合都會導致該行縮進小於0 。

(重點煤礦)

然而,cinkeys指定哪個鍵在插入模式觸發縮進。通過從cinkeys中刪除:,vim將不再重新插入:

但請注意,通過=將手動重新縮進仍然會破壞您的佈局。