Поиск по истории терминала с помощью клавиш вверх и вниз в OS X Lion

После того, как я обновился до OS XI, я не могу использовать свои привязки ~/.inputrc для поиска в истории команд оболочки:

# these allow you to start typing a command and
# use the up/down arrow to auto complete from
# commands in your history
"\e[B": history-search-forward
"\e[A": history-search-backward

Любая идея, что я должен изменить или сделать? Существуют ли какие-либо ключи по умолчанию, которые я мог бы использовать?

Я не знаю, что может быть не так, но для сравнения мой .inputrc имеет те же привязки, что и ваши, и они работают (Mac OS X Lion 10.7.1). На самом деле, если я полностью удалю свой .inputrc, клавиши со стрелками все равно будут работать, поскольку по умолчанию они сопоставляются с аналогичными командами истории, как показано bind -P. Что произойдет со стрелками вверх/вниз, если вы удалите (или переименуете) файл .inputrc?

Ответы (3)

Прокрутка истории вверх/вниз в Терминале работает только в bash, а не в sh. Попробуйте ввести bashтерминал и посмотрите, работают ли клавиши со стрелками. Если это так, вы можете перейти к настройкам и установить оболочку входа по умолчанию на /bin/bash.

Для тех, кто ищет клавиши Page Up/Page Down вместо стрелок вверх/вниз. Используйте указанные ниже настройки.

# Page Up/Down
"\e[5~": history-search-backward
"\e[6~": history-search-forward

Протестировано с iterm и bash версии 3.2.

Для поиска в вашей истории вы также можете использовать отличную функцию оболочки bash.

Это может быть немного не по теме, но в оболочке bash вы можете использовать CTRL-R для поиска назад в истории вашей оболочки.

Пример — поиск ssh-соединений в вашей истории:

tatooine-2257:~ mallert$
(reverse-i-search)`ssh': ssh mallert@localhost

И когда я снова нажимаю CTRL-R, bash выполняет поиск в прежних результатах поиска:

tatooine-2257:~ mallert$
(reverse-i-search)`ssh': ssh localhost

И вы можете нажимать CTRL-R снова и снова. Вы также можете работать с регулярными выражениями.