2008-09-18 6 views
13

Wenn ich Funktionen definiere oder aufrufe, die genug Argumente haben, um mehrere Zeilen zu überspannen, möchte ich, dass vim sie aufruft. Zum Beispiel:Anordnen von Funktionsparameterlisten mit vim

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

Die Idee ist, dass argsN-1 sein 'a' mit args1 hat.

Hat jemand eine Möglichkeit, dies in vim automatisch geschehen zu lassen? Ich habe das Align-Plugin zum Ausfüllen von Gleichheitszeichen (in Zuweisungsanweisungen) und so gesehen gesehen, aber ich bin mir nicht sicher, ob es gemacht werden kann, um dieses Problem zu lösen?

Antwort

7

Ich glaube, Sie den Befehl zu erteilen haben:

:set cino=(0 

Dies ist, wenn cindent natürlich mit.

edit: Ich vermisste "set"

+0

ich denke du meinst: set cino = (0 – rampion

11

Das vorherige Plakat hatte, aber vergessen, die set

:set cino=(0<Enter> 

Von :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)) 
       {       { 
+0

Typo: s/cinfo/cino/ –

+3

Einrücken funktionierte überhaupt nicht, bis ich realisierte Hat die sollte nicht getippt werden! Der Wert der Variablen ist einfach: ** (0 ** –

+1

Ja, das ist vielleicht verwirrender als die andere Antwort – Shitikanth

1

können Sie ein gutes sprachliches externes Tool als Vim-Filter verwenden. zum Beispiel, wenn Sie eine Perltidy Konfigurationsdatei schreiben können die Formatierung Sie generieren möchten (es sieht aus wie würden Sie die -lp -vtc = 2 Flags), dann können Sie Ihre vorhandenen Vim-Puffer durch das Rohr mit

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

wenn du gehst, diese Art von Befehl häufig ausgeführt werden, können Sie einen Befehl definieren, indem etwa wie folgt in Ihrem .vimrc setzen:

command -range=% Tidy <line1>,<line2>!/path/to/tidy -config /path/to/configfile