Как перезагрузить.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
Другие вопросы по тегам