2010-01-27 6 views
16

나는 정력 위키 팁을보고 그것을 위해 다음과 같은 창 코드를 수정해야 LOCK을 캡 Esc 키를 매핑하는 것을 말한다 :Vim에서 Esc를 CAP LOCK으로 다시 매핑하는 것이 왜 그렇게 복잡한가요?

REGEDIT4 
[HKEY_CURRENT_USER\Keyboard Layout] 
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,01,00,3a,00,00,00,00,00 

이 가능에만 추가하거나 수정하여 LOCK을 캡 Esc 키를 다시 매핑을 _vimrc의 줄?

+0

죄송합니다. 문의 해주세요. 왜이 작업을 수행 하시겠습니까? – paxdiablo

+8

paxdiablo 이것은 매우 일반적입니다. 왜? CAPS LOCK은 가장 쓸모없는 열쇠이기 때문에 주요 부동산이 있습니다. 이것은 다른 ctrl 키, 또는 Vim을 사용한 적이 있다면 ESC 키에 훨씬 더 편리한 위치입니다. – Jay

+0

죄송합니다. 오해했습니다. 나는 당신이 CAPSLOCK으로 ESC 키를 사용하고 싶다고 생각했습니다. ESC 키를 1 ~ 2 인치 정도 아래로 움직여도 너무 많은 시간을 절약 할 수 있다는 것을 이해하는 데 어려움이 있습니다.하루 종일 낭비되는 시간을 실제로 측정 했습니까? 아마도 비모수 편집기에 대해 생각해야합니다 :-) – paxdiablo

답변

21

이 용도로 AutoHotkey를 사용하는 것이 좋습니다. 예를 정력에 탈출 모자, 그리고 다른 곳에서 제어를 설정하기위한,

SetTitleMatchMode,2 
#IfWinActive,VIM 
    CAPSLOCK::ESC 
return 

#IfWinActive 
    CAPSLOCK::CTRL 
return 

이 스크립트 :

당신은 응용 프로그램 별 단축키 변경을 할 수 있습니다.

+0

AutoHotkey는 위대한 – alexchenco

+0

@ 제이하지만 그때까지 대문자 잠금이 끝났습니까? – sayth

+0

@sayth 대부분의 경우 절대로 필요하지 않습니다. – Jay

1

캡슐 키에 대한 vim 키 식별자가 없으므로 스캔 코드를 사용해야합니다.

Ctrl 키나 Shift 키를 무언가로 매핑하려고하는 것과 같습니다. 키는 아무 것도하지 않으며 키 수정 자이므로 동일한 방법으로 트랩 될 수 없습니다.

1

매핑은 vim 대신 OS 레벨에서 수행되어야하므로 OS에서 복잡하게 진행됩니다.

! Esc on caps lock 
remove Lock = Caps_Lock 
keysym Caps_Lock = Escape 

그러나, 나는 REGEDIT 스크립트가 그렇게 나쁜 생각하지 않는다 : 예를 들어, 내 우분투 시스템에서 나는 ~/.Xmodmap에 다음이있다. 그것은보기 흉하지만 일선이 두 개입니다!

+5

에'#IfWinActive ahk_class Vim'을 사용해야했습니다 :'setxkbmap -option caps : escape' 또는 X/input 설정의 관련 섹션에 추가하십시오. – ephemient

+0

@ephemient 팁 주셔서 감사합니다. –

+1

GUI를 통해이 작업을 수행 할 수도 있습니다. 시스템/환경 설정/키보드로 이동하여 레이아웃 탭을 열고 옵션 대화 상자를 엽니 다. Caps Lock 제목 아래에는 여러 가지 동작 목록이 있으며 그 중 하나는 Caps Lock과 ESC를 교체하는 것입니다. – hugomg

1

Ctrl-C를 사용하여 이스케이프 처리 할 수도 있습니다 (적어도 vim에서는 사용 가능). 내가 보통 사용하는 것입니다. 나는 일반적으로 컨트롤과 capslock을 교체하지만 우분투에서는 Windows와 키보드의 레지스트리 설정을 통해 그렇게했다.

편집 : @mMontu 친절 노트로, Ctrl-C를가 Esc 키보다 더 잔인 : this appropriate question에 명시된 바와 같이

정력 당신이 단지 약어의 일부를 쓴 경우 확인 귀찮게하지 않을, 멋진 자동차가 플러그인이 내 vimming 아직 너무 고급 아니기 때문에 내가 발견하지 않았다면

당신은 삽입 모드를 종료 할 때마다에 설정 한 명령을 실행하려고하지 않습니다.

+2

Ctrl-C와 ESC의 미묘한 차이점에 유의해야합니다. http://stackoverflow.com/questions/5030164/whats-the-difference-between-ctrlc-and-ctrl/5036294#5036294 – mMontu

1

또한 시도해 볼 수 있습니다 : SharpKeys. 나는 CapLock과 Esc를 바꿨다.

1

나 본질적으로 this website

의 지침을 사용하는 것이었다 위해 잘 작동 또 다른 대안 : 다음, 마이크로 소프트의 키보드 레이아웃 Creator를 설치 CAPS는 잠금 및 사용자 정의 레이아웃을 만들의 매핑을 할 수 있도록 소스 코드를 편집 할 수 있습니다.