Gitのページネーターを調整していますが、いくつかの問題が発生しました。
私が望むもの:
- 常にカラーで出力
- タッチパッドまたはマウスを使ってスクロール
- 1画面で終了
私の現在の構成は次のとおりです。
$ git config --global core.pager
less -+F -+X -+S
最後の項目を除いてすべてを実行できます。
ただし、削除すると、-+F
単一画面の場合は出力はありません。その項目も削除すると-+X
出力が再び表示されますが、タッチパッドでスクロールすることはできませんless
。
上記の要件をすべて満たす解決策はありますか?
ベストアンサー1
修正する
tl;drソリューション:530未満にアップグレード
~からhttp://www.greenwoodsoftware.com/less/news.530.html:
-Fを使用してファイルが1画面に収まると、端末初期化シーケンスは出力されません。
-X
したがって、この修正を使用すると、私たちが直接使用するかどうかを心配する必要はless -F
ありません。
PS。私が使用するあまり一般的な構成は次のとおりです。
export PAGER='less -F -S -R -M -i'
export MANPAGER='less -R -M -i +Gg'
git config --global core.pager 'less -F -S -R -i'
#alias less='less -F -S -R -M -i'
結局私はラッパーを自分で書いた。
#!/usr/local/bin/bash
# BSD/OSX compatibility
[[ $(type -p gsed) ]] && SED=$(type -p gsed) || SED=$(type -p sed)
CONTEXT=$(expand <&0)
[[ ${#CONTEXT} -eq 0 ]] && exit 0
CONTEXT_NONCOLOR=$( $SED -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g" <<< "$CONTEXT")
LINE_COUNT=$( (fold -w $(tput cols) | wc -l) <<< "$CONTEXT_NONCOLOR" )
[[ $LINE_COUNT -ge $(tput lines) ]] && less -+X -+S -R <<< "$CONTEXT" || echo "$CONTEXT"
BSD / OSXユーザーは手動でインストールする必要がありますgnu-sed
。驚くべき正規表現は、カラーコードを削除するのに役立ちます。https://stackoverflow.com/a/18000433/2487227
/usr/local/bin/pager
私はこのスクリプトを保存しましたgit config --global core.pager /usr/local/bin/pager
強迫障害患者の治療が万歳!