我正在调整 Git 的寻呼机,但我遇到了一些问题。
我想要的是:
我目前的配置是:
$ git config --global core.pager
less -+F -+X -+S
Run Code Online (Sandbox Code Playgroud)
除了最后一个之外,这可以完成所有操作。
但是,如果我删除-+F
,则在单屏的情况下将没有输出。如果我也删除-+X
,输出又回来了,但我无法通过触摸板滚动less
。
是否有可以满足上述所有要求的解决方法?
更新
tl;dr 解决方案:升级到 530 以下
来自http://www.greenwoodsoftware.com/less/news.530.html:
如果使用 -F 并且文件适合一个屏幕,则不要输出终端初始化序列。
所以有了这个修复,我们甚至不需要费心去决定是否自己使用-X
,less -F
只需照顾它。
附注。我使用的其他一些较少的配置:
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'
Run Code Online (Sandbox Code Playgroud)
我最终自己写了一个包装器。
#!/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"
Run Code Online (Sandbox Code Playgroud)
BSD/OSX 用户应该手动安装gnu-sed
. 神奇的正则表达式,有助于去除颜色代码,来自/sf/answers/1260030341/
我已将此脚本保存到/usr/local/bin/pager
然后git config --global core.pager /usr/local/bin/pager
强迫症患者的治疗,万岁!
归档时间: |
|
查看次数: |
1217 次 |
最近记录: |