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