2

Об использовании Readline с Bash:

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

Теперь в терминале Gnome F11 и F12 ключевые истории поиска назад / вперед.

Но если я случайно нажму, скажем, F10, он издает звуковой сигнал и добавляет тильду. Я хочу, чтобы он не добавлял тильду (я не уверен, должен ли он подавать звуковой сигнал или ничего не делать).

Пожалуйста, помогите мне сделать все несвязанные ключи не такими глупыми, как вставка тильды.

2 ответа2

1

Для приложений gtk-3, таких как gnome-terminal и nautilus, попробуйте следующее: создайте (или отредактируйте) файл ~/.config/gtk-3.0/gtk.css со следующим содержимым:

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

* {
gtk-key-bindings: NoKeyboardNavigation
}

Для приложений gtk-2 добавьте это в ~/.gtkrc-2.0 :

binding "NoKeyboardNavigation" {
        unbind "F10"
}

class * binding "NoKeyboardNavigation"
1

Насколько я могу судить, в .inputrc нет способа установить значение для "всех ключей". Но в действительности это не требуется в вашем случае использования; Есть только так много ключей, которые вы можете нажать случайно.

Лично я использовал .inputrc изначально созданный на основе какого-то очень старого выпуска SUSE, но он продолжал работать отлично, даже после копирования его в другие установки и дистрибутивы. Этот файл имеет явные сопоставления "ничего" для функциональных клавиш, которые в настоящее время не используются 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~":   ""

где \e[17~ соответствует F6 и т. д.

Отображение неиспользуемых функциональных клавиш на "" должно предотвратить звуковой сигнал и тильду, независимо от того, какую среду рабочего стола вы используете. Я думаю, что вам лучше всего определить ключи, на которые вы, как правило, нажимаете случайно, и назначить их "" в вашем .inputrc .

Вы можете отключить звонок терминала, set bell-style none , также в вашем .inputrc .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .