Chaves não ligadas no ReadLine

2

Sobre o uso do Readline com o Bash:

$ cat ~/.inputrc 
"\C-[[Z": complete-command
"\C-[[23~": history-search-backward
"\C-[[24~": history-search-forward

Agora, no terminal Gnome, F11 e F12, histórico de pesquisa chave para trás / para frente.

Mas se eu acidentalmente pressionar F10, ele emitirá um sinal sonoro e adicionará til. Eu quero que não adicione til (eu não tenho certeza se deve bipar ou não fazer nada).

Por favor, ajude-me a fazer com que todas chaves não ligadas não façam coisas sem sentido, como inserir o til.

    
por porton 17.11.2015 / 03:49

2 respostas

1

Até onde eu sei, não há como definir um valor para "todas as chaves" em .inputrc . Mas, na realidade, isso não é realmente necessário em seu caso de uso; há apenas tantas chaves que você pode acertar por acidente.

Pessoalmente, tenho usado um .inputrc originalmente derivado de algum lançamento antigo do SUSE, mas ele continua funcionando perfeitamente, mesmo depois de copiá-lo para várias outras instalações e distros. Este arquivo tem mapeamentos "nothing" explícitos para chaves de função que não são usadas atualmente por readline:

#
# Function keys F1 - F12
#
$if term=linux
#
# On console the first five function keys
#
"\e[[A":    prefix-meta
"\e[[B":    undo
"\e[[C":    ""
"\e[[D":    kill-line
"\e[[E":    ""
$else
#
# The first five standard function keys
#
"\e[11~":   prefix-meta
"\e[12~":   undo
"\e[13~":   ""
"\e[14~":   kill-line
"\e[15~":   ""
$endif
"\e[17~":   ""
"\e[18~":   ""
"\e[19~":   ""
"\e[20~":   ""
"\e[21~":   ""
# Note: F11, F12 are identical with Shift_F1 and Shift_F2
"\e[23~":   ""
"\e[24~":   ""

onde \e[17~ corresponde a F6 e assim por diante.

Mapear as teclas de função não utilizadas para "" deve evitar o bipe e o til, não importa qual ambiente de área de trabalho você esteja usando. Acho que sua melhor aposta é identificar as chaves que você tende a acertar acidentalmente e atribuí-las a "" em seu .inputrc .

Você pode desativar a campainha do terminal com set bell-style none , também no seu .inputrc .

    
por 16.12.2015 / 01:31
1

Para aplicativos gtk-3 como o gnome-terminal e o nautilus, tente isto: Crie (ou edite) o arquivo ~/.config/gtk-3.0/gtk.css com o seguinte conteúdo:

$ cat ~/.config/gtk-3.0/gtk.css
@binding-set NoKeyboardNavigation {
unbind "F10"
}

* {
gtk-key-bindings: NoKeyboardNavigation
}

Para aplicativos gtk-2, adicione isso em ~/.gtkrc-2.0 :

binding "NoKeyboardNavigation" {
        unbind "F10"
}

class * binding "NoKeyboardNavigation"
    
por 13.12.2015 / 15:07

Tags