Как перезагрузить.inputrc?
Фон
Я слышал, что модуль readline читает ~/.inputrc
и именно так это меняет поведение нажатий клавиш в таких программах, как bash.
Вопрос
Как я могу перезагрузить это после редактирования, чтобы увидеть измененное поведение без перезапуска моей терминальной программы?
6 ответов
По умолчанию, C-x C-r
связан с re-read-init-file
,
См. Справочное руководство Bash для объяснения.
Вы также можете перезагрузить новые записи из командной строки, используя bind -f ~/.inputrc
, Это загрузит записи в.inputrc. Обратите внимание, что он просто выполняет загрузку, а не "перезагрузку" - поэтому он не сбрасывает строки, которые вы удалили из.inputrc.
Чтобы быстро проверить с чистого листа, просто запустите bash
затем поработайте внутри этой новой вложенной оболочки (или запустите новый терминал).
Это сработало для меня
bind -f ~/.inputrc
https://unix.stackexchange.com/questions/153357/inputrc-file-not-sourcing-correctly/246422
В.inputrc сначала выберите вашу привязку, а после связать re-read-init-file
функция:
set editing-mode vi
"\C-x\C-r": re-read-init-file
Нажмите CTRL и x, отпустите оба, нажмите CTRL и r.
Это сработало для меня:
exec $SHELL
При этом текущая оболочка снова запускается без создания подпроцесса и включает выполнение всех обычных инициализаций и чтения сценариев, поэтому любые новые или измененные настройки в /etc/inputrc, ~/.profile, ~/.bashrc и т. д. вступают в силу.
Следующий фрагмент для
~/.inputrc
будет отображаться C-x C-r во всех раскладках (emacs, командный режим vim и режим вставки vim):
set keymap emacs
"\C-x\C-r": re-read-init-file
set keymap vi-command
"\C-x\C-r": re-read-init-file
set keymap vi-insert
"\C-x\C-r": re-read-init-file