Управляющие конструкции readline
Библиотека readline реализует средства, аналогичные по духу возможностям условной компиляции препроцессора языка C и позволяющие назначать горячие клавиши или присваивать значения переменным в зависимости от условий. Поддерживается четыре директивы анализатора.
$if
Конструкция $if позволяет назначать те или иные клавиши в зависимости от используемого режима редактирования, тип терминала или приложения, использующего библиотеку readline. Текст условия продолжается до конца строки - никакие завершающие символы не нужны.
mode
Форма mode= директивы $if используется для проверки того, работает ли библиотека readline в режиме emacs или vi. Ее можно использовать совместно с командой set keymap, например, для установки горячих клавиш стандарта emacs и раскладки emacs-ctlx только если readline запускается в режиме emacs.
term
Форма term= может использоваться для включения специфических горячих клавиш для данного терминала, в частности, для привязки последовательностей символов к функциональным клавишам терминала. Слово справа от символа = сравнивается с полным именем терминала и частью имени терминала до первого вхождения -. Это позволяет задавать, например, sun для сопоставления как с sun, так и с sun-cmd.
приложение
Конструкция приложение используется для включения специфических настроек приложения. Каждая программа, использующая библиотеку readline, устанавливает имя приложения, а в инициализационном файле можно проверять установку определенного значения. Это можно использовать для привязки клавиш к функциям, существенным для конкретной программы. Например, следующая команда задает последовательность клавиш, берущую в кавычки текущее или предыдущее слово в bash:
$if Bash
# Взять в кавычки текущее или предыдущее слово
"\C-xq": "\eb\"\ef\""
$endif
$endif
Эта команда, как видно по предыдущему примеру, завершает команду $if.
$else
Команды в этой ветке директивы $if выполняются, если не выполнено условие проверки.
$include
Эта директива принимает в качестве аргумента имя файла и читает команды и привязки клавиш из этого файла. Например, следующая директива требует прочитать файл /etc/inputrc:
$include /etc/inputrc