저는 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]
.