2011-11-16 2 views
0

나는 나는 다음과 같은 매핑을 정의한 몇 가지 텍 관련 설정을 초기화하는 데 사용 : 이 Vim 매핑의 문제점은 무엇입니까? 함수 내부

vmap <buffer> ucm :s/^\% //<CR>:nohlsearch<CR> 

나는 그것이 나에게 쉽게 주석을 시각적으로 선택되고있는 행을 허용 할 것으로 예상. 유사 :

vmap <buffer> cm :s/^/\% /<CR>:nohlsearch<CR> 

의견에 꽤 좋은 직장 않습니다. 또한 #을 사용하는 다른 언어에 대한 유사한 매핑이 있지만 %는 정상적으로 작동하지 않습니다. 그 마지막 사람은 다음과 같이 :

vmap <buffer> cm :s/^/# /<CR>:nohlsearch<CR> 
vmap <buffer> ucm :s/^# //<CR>:nohlsearch<CR> 

V10J센티미터의 순서V10KUCM이 그대로 코드를 떠날 예정이다.

그래서 지금 : 내가 뭘 잘못하고 있니?

답변

4

불필요한 것들을 추가하고 있습니다.

:s/^/% <CR> 

:s/^% /<CR> 

는 주석과 각각의 주석을 위해 일해야한다.

세 번째 /

/c으로 "확인"또는 "글로벌"에 대한 /g 옵션을 추가하는 데 사용됩니다. 이러한 옵션을 사용하지 않으면이 /이 필요하지 않습니다.

"주석 처리 해제"대체에서 %을 이스케이프 처리하지만 % 그 자체는 Vim의 정규 표현식에 특별한 의미가 없습니다. 도망 간다면 Vim은 확실히 일치하지 않을 것이지만, \%d과 같은 원자 집합에 대해서는 \%<something>이 사용됩니다. 그래서 빔이 여러분의 \%에 원자의 나머지 부분을 기대하고 "아무것도"얻지 못하기 때문에 패턴이 실패합니다.

+0

감사합니다. 많은 도움을 받았습니다. – szablica