2011-09-07 9 views
6

私はVimを使ってErlangコードを編集しています。私は、彼らがにいるブラケット範囲によってErlangのコードをインデントするために(ほとんどのErlangのプログラマがこれを行う)に慣れ例えば、Cは、多くの場合、中括弧内の一つのタブ幅をインデントされています。Vimのブラケット列インデックスによるコードのインデント?

int main(void) { 
    printf("hello, world\n"); 
    return 0; 
} 

Erlangで、それはです

?assertError({bad_options, [{foo, bar}, 
          bad_option]}, 
      lhttpc:request("http://localhost/", get, [], <<>>, 1000, 
          [bad_option, {foo, bar}])). 

(例は上記の主観的美しさによらず、ポイントを全体取得するためにインデントされます):ブラケットが開始列に基づいてインデントするのが一般的。ブロックが新しい行に開始された場合

タブ幅を使用することになります。私の.vimrcの

?assertError(
    {bad_options, [{foo, bar}, bad_option]}, 
    lhttpc:request(
     "http://localhost/", get, [], <<>>, 1000, 
     [bad_option, {foo, bar}] 
    ) 
). 

関連部品:

set expandtab " Spaces for tabs " 
set tabstop=4 " Tab width 4 " 
set shiftwidth=4 
set smarttab 
set autoindent 

" Enable filetype plugin " 
filetype plugin on 
filetype indent on 

をVimの中で、このインデントを実行する方法はあります、そうなら、どのように?

+0

https://github.com/jimenezrick/vimerlを試しましたか? – W55tKQbuRu28Q4xv

+0

私は実際には 'vimerl'を使用しており、最新バージョンに更新されていることに気付きました。しかし、それはまだ1(または2、時には不思議なほど十分な)タブ幅にインデントされます。 –

答えて

4

代わりに「静的インデント」の「文脈を意識インデント」を実装しvimerlのフォークがあります:https://github.com/aszlig/vimerl.git

が動作しているようですので、私はしばらくの間、それと転がします。

+0

こんにちは、@ Adam Lindberg。 1週間です。あなたはヴィメルルについてどのように感じますか?私はあなたとまったく同じ要件を持っています。ありがとう! – JasonSmith

+0

そのフォークは私の必要に応じてインデントされているようです。 –

1

これはcindentcinoptionsの暗い世界を掘り下げる必要があるようです。私はあなたのvimrcに以下を置くことは、部分的にあなたのニーズを満たすだろうと信じている:

set cindent 
set cinoptions+=(0 

しかし、問題は、これは他の行動にどのように影響するかです。詳細はhelp cinoptions-valuesを参照してください。あなたが望むものを正確に達成することは可能ですが、いくつかの実験が必要になるかもしれません。

これが役に立ちます。

+0

多少有望ですが、どのオプションを使用するかわかりません。多くのことを試しましたが、遠隔で使えるものは何も得られませんでした。おそらくErlangプラグインは、それ自身のインデントを持っているので、事態を混乱させるかもしれないと思われる。 –

+0

Erlangの変更によって設定された値を見つけるために 'set cinoptions? 'を使ってみましたか?プラグインはインデントを改善すると主張していますか?その場合は、プラグインの外側から調整するのが難しいかもしれません。 –

+0

デフォルトの 'cinoptions'は空に見えます。プラグインはいくつかの[手動インデント](https://github.com/jimenezrick/vimerl/blob/master/indent/erlang.vim)の作業をしているように見えますが、修正が困難な場合があります。 –

関連する問題