Mapear setas do teclado para atalhos

9

I digitar com todos os dedos dez então estou usando Alt+ H( J, K, L) atalhos no vim em modo de inserção para cursor movimento e é muito legal :) Eu gostaria de remapear teclas de seta no X (Gnome) para usar estes atalhos em todos X formulários

Portanto, se eu pressionar Alt+, Kele deve funcionar como seta para cima.

Para tortura própria :), você pode incluir essas linhas no seu arquivo .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
fonte

Respostas:

2

Não é exatamente o que você está pedindo, mas quase ...

Você pode remapear as configurações do teclado X usando o xmodmapcomando Você pode ver as configurações atuais executandoxmodmap -pke

Cada código de chave (que é um valor associado a todas as teclas do teclado) pode ter até 8 academias de teclas (que é essencialmente a saída) anexadas a ele. Eles são os seguintes:

  1. Quando pressionado por conta própria
  2. Quando pressionado com turno
  3. Quando pressionado com o interruptor de modo ativado (parece estar obsoleto)
  4. Quando pressionado com o botão Mode e shift (parece obsoleto)
  5. Quando pressionado com Alt-Gr (também conhecido como ISO_Level3_Shift em termos xmodmap)
  6. Quando pressionado com Alt-Gr e shift

Atualmente, minha chave "h" se parece com:

h H h H h

onde o teclado Hstroke produz Ħ.

A menos que você esteja usando Alt-Gr para inserir caracteres não-ascii, poderá remapear h, j, ke com Alt-Gr para fazer o que quiser. Este seria:

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'

O Alt-Gr com entradas de turno não é estritamente necessário, é claro, estou apenas preservando os valores que já existem. Você pode encontrar os valores do código-chave executando o xevcomando em um terminal. xevexibe X eventos, para que você possa pressionar uma tecla e descobrir informações sobre ele.

Para tornar essa configuração permanente, você pode adicionar o seguinte a .Xmodmap no diretório inicial

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

Pressionar Alt-Gr certamente não é tão bom quanto pressionar Alt ao usar o hjkl, mas acho que você pode ter dificuldade em fazer com que apenas Alt funcione, porque é usado para acessar o menu. Você pode usar as informações nesta resposta junto com as ferramentas mencionadas por Fraekkert para vincular, por exemplo, Alt-Shift-h, o que pode ser melhor para você.

Também é possível notar que você pode definir o modo vi no bash (ou qualquer shell que você use) usando set -o vi. Isso fornece um comportamento semelhante ao vi ao editar linhas de comando e histórico. Porém, não acredito que isso analise seu .vimrc, portanto, não espere que seus remapeamentos principais funcionem.

Roger Light
fonte
0

Eu usaria uma combinação do painel de preferências Atalhos de teclado e xvkbd.

O xvkbd permite enviar eventos de teclado por meio da linha de comando, e os Atalhos de Teclado permitem vincular linhas de comando a eventos importantes.

LasseValentini
fonte