Não há conexão direta entre xmodmap
e .inputrc
.
Existem algumas maneiras, dependendo do emulador de terminal, para modificar as chaves enviadas pelo terminal. Alguns desses incluem
- modificando a configuração do teclado X ( xkb )
- modificando os códigos de teclas enviados para um determinado evento ( xmodmap )
- coisas específicas do terminal, como o recurso
translations
usado pelo xterm.
No entanto, na situação normal, control / I envia um caractere guia porque é assim que quase todos os terminais foram configurados.
Com xkb
, você pode (em princípio) alterar o que o teclado faz. Por sua vez, os aplicativos X detectam eventos de pressionamento e liberação de teclas e os traduzem em símbolos-chave. xev
é útil para mostrar eventos. Um emulador de terminal rodando em X recebe a série de eventos, que (usando chamadas de biblioteca X) podem se traduzir em caracteres. Um tab
é apenas outro caractere nesse caso.
xmodmap
nesse processo seria uma alteração ad hoc na configuração do teclado X.
Se você estiver usando xterm
, o recurso translations
fornece muita configurabilidade. Essa é uma característica do X Toolkit , que permite que você associe várias combinações de teclas com o build do xterm em ações. Os atalhos de teclado padrão estão listados no manual . Você pode substituir ou adicionar a essas ligações. Existem vários locais onde você pode definir as informações ( $HOME/.Xdefaults
, por exemplo, embora possa ficar desordenado facilmente). Por exemplo, eu defino a variável de ambiente XAPPLRESDIR
para apontar para o meu usuário diretório que contém arquivos customizados de padrões de aplicativos. Em um chamado XTerm
, eu poderia colocar isso para alterar o resultado de ctrl / I :
*VT100*translations: #override \n\
Ctrl ~Shift<Key>I:string("??")
Como a tecla tab possui seu próprio símbolo de tecla especial, ela não é afetada por esta tradução.