ちょうどdpkg --help
3ページの印刷物が私の顔に飛び出した。一般的な使用法と最も一般的なパラメータを示す最初の10行に興味があるでしょう。
--help
一意の引数を使用してプログラム(すべてのプログラム)を実行するたびに、出力が.より長い場合は自動的$(tput lines)
にパイプされますless
。 bashでこれは簡単に可能ですか?
編集する:結局のところ、私にとって最高の解決策はzshに切り替えることでした。次のフレーズのいずれかを~/.zshrc
使用すると、それぞれ独自の長所と短所があります。
# Modify the input line before it runs
function lessify() {
if [[ "$BUFFER" =~ " --help$" ]] ; then
BUFFER="$BUFFER | less -FX"
fi
zle accept-line
}
zle -N lessify_widget lessify
# Bind to the Enter key
bindkey '^M' lessify_widget
または
# Alias --help ; ignore rest of the line
alias -g -- --help="--help | less -FX ; true "
さらに、私はこの問題を調査するのに節約したよりも多くの時間を無駄にしました。少し後悔しないでください。
ベストアンサー1
ではbash
デバッグ機能を使用してこれを行うことができますが、これは非常に脆弱なソリューションであり、環境によって大きく異なります。
拡張デバッグを有効にする(参照:詳しくはマニュアルをご覧ください。):
shopt -s extdebug
helprun 関数を作成します。
helprun() {
if [ "$#" -eq 2 ] && [ "$2" = '--help' ]; then
"$@" | less -F
return 1
fi
}
その後、それを使用してすべてのコマンドをキャプチャします。
trap 'helprun $BASH_COMMAND' DEBUG
これは各コマンドに対して実行され、コマンドhelprun <command>
の場合はパイプしてコマンドが実行されないように1を返します(ありがとう)。それ以外の場合は正常に動作します。--help
less
extdebug
私が処理できなかった極端なケースがあるかもしれません...