Ни одна из этих клавиш не является тильдой. Все они генерируют последовательность из нескольких символов, например, ESC [24~
для F12ключа или ESC [15~
для F5ключа (хотя F1-F4 немного отличаются), или даже ESC [5~
для PgUpключа.
Единственная причина, по которой вы получаете тильду, заключается в том, что синтаксический анализатор последовательности клавиш Bash использует общую часть, которую он знает ( ESC [2
), и останавливается, как только узнает, что полная последовательность будет неизвестна. Все, что следует (не обязательно тильда!), Интерпретируется отдельно.
Обратите внимание, что это поведение может отличаться в программах на основе терминала: Bash (readline) имеет свой собственный код для интерпретации специальных ключей, Vim имеет свой собственный, Irssi снова имеет свой собственный. Некоторые программы могут полностью распознать ваше нажатие клавиши как F10 (и, следовательно, игнорировать его).
Чтобы создать F10реальный ключ тильды в глобальном масштабе (для всей ОС), найдите инструменты «переназначения ключа» (возможно, AutoHotkey).
Чтобы сделать F10тильду во всех программах, работающих с терминалом, выполните поиск в настройках терминала. (Терминал в данном случае относится к ConEmu.)
Терминал может иметь свою собственную функцию для переопределения отдельных ключей или, возможно, создания «макросов». (The ConEmu документация предполагает определение макроса с print(…)
действием) .
Чтобы сделать F10тильду в Bash (но только Bash):
Убедитесь, что ваш эмулятор терминала (ConEmu) не привязал F10 к какой-либо своей функции. (Обычная клавиша F10 обычно ни к чему не привязана, однако Shift + F10 - это стандартная клавиша для открытия меню «щелчка правой кнопкой мыши».)
В bash нажмите CtrlV(буквальная вставка) и затем F10 . Вы увидите последовательность, как
^[[21~
.(Начальная
^[
буква представляет ESC, а остальные - буквальные символы.)Если в этот момент, ключ не вставить любую последовательность вообще, это означает, что он был захвачен самим терминалом или другой программой - вернуться к шагу 1.
Откройте (или создайте)
~/.inputrc
файл в текстовом редакторе.Добавьте эту строку, взяв последовательность из шага # 2 и заменив
^[
на\e
:"\e[21~": "~"
Это говорит inputrc вставить
~
после полученияESC [21~
.Снова откройте оболочку Bash (или нажмите CtrlX, CtrlRчтобы перезагрузить inputrc).