Vim에서 주석 처리를 해제하는 더 스마트한 방법

Vim에서 주석 처리를 해제하는 더 스마트한 방법

댓글을 작성하는 좋은 방법은 키 매핑이라고 생각합니다. C 스타일 코드에 주석을 달거나 주석을 제거해야 합니다. 여기에 내 매핑이 있습니다.

nnoremap <leader>c 0<insert>//<Esc>                                                                  
nnoremap <leader>' 0xx

두 번째는 주석 해제를 위한 것으로, 커서를 줄의 시작 부분으로 이동하고 두 번 삭제합니다.

여기에 if 문을 작성할 수 있는지 알고 싶습니다. 커서를 줄의 시작 부분으로 이동하고 처음 두 문자가 백슬래시인지 확인하고, 그렇다면 두 번 삭제하고, 그렇지 않으면 아무 작업도 수행하지 않음을 의미합니다.

감사해요

답변1

여기에 if 문을 작성할 수 있는지 알고 싶습니다. 커서를 줄의 시작 부분으로 이동하고 처음 두 문자가 백슬래시인지 확인하고, 그렇다면 두 번 삭제하고, 그렇지 않으면 아무 작업도 수행하지 않음을 의미합니다.

이것은 확실히 가능합니다. 그러나 간단한 정규 표현식을 사용하면 훨씬 간단해집니다.

nnoremap <leader>' :s/^\/\/<cr>

고맙게도 사용할 구분 기호를 선택할 수 있으므로 구분 기호를 변경하면 슬래시를 이스케이프 처리할 필요가 없습니다.

nnoremap <leader>' :s;^//<cr>

참고로 매크로 내에서 이것을 실행하고 처음에 주석이 없는 줄에서 실행하면 매크로가 실행되지 않습니다. 만약 너라면아니요이를 수행하려면 다음 /e과 같은 플래그를 추가하세요.

nnoremap <leader>' :s;^//;;e<cr>

또한 공백 뒤에 있는 주석 처리된 줄의 주석 처리를 제거하려면 다음과 같이 하십시오.

//Remove these comments
    //And these ones too

그러면 나는 이렇게 할 것이다:

nnoremap <leader>' :s;^\s*//<cr>

관련 정보