cindentを使用する場合、開き角括弧に続く行のインデントを制御するものは何ですか?


8

JavaScript用に独自のインデントファイルを作成しようとしています。JavaScriptのデフォルトのインデントファイルは、最小限の変更でcindentをオンにします。私はそれをベースとして使用しています。

Vim 7.3 for OSX El Capitanでは、配列を入力すると、デフォルトで次のようになります。

var test = [
1,
    2,
    3
    ];

また、JavaScriptは合法ではありませんが、コンマを使用しないと少し異なる動作になることに気づきました。

var test = [
1
2
3
];

7.4では、上記の2つの例を入力すると、期待どおりの結果が得られます。

var test = [
    1,
    2,
    3
];

var test = [
    1
    2
    3
];

ただし、開いた角括弧の直後にいくつかの文字を含めると、それは強打から戻ります。

var test = [1
2,
    3,
    4
];

角かっこ間の行のインデント、および右角かっこの配置を制御するものは何ですか?Vimのドキュメントを表示しているときに、これを表すcinoptionsの値が表示されません。



1
私は持っていますが、そのプラグインは組み込みルールの代わりにカスタムVimScript関数を使用してすべてを最初からインデントするように見えます。
Ryan Jarvis

回答:


1

上記のコメントから判断すると、cinoptions角かっこのインデントを制御するためだけに使用したいとします。7.4.355以前は、ソースコードに表示されていたものからは不可能でした。タグを付けたバージョンを表示するには、[上部を非難]をクリックしますが、ロードにしばらく時間がかかります。

cinoptions元々はC、C ++、Javaのように見えたため、角括弧はそれらの言語での配列サイズの定義やインデックスへのアクセスに使用されているため、中括弧と括弧のみを扱いました。

角かっこ間の行のインデント、および右角かっこの配置を制御するものは何ですか?

7.4.355以降Jは、インデントを制御するオプションですが、角かっこについては特に何もありません。ソースで詳しく説明したところ、このJオプションは、JavaScript構文を考慮する必要があることのみを示しています(curbuf->b_ind_js)。整列するために、コンマまたは左大括弧で終了する前の行を探します。4番目の例では、行がで終わっている1ため、インデントは増えません。

4番目の例の最初の行がa [または,(または両方[,)で終わった場合、後続の行はインデントを増やします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.