Bash - поиск истории по подмножеству упорядоченных символов

295
Ctrl-C

Я хочу, чтобы иметь возможность писать dockercomexи иметь, например, матч истории: docker-compose exec (...). Подобный поиск работает в PyCharm, и это фантастически для производительности. В Firefox это похоже, но с пробелами между группами ( docker com exдля этого примера).

В настоящее время я использую Ctrl-R в Bash, но он использует всю мою фразу буквально как одну группу (например grep dockercomex $HISTFILE). обратный поиск не поддерживает регулярные выражения.

Я мог бы использовать:, history | egrep '(docker|com|ex)'но это не удобно для частого использования. Если нет лучшего решения, я думаю, что напишу скрипт, который сделает его намного более удобным, например: recently dockercomex- возвращает последние n совпадений, спрашивая, хочу ли я выполнить какое-либо (по умолчанию: последний).

0
Я считаю, что `search-history- *` гораздо проще в использовании: мой `.bashrc` включает в себя` bind '"\ e [A": history-search-backward'; # Стрелка вверх` и `bind '" \ e [B ": history-search-forward '; # Стрелка вниз`. AFH 6 лет назад 0
Это фантастический совет, я им часто пользуюсь. Но в этом случае у меня в истории много команд с одинаковым длинным префиксом (например, много разных команд, выполняемых в Docker). Я знаю отчетливый инфикс того, что я хочу, но мне нужно пройтись, чтобы добраться до команды: написать какой-нибудь префикс → [Вверх] → перейти к началу неправильного суффикса → удалить → написать еще несколько → [Вверх] → ... - конечно, я использую ярлыки (даже в режиме Vim) для перехода между словами, но это все еще похоже на попытку извлечь что-то существенное из истории Chrome через адресную строку. Ну, не так уж плохо, я всегда добираюсь. Ctrl-C 6 лет назад 0

0 ответов на вопрос