주석을 삽입하는 방식이 마음에 들지 않기 때문에 c-vim 플러그인을 해킹하려고 합니다. 나는 이것을 원한다:
/* comment */
하지만 그것은 나에게 다음을 제공합니다:
/* comment
*/
분명 이유가 있을 텐데 마음에 들지 않습니다. 그래서 c.vim 파일을 조사하다가 다음을 발견했습니다.
function! C_CodeComment( mode, style )
if a:mode=="a"
if a:style == 'yes'
silent exe ":s#^#/\* #"
silent put = ' */'
else
silent exe ":s#^#//#"
endif
endif
if a:mode=="v"
if a:style == 'yes'
silent exe ":'<,'>s/^/ \* /"
silent exe ":'< s'^ '\/'"
silent exe ":'>"
silent put = ' */'
else
silent exe ":'<,'>s#^#//#"
endif
endif
endfunction
이 진술에 대한 문서를 찾을 수 없으며 vim이 주석의 마지막 줄에 put =
추가되도록 변경해야 한다고 확신합니다 . */
누구든지 올바른 방향으로 나를 가리킬 수 있습니까?
답변1
C_CodeComment
이 함수는 최신 버전의 Vim과 함께 제공되는 어떤 파일에도 정의되어 있지 않습니다. 검색해 보니 사용하고 계시는 것 같더라구요Fritz Mehner의 C/C++ 플러그인. 그것은 제공합니다C/C++>논평>코드->설명/* */메뉴 항목(및 \c*
지도 1C_CodeComment
)을 사용합니다.
이 명령은 put = ' */'
새 줄을 추가합니다(참조::help :put
) 내용이 포함되어 있습니다특별 등록=
, 단지 다음과 같이 평가합니다.Vim 표현. 여기에 사용된 특정 표현식은 단순한 세 개의 문자열(공백, 별표, 슬래시)입니다.
다음과 같은 줄을 추가하여 마지막 줄 2*/
의 끝에 정렬할 수 있습니다 .
silent normal kJ^
silent put = ' */'
라인 뒤에 . 마지막 주석 줄( )까지 이동하여 줄( ) k
과 결합한 다음 커서를 해당 줄의 공백이 아닌 첫 번째 문자( )로 이동합니다 . 매핑 1 자체는 커서를 다음 줄로 이동하는 것으로 구성됩니다. 새 댓글 영역 한 줄 .*/
J
^
\co
j
그러나C_RemoveCComment
이것은 함수의 가정을 깨뜨릴 것입니다("inverse" 함수에서 사용됨 C_CommentCode
): */
줄의 시작 부분(선택적 공백 뒤)을 찾아서 처리할 것으로 예상합니다.
한번도 사용하지 않는다면C/C++>논평>댓글->코드메뉴 항목 또는 \co
매핑 1을 사용하면 이 플러그인의 주석 해제 기능을 사용하지 못할 수도 있습니다.
1\
매핑된 "리더"를 재정의하면 다를 수 있습니다.localmapleader
.
2 (내 생각에는) 이로 인해 여러 줄 주석이 이상하게 보입니다(예: 주석 기능을 호출하기 전에 GUI 선택 또는 시각적 모드를 통해 여러 줄을 선택함).
가운데 두 행을 선택한 후,
foo();
bar();
baz();
quux();
~이 되다
foo();
/* bar();
* baz(); */
quux();
이것은 이상한 스타일처럼 보입니다(일반적으로 *
중간 행에 지시선을 사용하는 경우 시작 별표 /*
, *
지시선 및 */
후행 별표가 같은 열에 위치합니다).