Kommentare in vim rechtsbündig ausrichten

Kommentare in vim rechtsbündig ausrichten

Ich schreibe C-Code mit vim und suche nach einer Möglichkeit, meine Kommentare rechtsbündig auszurichten, sodass sie alle in Spalte 80 enden. Ein kurzes Beispiel:

int a = 80; /* initialize a */
int b = 7; /* initialize b */
printf("%d + %d = %d", a, b, a+b); /*calculate the result */

sollte sich verwandeln in

int a = 80;                               /* initialize a */
int b = 7;                                /* initialize b */
printf("%d + %d = %d", a, b, a+b); /*calculate the result */
                                                           ^col 80

Ich habe vim-easy-alignandere Formatierungen installiert, aber noch nicht herausgefunden, wie ich diese Ausrichtung vornehmen kann. Vielleicht weiß jemand, wie das geht?

Ich bestehe nicht darauf vim-easy-align. Wenn Sie ein anderes Plugin haben, das die Aufgabe erfüllt, sagen Sie es mir einfach ;).

Antwort1

So geht es mit einfachen Vim-Befehlen, ohne Verwendung von Plug-ins:

Platzieren Sie im Normalmodus den Cursor auf dem ersten Zeichen der Zeichenfolge, das Sie rechtsbündig ausrichten möchten, beispielsweise dem Kommentartrennzeichen, und drücken Sie dann , leaderum tabden Text rechtsbündig auszurichten.

nnoremap <leader><tab> mc80A <esc>080lDgelD`cP

Mit Erläuterungen:

mc80A <esc>080lDgelD`cP
| |        |   ||  ||
mc|        |   ||  ||    Mark the position of the cursor
  |        |   ||  ||
  80A <esc>|   ||  ||    Append 80 spaces at the end
           |   ||  ||
           080l||  ||    Go the the 80th column from the beginning of the line
               ||  ||
               D|  ||    Delete what is next
                |  ||
                gel||    goes after the last string char
                   ||
                   D|    Delete the characters remaining (complement to go 80)
                    |
                    `cP  and paste these to shift the string up to 80 column.

Um mehrere Kommentare zu markieren, können Sie nach dem nächsten Vorkommen eines Kommentartrennzeichens suchen und leadertabnleadertabnleadertabn... drücken.

Antwort2

MeinAlignFromCursor-Pluginbietet eine <Leader>riZuordnung und :RightAlignFromCursoreinen Befehl, die dies tun. Platzieren Sie den Cursor einfach in das Leerzeichen vor dem Kommentar (entweder manuell oder über einen :[range]normalBefehl) und rufen Sie die Zuordnung oder den Befehl auf. Es wird 'textwidth'oder ein vorangestelltes verwendet [count].

verwandte Informationen