Non esattamente quello che stai chiedendo, ma quasi ...
Puoi rimappare le impostazioni della tastiera X usando il xmodmapcomando. È possibile visualizzare le impostazioni correnti eseguendoxmodmap -pke
A ciascun codice chiave (che è un valore associato a ogni tasto della tastiera) possono essere associati fino a 8 tasti (che è essenzialmente l'output). Sono i seguenti:
- Se premuto da solo
- Se premuto con maiusc
- Se premuto con l'interruttore Mode abilitato (sembra essere obsoleto)
- Se premuto con interruttore Mode e shift (sembra essere obsoleto)
- Se premuto con Alt-Gr (aka ISO_Level3_Shift in termini di xmodmap)
- Se premuto con Alt-Gr e MAIUSC
Quindi attualmente il mio tasto "h" assomiglia a:
h H h H hstroke Hstroke
dove produce il keyst di Hstroke Ħ.
A meno che tu non stia usando Alt-Gr per inserire caratteri non ascii, puoi rimappare h, j, kel con Alt-Gr per fare quello che vuoi. Questo sarebbe:
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'
L'Alt-Gr con le voci shift non è strettamente necessario, ovviamente, sto solo preservando i valori già esistenti. È possibile trovare i valori del codice xevchiave eseguendo il comando da un terminale. xevvisualizza X eventi, quindi puoi premere un tasto e scoprire informazioni al riguardo.
Per rendere permanente questa impostazione, è possibile aggiungere quanto segue a .Xmodmap nella propria directory home
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
Premere Alt-Gr certamente non è bello quanto premere Alt quando si usa hjkl, ma penso che potresti avere difficoltà a far funzionare solo Alt perché viene utilizzato per l'accesso al menu. Potresti essere in grado di utilizzare le informazioni in questa risposta insieme agli strumenti citati da Fraekkert per legare invece, ad esempio, Alt-Shift-h, che potrebbe adattarsi meglio a te.
Vale anche la pena notare che è possibile impostare la modalità vi in bash (o qualunque shell si usi) usando set -o vi. Questo ti dà un comportamento simile a vi durante la modifica delle righe di comando e della cronologia. Non credo che questo guardi al tuo .vimrc, quindi non aspettarti che i tuoi rimappaggi chiave funzionino.