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

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

관련 정보