Я чувствую себя <command> --help | grep <feature>
очень, очень часто каждый день. Мне было интересно, если бы было возможно сделать что-то подобное ^^
расширяется до, "--help | grep"
а затем я делаю это:
ls ^^ size
Это выполнит следующее:
ls --help | grep size
bash
bash-expansion
Юкашима Хуксай
источник
источник
qh () { type -all "$1" ; { "$1" --help || man "$1" ;} | egrep -i -- "$2" ;}
#, следовательно, вы могли бы: qh ls size, qh ls «что-то | другое» и т. Д. (Optionnal)type -all "$1"
также добавить информацию о $ 1: в ней говорится, что вы будете запускать псевдоним, функцию, a команда и т. д. И она выдает информацию от man «$ 1», если команда $ 1 не имеет опции «--help» (это иногда случается)-a
, но ничего не говорит о-l
или-all
, но функция работает.С помощью
zsh
вы бы использовали глобальный псевдоним:С помощью
bash
этого вы можете использовать расширение истории, которое происходит достаточно рано при синтаксическом разборе оболочки и может работать при замене канала:Заполните историю текстом, который вы хотите заменить, и специальным символом, который вы вряд ли будете использовать в противном случае (например,
£
здесь, на моей клавиатуре):Затем используя расширение истории, чтобы получить это:
Или вы могли бы
readline
расширить--help|grep
некоторые клавиши или последовательности клавиш. Чтобы это применимоbash
только к (а не к другим приложениям, таким какgdb
использование readline), вы можете использоватьbind
встроенную команду bash, которая являетсяbash
API для настройкиreadline
, например, в вашем~/.bashrc
:Или добавьте в свой
~/.inputrc
(файл конфигурации readline):(существуют другие оболочки, подобные
rc
илиes
использующие readline, и где такое связывание может иметь смысл, но AFAICT не устанавливаетrl_readline_name
переменную перед вызовом,readline
поэтому вы не сможете добавить некоторые$if
операторы для них (они будут отображаться какother
все приложения которые используют readline, не называя это своим именем приложения)).Обратите внимание, что вам нужно ввести второй
^
в течение полсекунды (по умолчанию) после первого, чтобы произошла замена.источник
Вы можете использовать привязки readline:
добавить строку как
на ваш ~ / .inputrc
Затем нажмите ^ X ^ R в вашем термине, и привязка будет активирована.
Ключ
ls ^^
будет теперь в результатеls --help | grep
.источник
Использование
less
для просмотра сообщения справкиМожет оказаться полезным увидеть окружающий контекст строк, соответствующих вашему поисковому запросу.
Синтаксис для вызова этой
bash
функции аналогичен функцииqh
в ответе @ tgwtdt, причем первый аргумент - это команда для изучения, а второй аргумент - поисковый термин. Например:Это откроет полное справочное сообщение
less
, выделит каждый экземпляр поискового запроса и прокрутит до первого экземпляра поискового запроса. Затем вы можете нажать,n
чтобы прокрутить вперед до следующей строки, содержащей условие поиска,n
снова для следующего и так далее. Чтобы вернуться к предыдущему экземпляру, нажмитеN
. ИспользуйтеHome
,End
,Page Up
,Page Down
,Up Arrow
иDown Arrow
ключи для общей навигации. Нажмитеq
или,Q
чтобы выйтиless
и вернуться в командную строку.источник
Мне понравилось решение @tgwtdt, поэтому я немного его улучшил.
Это делает то же самое, но делает немного для обработки ошибок, а также пытается обрабатывать встроенные модули.
qh использует () вместо {}, поэтому qh1 () и out являются локальными (в подоболочке).
источник