키보드 화살표를 단축키에 매핑


9

내가 사용 그래서 나는 모든 열 손가락으로 입력 Alt+를 H( J, K, L) 이동 커서 삽입 모드에서 빔의 바로 가기와 아주 멋진 :) 내가하고 싶은 X에 화살표 키를 매핑 모든 X에서이 단축키를 사용하는 (그놈) 응용

Alt+를 누르면 K위쪽 화살표로 작동합니다.

자기 고문 :) 당신은 .gvimrc 에이 줄을 포함 할 수 있습니다

inoremap <Left>  <NOP>
inoremap <Right> <NOP>
inoremap <Up>    <NOP>
inoremap <Down>  <NOP>
inoremap <A-h> <Left>
inoremap <A-j> <Down>
inoremap <A-k> <Up>
inoremap <A-l> <Right>

답변:


2

정확히 당신이 요구하는 것이 아니라 거의 ...

xmodmap명령을 사용하여 X 키보드 설정을 다시 매핑 할 수 있습니다 . 당신은 실행하여 현재 설정을 볼 수 있습니다xmodmap -pke

각 키 코드 (키보드의 모든 키와 관련된 값)는 최대 8 개의 키심 (기본적으로 출력)을 연결할 수 있습니다. 다음과 같습니다.

  1. 자체적으로 누르면
  2. 시프트로 누르면
  3. 모드 스위치가 활성화 된 상태에서 누르면 (사용되지 않는 것으로 간주 됨)
  4. 모드 스위치와 시프트로 눌렀을 때 (사용되지 않는 것으로 보임)
  5. Alt-Gr (xmodmap 용어의 ISO_Level3_Shift)로 누르면
  6. Alt-Gr을 누르고 눌렀을 때

따라서 현재 "h"키는 다음과 같습니다.

h H h H hstroke Hstroke

여기서 Hstroke keysym은 Ħ을 생성합니다.

ASCII 이외의 문자를 입력하기 위해 Alt-Gr을 사용하지 않는 한, 원하는 것을하기 위해 Alt-Gr로 h, j, k 및 l을 다시 매핑 할 수 있습니다. 이것은 :

xmodmap -e 'keycode 43 = h H h H Left Hstroke'
xmodmap -e 'keycode 44 = j J j J Up J'
xmodmap -e 'keycode 45 = k K k K Down ampersand'
xmodmap -e 'keycode 46 = l L l L Right Lstroke'

교대 입력 항목이있는 Alt-Gr은 물론 꼭 필요한 것은 아니며 이미 존재하는 값만 보존합니다. xev터미널 에서 명령을 실행하여 키 코드 값을 찾을 수 있습니다 . xevX 이벤트를 표시하므로 키를 누르고 이에 대한 정보를 찾을 수 있습니다.

이 설정을 영구적으로 유지하려면 홈 디렉토리의 .Xmodmap에 다음을 추가하십시오.

keycode 43 = h H h H Left Hstroke
keycode 44 = j J j J Up J
keycode 45 = k K k K Down ampersand
keycode 46 = l L l L Right Lstroke

Alt-Gr을 누르는 것이 hjkl을 사용할 때 Alt를 누르는 것만 큼 좋지는 않지만 메뉴 액세스에 사용되기 때문에 Alt가 작동하는 데 어려움을 겪을 수 있습니다. 이 답변의 정보를 Fraekkert가 언급 한 도구와 함께 사용하여 Alt-Shift-h 대신 바인딩하는 것이 더 적합 할 수 있습니다.

또한을 사용하여 bash (또는 사용하는 쉘)에서 vi 모드를 설정할 수 있다는 점도 주목할 가치가 있습니다 set -o vi. 이것은 명령 행과 히스토리를 편집 할 때와 같은 동작을 제공합니다. 나는 이것이 당신의 .vimrc를 본다고 믿지 않으므로 주요 리 맵핑이 효과가 있다고 기대하지 마십시오.


0

키보드 단축키 환경 설정 창과 xvkbd의 조합을 사용합니다.

xvkbd를 사용하면 명령 줄을 통해 키보드 이벤트를 보낼 수 있으며 키보드 단축키를 사용하면 명령 줄을 주요 이벤트에 바인딩 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.