Asignar flechas de teclado a atajos

9

Tipo I con todos los dedos diez, así que estoy usando Alt+ H( J, K, L) atajos en Vim en modo de inserción para mover el cursor y es muy fresco :) Me gustaría volver a asignar las teclas de flecha en X (Gnome) para utilizar estos accesos directos en toda X aplicaciones

Entonces, si presiono Alt+ K, debería funcionar como flecha hacia arriba.

Para auto-tortura :) puedes incluir estas líneas en tu .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>
ivan73
fuente

Respuestas:

2

No es exactamente lo que estás pidiendo, pero casi ...

Puede reasignar la configuración del teclado X con el xmodmapcomando. Puede ver la configuración actual ejecutandoxmodmap -pke

Cada código de tecla (que es un valor asociado con cada tecla de su teclado) puede tener hasta 8 símbolos de tecla (que es esencialmente la salida) adjunto. Son los siguientes:

  1. Cuando se presiona solo
  2. Cuando se presiona con shift
  3. Cuando se presiona con el interruptor de Modo habilitado (parece estar obsoleto)
  4. Cuando se presiona con el interruptor de modo y el cambio (parece ser obsoleto)
  5. Cuando se presiona con Alt-Gr (también conocido como ISO_Level3_Shift en términos de xmodmap)
  6. Cuando se presiona con Alt-Gr y shift

Así que actualmente mi tecla "h" se ve así:

h H h H hstroke Hstroke

donde el keyym Hstroke produce Ħ.

A menos que esté utilizando Alt-Gr para ingresar caracteres no ascii, puede reasignar h, j, k y l con Alt-Gr para hacer lo que desee. Esto sería:

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'

El Alt-Gr con entradas de turno no es estrictamente necesario, por supuesto, solo estoy preservando los valores que ya existen. Puede encontrar los valores del código clave ejecutando el xevcomando desde un terminal. xevmuestra eventos X, por lo que puede presionar una tecla y obtener información al respecto.

Para hacer esta configuración permanente, puede agregar lo siguiente a .Xmodmap en su directorio de inicio

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

Presionar Alt-Gr ciertamente no es tan bueno como presionar Alt cuando se usa hjkl, pero creo que puede tener dificultades para hacer que Alt solo funcione porque se usa para acceder al menú. Es posible que pueda utilizar la información en esta respuesta junto con las herramientas mencionadas por Fraekkert para vincular, por ejemplo, Alt-Shift-h, lo que puede ser mejor para usted.

Posiblemente también valga la pena señalar que puede configurar el modo vi en bash (o el shell que use) mediante el uso set -o vi. Esto le da un comportamiento similar a vi cuando edita líneas de comando e historial. Sin embargo, no creo que esto se vea en su .vimrc, así que no espere que sus reasignaciones clave funcionen.

Roger Light
fuente
0

Usaría una combinación del panel de preferencias Atajos de teclado y xvkbd.

xvkbd le permite enviar eventos de teclado a través de la línea de comandos, y los métodos abreviados de teclado le permiten vincular líneas de comandos a eventos clave.

LasseValentini
fuente