13

複数の行にまたがるのに十分な引数を持つ関数を定義または呼び出すときは、vimにそれらを並べてもらいたいです。例えば、

def myfunction(arg1, arg2, arg, ...
               argsN-1, argN)

argsN-1の「a」をargs1と並べるという考え方です。

誰かがこれをvimで自動的に発生させる方法がありますか?等号(代入ステートメント)などを並べるためのalignプラグインを見たことがありますが、この問題を解決できるかどうかわかりませんか?

4

4 に答える 4

11

前のポスターはそれを持っていましたが、忘れましたset

:set cino=(0<Enter>

から:help cinoptions-values

The 'cinoptions' option sets how Vim performs indentation.  In the list below,
"N" represents a number of your choice (the number can be negative).  When
there is an 's' after the number, Vim multiplies the number by 'shiftwidth':
"1s" is 'shiftwidth', "2s" is two times 'shiftwidth', etc.  You can use a
decimal point, too: "-0.5s" is minus half a 'shiftwidth'.  The examples below
assume a 'shiftwidth' of 4.

...

    (N    When in unclosed parentheses, indent N characters from the line
          with the unclosed parentheses.  Add a 'shiftwidth' for every
          unclosed parentheses.  When N is 0 or the unclosed parentheses
          is the first non-white character in its line, line up with the
          next non-white character after the unclosed parentheses.
          (default 'shiftwidth' * 2).

            cino=                     cino=(0 >
              if (c1 && (c2 ||          if (c1 && (c2 ||
                          c3))                     c3))
                  foo;                      foo;
              if (c1 &&                 if (c1 &&
                      (c2 || c3))           (c2 || c3))
                 {                         {
于 2008-09-18T01:23:48.993 に答える
7

コマンドを発行する必要があると思います:

:set cino=(0

これはもちろんcindentを使用する場合です。

編集:「セット」を逃しました

于 2008-09-18T01:12:12.623 に答える
2

Align http://www.vim.org/scripts/script.php?script_id=294および AutoAlign http://www.vim.org/scripts/script.php?script_id=884スクリプトを試してください。

于 2008-09-18T14:27:43.507 に答える
1

言語固有の外部ツールを Vim フィルターとして使用することで、ある程度の成果が得られる可能性があります。たとえば、必要なフォーマットを生成するPerltidy 構成ファイルを作成できる場合 ( -lp -vtc=2フラグが必要なようです)、既存の Vim バッファーを次のようにパイプします。

:!/path/to/tidy -config /path/to/configfile

この種のコマンドを頻繁に実行する場合は、次のようなコマンドを .vimrc に追加してコマンドを定義できます。

command -range=% Tidy <line1>,<line2>!/path/to/tidy -config /path/to/configfile
于 2008-09-18T22:11:04.703 に答える