我遇到这种奇怪的行为已经有一段时间了。 我将用ctrl+D
退出守卫,当我收到 bash 提示时,当我输入时,提示中没有任何显示。 我可以输入 shell 命令并且它们会执行,但是在我输入时没有文本出现。 键入的命令的输出确实显示出来。 使用GNU bash, version 4.2.25(1)-release (x86_64-pc-linux-gnu)
。
可能是一些 stdout/stderr 剩余物 - 或不死撬会话/线程。
Guard 2.7.0 已发布 - 您还有问题吗? 如果是这样,使提示不可见的最后一行是什么?
谢谢,我会升级,看看这周会发生什么。
刚刚升级,我仍然看到这个问题。 我不确定你的第二个问题是什么意思。 运行规范后 Guard 处于空闲状态,当我按ctrl+D
退出时,我会收到$
bash 提示,但是当我尝试输入命令时,它之后没有任何显示。
Guard 使用 LumberJack,我认为是 LumberJack 线程没有被清理(因此,当警卫退出时,LumberJack 在您获得 shell 提示后将剩余的输出消息转储到“背景”中,因此……shell 提示被隐藏。
这可能会很快得到解决。
啊好吧。 谢谢!
与此同时,你有没有试过输入reset
?
(我发现了这个问题,因为当我使用 pry-byebug 运行警卫时,我可以看到我在警卫 repl 中输入的内容,但是当我将 binding.pry 添加到文件时,我看不到我正在输入的内容在那个repl. 奇怪的
@bf4 - 可能是缓冲问题。 您可以尝试放入您的 Guardfile:
$stderr.sync = true
$stdout.sync = true
并在您的应用程序中的某处执行相同操作(例如在binding.pry
)。
这只是为了看看这样做是否会改变任何东西(保持同步输出没有意义)。
这也可能是 readline 和 Pry 的问题,因此您可能希望根据当前在其文档中推荐的内容卸载这两者并安装 Pry(和 readline)。
或者您可以确保在某处没有自定义配置。
我通过删除 readline-rb gem 并根据 osx 编辑 .editrc 来修复它
文档就在 readline 建议之前。 Ruby 2.1.4 通过 rvm 在 osx,
守卫 2.7 和 2.9
我正在关闭它,因为它似乎是一个 readline 问题,而不是一个 Guard 问题。
如果我可以在 Guard 中做些什么来防止这种情况(或解决这个问题) - 请重新打开。
我认为这实际上可能是guard-zeus
。 当我删除那颗宝石时,问题就消失了。
@mockdeep - 奇怪。 但是谢谢你让我知道。 如果我重现它(我使用 Linux),我会解决这个问题。
当插入guard-zeus
时,我一直得到它。只需启动guard
,也许运行一些规范,按 ctrl+D 和 presto。 我也在用 Linux。
是的,很酷的 Zeus 输出更新会干扰 Pry。
解决方法:
guard 'zeus', cli: '> /dev/null' do
另一个解决方法当然是在单独的终端中简单地运行 Zeus。
我在这里提交了一个问题: https :
不过需要在 Zeus 中进行更改以支持这一点。
好的。 如果我遇到任何类似的问题,我会牢记这一点。 现在我们已经切换到spring
。
如果你在 Linux 上使用 spring,你可能想订阅这个问题: https :
好的! 跟着。
所以,我在文档https://github.com/guard/guard/wiki/Add-Readline-support-to-Ruby-on-Mac-OS-X 中看到我提到的.editrc
修复是'在那里。 我在历史中寻找它,结果它在Pry Docs 中
如何在 OSX 中获得 Pry 的 readline 支持(ctrl+r 等)?
从技术上讲,对于 OSX,您不需要 readline,我们将专注于使用 OSX 附带的 libedit。
编辑您的主目录中的文件
.editrc
。 添加这一行:bind "^R" em-inc-search-prev
您现在可以使用 ctrl+r 进行反向历史搜索。
参考: http : 20080313113705760
或者,安装 GNU Readline 并让 Ruby 使用它: https :
最后,Pry 确实与 rb-readline 一起工作,它是 Readline 的纯 Ruby 实现,它不应受到平台的影响并安装标准 Readline 的依赖项。
参考: https :
这些文档似乎相互交谈。 我可以添加 editrc 信息或链接到 pry 文档吗?
@bf4 -
我可以添加 editrc 信息或链接到 pry 文档吗?
绝对地! 将不胜感激!
我也遇到了这个问题。 即使在重新启动后,我也使用 spring+guard,当我在代码中放置 binding.pry 断点时,我看不到我输入的任何内容。 我尝试将bind "^R" em-inc-search-prev
到~/.editrc
并重新启动我的终端,但这没有帮助。 我也试过reset
,没有帮助。
@rahilsondhi export DISABLE_SPRING=1
一切烦恼都会烟消云散
谢谢。 我试着在开始守卫之前把它放在我的终端 - 不
骰子。 我什至从我的 Guardfile 中删除了 spring,没有骰子。
2015 年 4 月 7 日,星期二,上午 11:21,Benjamin Fleischer <
[email protected]> 写道:
@rahilsondhi https://github.com/rahilsondhi export DISABLE_SPRING=1 和
你所有的烦恼都会消失—
直接回复此邮件或在 GitHub 上查看
https://github.com/guard/guard/issues/619#issuecomment -90688628。
最有用的评论
与此同时,你有没有试过输入
reset
?(我发现了这个问题,因为当我使用 pry-byebug 运行警卫时,我可以看到我在警卫 repl 中输入的内容,但是当我将 binding.pry 添加到文件时,我看不到我正在输入的内容在那个repl. 奇怪的