Estou usando o Fedora 30 com o KDE e estou tentando vincular (Zsh) autosuggest-execute
a Ctrl+ Enterpor conveniência. Estou tentando fazer funcionar em gnome-terminal
.
Porém descobri que showkey -a
sempre retorna ^M
nesses três casos: Enter, Ctrl+ Entere Shift+ Enter.
Eu tentei este método ( Ctrl <Return> : "\033M"
em .XCompose
), mas não funcionou porque o arquivo XCompose não estava sendo lido. Então decidi instalar ibus
, pois não é enviado com a minha instalação do KDE com o dnf groupinstall input-methods
.
Correr ìbus-setup
me dá este aviso agora:
GTK+ supports to output one char only: "\033M": ! Ctrl <Return> : "\033M"
Infelizmente, todas as combinações de entrada ainda se resumem ^M
a .gnome-terminal
xterm
Existe uma maneira de diferenciar essas combinações de teclas com ou sem ibus?
Não há necessidade de instalar ibus, etc. Todos os aplicativos X11 têm acesso aos keycodes exatos e às suas traduções xkb / xim, e podem ignorá -los.
O problema está no emulador de terminal e com o fato de não haver uma maneira padrão de representar combinações de teclas como Ctrl-Enter no terminal. Além disso, cada emulador de terminal tem (ou não tem) sua própria maneira de configurar as combinações de teclas.
No
xterm
, como em qualquer aplicativo baseado em xt, você pode configurá-lo facilmente com recursos do X11. Por exemplo, isso traduzirá Ctrl-Enter para o escape correspondente àF33
tecla de função (de acordo cominfocmp
):Então você pode vincular isso
\e[20;5~
a qualquer ação que desejar em readline's~/.inputrc
, withbind
inbash
, withbindkey
inzsh
, etc.Os recursos X11 são armazenados como
RESOURCE_MANAGER
propriedade da janela raiz e podem ser carregados lá com oxrdb
utilitário; normalmente,xrdb
será chamado a partir de um script de inicialização de sessão x11 para carregar o conteúdo do~/.Xresources
arquivo.Os aplicativos KDE ou Gnome gostam
konsole
egnome-terminal
têm sua própria maneira de configurar combinações de teclas para ações; Não sei se isso inclui a capacidade de escrever strings arbitrárias no mestre pseudo-tty.Veja como configurá-lo em
konsole
:Veja também a Referência do Kde para Associações de Teclas no Konsole .
Configurações -> Editar perfil atual -> Teclado -> (selecione o layout de teclado usado) -> Editar -> Pesquisar/Filtrar por
Return
.Edite as seguintes entradas (somente coluna esquerda):
Return-Shift-NewLine
paraReturn-Shift-Ctrl-NewLine
Return-Shift+NewLine
paraReturn-Shift-Ctrl+NewLine
Isso permite diferenciar entre
Enter
eCtrl
+Enter
.Adicione a seguinte entrada:
Return+Ctrl
->\E[20;5~
Agora é só adicionar
bindkey '\e[20;5~' autosuggest-execute
ou qualquer outro coletor em~/.zshrc
.