2012-07-10 5 views

답변

1

Eclipse는 Windows 키를 연결하지 않습니다. 예를 들어, CTRL + ALT + SHIFT (사용하지 않는 경우)과 같이 도구를 사용하여 Windows 키를 리 바인드 할 수 있습니다. AutoHotkey 같은 도구가 작업을 수행 할 수 있습니다. 당신은 윈도우 키를 누를 때마다 당신은 당신이 다음 원하는 단축키를 결합하는 데 사용할 수있는 CTRL + ALT + SHIFT 누르면 것처럼

그런 다음이 될 것입니다.

1

당신은 귀하의 질문에 태그 "리눅스"를, 그래서 당신이 리눅스와 X를 사용하는 가정합니다 ...

그래서, 먼저 당신이 가 있는지 여부를 발견 할 수 있고, 이클립스와 함께 슈퍼를 사용하는 슈퍼로, 그렇지 않은 경우 슈퍼로 만듭니다. 이것의 나머지 부분은 xmodmap의 주제에 대해 필요한 것 이상일 것입니다.

먼저 수퍼바이저 키를 가지고 있는지 확인해야합니다. "xmodmap -pm"을 실행하여 현재 수식어가 무엇인지 확인하십시오. 여기서 공통 출력 같습니다

$ xmodmap -pm 
xmodmap: up to 4 keys per modifier, (keycodes in parentheses): 

shift  Shift_L (0x32), Shift_R (0x3e) 
lock  Caps_Lock (0x42) 
control  Control_L (0x25), Control_R (0x69) 
mod1  Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd) 
mod2  Num_Lock (0x4d) 
mod3  
mod4  Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf) 
mod5  ISO_Level3_Shift (0x5c), Mode_switch (0xcb) 

상기 출력이 키 뭉치 이미 슈퍼 (16 진수)로 매핑된다는 0x85,에는 0x86, 0xce 및 0xcf을 키 코드. 키보드에서 아무 것도 일어나지 않는 키가 있는지 알아 보려면 (항상 그런 것은 아닙니다) 터미널에서 "xev"를 실행하고 마우스 포인터를 "xev"의 거의 흰색 인 입력 창으로 옮기고 다른 열쇠. 일반적인 출력은 키에 대해 이렇게 보입니다 (예를 보려면 컨트롤과 시프트를 시도하십시오). 세 번째 줄에는 keycode와 keysym 이름 (여기서는 64와 Meta_L)을 특히주의하십시오.

현재 "Windows"키를 사용하여 현재 어떤 키 코드와 매핑이 있는지 확인하십시오.

KeyPress event, serial 42, synthetic NO, window 0xe600003, 
    root 0x6b6, subw 0x0, time 2232472454, (-1,167), root:(871,683), 
    state 0x0, keycode 64 (keysym 0xffe7, Meta_L), same_screen YES, 
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False 

은 "키 코드"부분을 찾아서 슈퍼 히어로 중 하나를 공격 한 경우, 변환 코드 중 하나와 일치합니다 (16)의 기반을 은밀한 (위의 예에서, 4 개)의 진수 키 코드 및 위에 표시된 Meta_L 대신 Super_L 또는 Super_R을 표시하십시오.

(당신이 슈퍼에 매핑 된 모든 키가 없거나은 그들 중 누구도 당신이 슈퍼에 사용할 원하는 키의 키 코드를 찾을 것으로 xev를 사용 후, 키보드에 존재하지 않는 것으로 밝혀지면 CapsLock 키가 수도 일부 사람들에게는 좋은 선택이 될 것입니다.) 그런 다음, xmodmap 또는 데스크탑 UI의 다른 도구를 사용하여 설정하십시오. 후자는이 응답의 범위 밖에 있지만, xmodmap을, 당신은 그냥이 당신의 홈 디렉토리에 .Xmodmap라는 이름의 파일을 만들 수 있습니다 :

! note: replace the 0xff below with your *actual* Super_L key's keycode. 
! note: whether to use mod3 or mod4 depends on your environment. 
keycode 0xff = Super_L 
clear mod4 
add mod4 = Super_L 

는 "xmodmap을 ~/.Xmodmap와 결과를 적용 ". 많은 X 스타트 업이이를 자동으로 적용합니다. Ubuntu Unity를 사용하고 있다면, Dash에서 Startup Applications를 찾아보고 같은 명령을 추가하십시오. 컨텍스트에서 "~"가 작동하는지 잘 모르겠다면 $ HOME을 사용하거나 홈 디렉토리를 사용하고 싶을 것입니다. ~/.config/autostart/xmodmap에 파일을 생성합니다.이와 같은 바탕 화면 (erlkonig = 나를 대신에 당신의 가정을 넣어) :

$ cat ./.config/autostart/xmodmap.desktop 
[Desktop Entry] 
Type=Application 
Exec=/usr/bin/xmodmap /home/erlkonig/.Xmodmap 
Hidden=false 
NoDisplay=false 
X-GNOME-Autostart-enabled=true 
Name[en_US]=Xmodmap Keymap Settings 
Name=Xmodmap Keymap Settings 
Comment[en_US]=Set Keyboard Bindings 
Comment=Set Keyboard Bindings 

당신은 "xmodmap을 -pm"또는 "것으로 xev"와 결과를 확인할 수 있습니다. 더 복잡한 설정에서 환경에 대한 출력 결과는 다음과 같습니다 (아마도 여러분이 원하는 것을 맞지 않을 것입니다).

$ xmodmap -pm 
xmodmap: up to 4 keys per modifier, (keycodes in parentheses): 

shift  Shift_L (0x32), Shift_R (0x3e) 
lock  Caps_Lock (0x7f) 
control  Control_L (0x25) 
mod1  Meta_L (0x40), Meta_L (0xcd) 
mod2  Alt_L (0x6c), Alt_L (0xcc) 
mod3  Super_R (0x69), Super_L (0x85), Super_R (0x86), Super_L (0xce) 
mod4  Hyper_L (0x42), Hyper_L (0xcf) 
mod5  Num_Lock (0x4d) 

하이퍼 (다른 곳으로 옮겼습니다)를 대체합니다. 하이퍼 -f와 같은 창 관리자 기능을 사용하여 크기 조정을위한 Hyper-r을 만듭니다.

xmodmap으로 할 수있는 또 다른 무작위 (ish) 예제는 다음과 같습니다. 어떤 Keycode 78이 Mode_switch인지를 확인한 다음 ', ",`및 ~와 결합하여 다음 모음이 비슷한 발음 구별을 갖도록하는 접두어를 입력 할 수 있습니다. 또한 Mode_switch를 사용하여 æ, d를 ¿ 얻으려면? ð를 얻고, 일부 다른합니다.

! note: 78 is probably not the keycode most would want here; pick your own :-) 
keycode 78 = Mode_switch 
!      no mods shift   mode-switch shift+mode-switch 
keysym a   =   a A      ae AE 
keysym d   =   d D      thorn THORN 
keysym n   =   n N     ntilde Ntilde 
keysym o   =   o O     oslash Oslash 
keysym t   =   t T      eth ETH 
keysym s   =   s S     ssharp 
keysym 0   =   0 parenright   degree  
keysym 6   =   6 asciicircum dead_circumflex 
keysym 8   =   8 asterisk   multiply  
keysym apostrophe = apostrophe quotedbl   dead_acute dead_diaeresis 
keysym grave  =  grave asciitilde  dead_grave 
keysym comma  =  comma less   dead_cedilla guillemotleft 
keysym period  =  period greater   NoSymbol guillemotright 
keysym slash  =  slash question   NoSymbol questiondown 
keysym 1   =   1 exclam    NoSymbol exclamdown 
keysym equal  =  equal plus    notequal plusminus 

자세한 내용은 "남자 xmodmap을"을 사용합니다.

+1

제가 말할 수있는 한, Eclipse는 mod4 (또는 mod3)를 보지 않는 것 같습니다. 따라서 mod4에 Super를 지정해도 실제로 도움이되지 않습니다. – studgeek

+0

어. 운이 없었어. Linux + X11에서 정말 사실이라면 이클립스에서 뭔가 다른 이름을 지어 버리는 것이 아니라 단지 거기에 있지 않습니다. 오, 글쎄, 반은 답이다. 표준 X11 수식어가 나머지가되는 것을 지원하기 위해 이클립스 팀을 얻는다. (네가 맞다면 아직 그렇지 않다.) –

0

을 내가 핵심 목표에 키 바인딩을 만드는 것입니다 의심 기존 컨트롤 및 alt 바인딩에 추가. 예를 들어 Windows-L이 Control-L, Alt-L 또는 Shift-L과 다른 기능을 수행하도록하십시오.

유감스럽게도 리눅스의 Eclipse는 shift, control, alt (xmodmap의 mod1) 이외의 수정자를 지원하지 않는 것으로 보입니다. 따라서 Windows 키를 매핑 할 추가 수정자가 없습니다. 논리적 인 선택은 mod4이지만 SWT는 비 Windows 플랫폼에서 mod4를 지원하지 않는 것 같습니다.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=55236에 비 Windows mod4 지원을 추가하는 버그가 있습니다. 불행히도 잠시 동안 "고쳐주지 않을 것"이라고 표시되어 있습니다. 나는 거기에 가서 투표를하고 추가 사용자 사례/이유를 공유하는 것이 좋습니다.