Связать Ctrl- \ in inputrc?

Я с этим работаю и не могу заставить его работать. Использование Ctrl + V в терминале правильно выводит ^\ для этой комбинации, поэтому оно должно быть узнаваемым.

Поскольку у меня есть Ctrl + \ bound to suspend-frame в emacs, я хотел бы иметь возможность быстро вернуться на передний план с помощью другого нажатия Ctrl + \ .

Я считаю, что это единственная жизнеспособная комбинация:

 "\C-\\": "fg\n" 

Если я нажимаю Enter после Ctrl + V для этой комбинации, я получаю следующий вывод, который может быть полезен:

 bash: $'\034': command not found 

One Solution collect form web for “Связать Ctrl- \ in inputrc?”

Ctrl + \ является одним из управляющих символов, которые заставляют терминал посылать сигнал (SIGQUIT), например Ctrl + C (SIGINT) и Ctrl + Z (SIGTSTP). Вы можете запустить stty -a чтобы показать, какие символы имеют особое значение для терминала; см. Очистить / стереть скрытый невидимый пароль на оболочке / терминале в Linux для получения более подробной информации. Результатом является то, что когда вы нажимаете Ctrl + \ , bash не видит символ на его стандартном входе, он видит сигнал, и это не проходит через механизмы привязки ключей.

Вы можете отключить значение для символа в терминале командой stty quit undef . Если вы это сделаете, bash увидит символ как входной сигнал, и ваше связывание ключей вступит в силу.

Чтобы удержать Ctrl + \, чтобы быть привязкой к bash, но иметь нормальную привязку терминала при запуске команды, измените параметры терминала до и после запуска команды.

 preexec () { stty quit '^\' } precmd () { stty quit undef } preexec_invoke_exec () { [ -n "$COMP_LINE" ] && return # do nothing if completing [ "$BASH_COMMAND" = "$PROMPT_COMMAND" ] && return # don't cause a preexec for $PROMPT_COMMAND local this_command=`HISTTIMEFORMAT= history 1 | sed -e "s/^[ ]*[0-9]*[ ]*//"`; preexec "$this_command" } trap 'preexec_invoke_exec' DEBUG PROMPT_COMMAND='precmd' 

Вместо того, чтобы создавать тип ключа fg и новую строку, привяжите ключ к команде оболочки. Вы не можете сделать это из .inputrc , который применяется ко всем приложениям readline, а не только к bash. Вместо этого определите привязку bash в вашем .bashrc :

 bind -x '"\C-\\": "fg"' 
  • Измените .inputrc, чтобы исправить ошибку терминала Mac с режимом vi
  • Как печатать нажатия клавиш в формате .inputrc?
  • Если оператор inputcc
  • Как печатать быстрые клавиши в форме для человека?
  • Назначьте в TAB как полное меню, так и dynamic-complete-history
  • Bash отображает международные символы как escape-последовательности
  • Bash: отображение backward-delete-char на другой ключ
  • Как связать Ctrl + стрелки / backspace / del с командами Readline
  • Восстановить последний аргумент последней команды в режиме bash 'vi
  • Почему «bind ~ / .inputrc» приводит к тому, что мой правый ключ косой черты ('/') отключается до повторного входа?
  • Как вызвать «sub» .inputrc? (Как в .bashrc, где вы можете «source sub_script.sh»)
  • Linux и Unix - лучшая ОС в мире.