2012-04-18 2 views
9

Много раз я использую Ctrl-R для обратного поиска и ошибочного письма. Баш вскакивает на сотни строк, и я в середине команд, которые я использовал неделю назад.Как быстро перейти к последнему/концу истории команд в bash?

Есть ли ярлык для перехода к последним командам, которые я набрал?

Edit: после тестирования его на сервере CentOS и Mac OS X, это выглядит, как это происходит только на OS X.

ответ

3

Я боролся с этой же проблемой.

Вы можете решить это, прервав ctrl-c. Независимо от того, находитесь ли вы в середине обратного поиска или прокручиваете историю со стрелками, прерывание возвращает вас к приглашению с прокруткой истории сразу после последней команды.

UPDATE

Вот хороший трюк, который я только что узнал. Bash и многие другие программы используют Readline под капотом для интерпретации командной строки. Связывание ключей для Readline можно настроить в файле .inputrc или с помощью команды bind. Связи могут использовать несколько функций, предоставляемых Readline. Например, я использую Bash в режиме VI, но я все же хотел бы использовать Emacs-стиль Ctrl-A, так что я есть эта строка в моем файле .bashrc:

связывают «\ Са: начало-строки»

Перечислить все доступные функции Readline: bind -l

Среди функций - конец истории. Функция действительно напоминает ее название. Разница между этим подходом и просто использованием команды abort заключается в том, что это удерживает вас в одном приглашении.

0

Может быть не совсем то, что вы хотите, но вы можете исправить неправильно набранный символ (ы) используя backspace, когда вы находитесь в режиме CTRL-r (обратный i-поиск).

+0

Backspace позволяет мне исправить, но курсор поиска по-прежнему содержит 100 команд. – volni

3

При использовании libreadline, Alt-> (или Meta->). Дополнительная информация о Readline shortcuts или поиск Команды для манипулирования историей на странице руководства.

+1

Это не работает для меня, используя iTerm2 на Mac OS X Lion. – volni

+0

Это зависит от используемой оболочки и есть ли у нее поддержка libreadline или нет. Никогда не использовал iTerm2 самостоятельно, проверьте, есть ли у него некоторые настройки для определения мета-ключа. Кстати, если вы используете OS X, эти ярлыки отлично работают в терминале. –

0

Возможно, вы захотите попробовать "предложить коробку", как история HSTR. Он читает историю bash и обеспечивает быструю навигацию и фильтрацию - вы можете видеть контекст подобных записей истории. После выбора записи истории ее можно редактировать в командной строке.

0

На Mac, попробуйте command + . Это работает для меня. Я пытался alt+. и alt+shift+., не работает для меня. А затем найдено command + . фактически работает

Смежные вопросы