2014-12-22 2 views
1

코드를 많이 작성하면서 단축키를 만들기로 결정하여 속도를 조금 높일 수있었습니다. 게다가 어떤 언어에서는 문자 ;을 많이 사용하기 때문에 매핑 할 때마다 입력 모드에서 줄 끝 부분에 세미콜론이 추가됩니다. 나는이 명령을 마련 : 문자를 어떻게 매핑 할 수 있습니까? .exrc에?

map! ; ^[$a; 

그럼 내가 때문에 두 번째 부분 (무한 recursivity)의 두 번째 세미콜론 할 수 없습니다 것을 깨달았다! 나는 \와 함께 그것을 벗어나려고했지만 헛되었다!

답변

3

일반 매핑 팁 : 재귀 매핑을 방지하기 위해 (<Plug> 매핑을 사용할 때처럼)

  • 사용 noremap 변종 당신은 너무 좋은 이유가없는.
  • 모드를 지정하십시오. n 정상에 대한 nmap 또는 nnoremap
  • 가독성을 높이기 위해 키 표기법 (예 : <esc>, <c-l> ...)을 사용합니다. 예 : 일반 모드에 대한 <esc>

^[ 대 새 매핑 :

nnoremap ; A;<esc> 

참고 : A를 사용하는 대신 $a의 라인의 끝에 추가합니다.

삽입 모드에서의 매핑 :

inoremap ; <c-o>A;<esc> 

참고 : 한 일반 모드 명령을 실행 <c-o>를 사용하여 삽입 모드에서 삽입 모드로 돌아 가기 전에 잠시. <esc>A;을 쉽게 할 수 있지만 (더 짧습니다!).

개인적으로 정상 모드가 올바른 모드라고 생각합니다. 또한 ; 명령을 너무 음영 처리하기 전에 두 번 생각해야한다고 생각합니다 (:h ; 참조). 더 도움말을 참조하십시오

:

:h :map-modes 
:h :noremap 
:h key-notation 
:h A 
:h i_ctrl-o 
:h ; 
+0

당신이 필요로하는 작업을 기입하지 않습니다 제공 한 명령. 명령을 'inoremap'으로 변경했습니다. $ a;'모든 것이 정상입니다! : D 고마워! – tissa

+1

대문자 'A'를 깜박했습니다. 바보 나. 'A'는'$ a'와 같습니다. ': h A'를 보라. –

관련 문제