Tentando mapear <Ctrl> + <hjkl> para <Left Down Up Right> globalmente (teclas de seta do tipo Vim) com o xmodmap

9

Eu estou tentando mapear Ctrl+ H, J, K, Lpara as setas Left, Down, Up, Right, respectivamente, no Ubuntu OS (globalmente, e não dentro Vim).

Eu tentei a solução postada aqui , mas os comandos modificadores não estão funcionando. Aqui está o que estou tentando:

xmodmap -e "keycode 45 Control_L = k Up"
xmodmap -e "keycode 45 control = k Up"

(o código de chave 45 é mapeado para "k")

Nenhum dos comandos funciona. (Eles não dão erros, mas ctrl+ knão é remapeado para up arrow)

Existe uma maneira de fazer esse xmodmap e, se não, existe uma solução alternativa mais limpa?

Obrigado!

Edit: Encontrei minha resposta aqui - graças a rápida

Programador / desenvolvedor
fonte

Respostas:

6

Certamente é uma idéia muito estranha transformar o Ubuntu no codinome "VimOS". Eu acho muito mais adequado mapear as teclas do Vim para um cluster mais livre e equitativo do teclado. Ou definitivamente NÃO devido a isso também pode ser útil.

No entanto, não excluo minha primeira sugestão sobre os mapeamentos do Vim e devo dizer que a resposta à sua pergunta existe aqui:
Navegação em todo o sistema no estilo vim (hjkl)

Parcialmente, concordo com este ponto de vista (graças ao shell hell ):

NOTA 3: Configurar Ctrl / Meta+ H, J, K, Lkeybindings parece ser maneira mais simples de ter de navegação vim-estilo mas não é. Primeiro: você teria que fazer isso por aplicativo, o que é um processo cansativo. Segundo: você provavelmente acabará quebrando os mapeamentos padrão para qualquer aplicativo. Por último, mas não menos importante: alguns aplicativos, por exemplo, rtorrent ou htop, não permitem alterar os padrões, economizando corrigindo o código fonte. Por razões semelhantes, você também não fará o trabalho Super / Hyper.

E também encontrei uma resposta próxima aqui:
Superusuário: Mapeando Super + hjkl para as teclas de seta em X

O Vim usa modos de comutação para mapear chaves. Portanto, o xmodmap para o Vim é alguns globais conectáveis ​​que quebram a experiência clássica do Vim. Mesmo assim, afirmar que parece patético;)

O Vim suporta vários modos de edição - normal, inserir, substituir, visual, selecionar, linha de comando e pendente de operador. Você pode mapear uma tecla para funcionar em todos ou em alguns desses modos.

Mapeando Chaves no Vim - Tutorial (Parte 1)
Mapeando Chaves no Vim - Tutorial (Parte 2)
Mapeando Chaves no Vim - Tutorial (Parte 3)

rápido
fonte
Oi rápido, obrigado pela resposta. Talvez eu não estivesse claro ao fazer minha pergunta. Não estou tentando fazer nenhum remapeamento de chave dentro do Vim. Na verdade, estou tentando mapear ctrl + hjkl para as teclas de seta - esquerda, baixo, cima, direita, respectivamente, na minha distribuição Ubuntu GNU / Linux. O post que eu vinculei afirma que isso é possível (indiretamente), mas não consigo fazer isso com êxito.
precisa
desculpe, entendi sua primeira edição incorreta. ok, atualizará a resposta)
swift
1
VimOS! Onde eu consigo isso?
Jeremyjjbrown # 23/18
1

Eu tenho o Tux-J e o Tux-K mapeados para cima e para baixo no KDE, é relevante para todas as aplicações. Na verdade, é bastante fácil de configurar.

  1. Vá aqui: System Settings -> Custom Shorcuts -> Preset Actions
  2. Agora clique com o botão direito Preset Actionse escolhaNew -> Global Shortcut -> Send Keyboard Input
  3. Chame o novo atalho VIM-J
  4. Na guia Trigger, clique no botão Atalho e pressione Tux- J.
  5. Na guia Ação, insira Down
  6. Na parte inferior da janela, clique em Apply.
  7. Verifique se o atalho funciona. Nesse caso, configure as teclas HK e L restantes.

Aproveitar!

dotancohen
fonte