要注意,我正在使用Oh-My-Zsh和git 2.17.每当我输入git branch,而不是向我显示我的git的分支时,它会显示如下内容:
~
~
~
~
~
(END)
Run Code Online (Sandbox Code Playgroud)
我可以通过按键盘上的'q'来退出此功能,但我仍然对此出现的原因感到困惑.
在我的新电脑(Mac)中,如果我执行 git diff,它只会显示与终端窗口高度一样多的差异。然后我必须按 Enter 键“向下滚动”才能看到所有其他更改。
在我的旧电脑上,当我执行 git diff 时,它会立即输出整个 git diff,并且我能够使用鼠标上的滚动按钮来查看所有内容。
如何更改 git 设置以实现第二种行为?
我试图让watchr在文件发生变化时自动运行测试,并获得我需要的大部分工作,除了RSpec的所有ANSI颜色都被忽略了.违规代码如下:
stdin, stdout, stderr = Open3.popen3(cmd)
stdout.each_line do |line|
last_output = line
puts line
end
Run Code Online (Sandbox Code Playgroud)
当cmd等于类似的东西时rspec spec/**/*.rb,上面的代码运行RSpec很好,除了所有输出都是单色的.我已经看过使用了Kernel.system,但系统没有返回输出,我需要确定测试是否失败/成功.如何从Ruby中执行包含ANSI颜色的脚本获取输出,并将其输出到控制台?
在OS X终端中,当less它自己或其他程序调用时man,在我们退出后它的输出将不会被写入ttyless.例如,如果我们运行less README,我们会暂时被引导到一个屏幕上
SO rocks.
README (END)
Run Code Online (Sandbox Code Playgroud)
按下之后q,输出less会消失,我们最终会得到类似的结果
$less README
$ # shell waiting for input
Run Code Online (Sandbox Code Playgroud)
但是,如果less被调用git(在我的情况下git设置为寻呼机)则不是这种情况less -r.退出后,输出less始终写入tty.例如,如果我们运行git log --oneline,如果日志很短less则甚至不会被调用; 如果日志长于一个屏幕,那么我们会less像往常一样暂时指向输出屏幕:
0000000 set the pager of git to less
......
1111111 what's wrong with git?
(END)
Run Code Online (Sandbox Code Playgroud)
按下之后q,整个东西都被写入了tty,所以我们最终得到了类似的东西
$git log --oneline # OMG!!!
0000000 set the …Run Code Online (Sandbox Code Playgroud) 如何在git grep没有寻呼机的情况下返回结果?Grep默认执行此操作.当我输给git grep猫时:git grep foo | cat它会这样做,但它在比赛中失去了突出显示.我想在不做的情况下保持对比赛的突出显示git grep foo | cat | grep foo.
我想处理git blame特定文件的完整输出.某些文件太长而无法放在屏幕上,因此用户需要通过按键逐行向下滚动Enter.是否缺少可以打印出完整输出的命令行选项?或者,我可以使用该-L选项来定义行起点和终点.但是,这需要我弄清楚文件有多少行并多次运行命令,这是我想避免的.
git ×5
command-line ×2
terminal ×2
ansi-escape ×1
colors ×1
diff ×1
git-config ×1
less-unix ×1
macos ×1
ruby ×1