vim에서 주석을 오른쪽 정렬

vim에서 주석을 오른쪽 정렬

저는 vim을 사용하여 C 코드를 작성하고 있으며 주석이 모두 80열에서 끝나도록 주석을 오른쪽 정렬할 수 있는 가능성을 찾고 있습니다. 간단한 예를 들면 다음과 같습니다.

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

로 바뀌어야 한다

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

다른 포맷을 수행하기 위해 설치했지만 vim-easy-align이 정렬을 수행하는 방법을 아직 찾지 못했습니다. 어쩌면 누군가가 방법을 알고 있을까요?

나는 주장하지 않습니다 vim-easy-align. 해당 작업을 수행하는 다른 플러그인이 있는 경우.. 알려주세요;).

답변1

플러그인을 사용하지 않고 일반 vim 명령을 사용하여 수행하는 방법은 다음과 같습니다.

일반 모드에서는 주석 구분 기호와 같이 오른쪽 정렬하려는 문자열의 첫 번째 문자에 커서를 놓은 다음 키를 눌러 leader텍스트 tab를 오른쪽 정렬합니다.

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

설명:

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.

여러 댓글을 표시하려면 다음 댓글 구분 기호를 검색하고 leadertabnleadertabnleadertabn... 를 누르세요.

답변2

나의AlignFromCursor 플러그인이를 수행하는 <Leader>ri매핑과 명령을 제공합니다 . :RightAlignFromCursor주석 앞의 공백에 커서를 놓고(수동으로 또는 :[range]normal명령을 통해) 매핑이나 명령을 호출하기만 하면 됩니다. 'textwidth'접두사 또는 를 사용합니다 [count].

관련 정보