Ruby on rails vim中带有Pry的vim ruby调试器样式断点
现在,当我想在vim或Sublime文本中设置断点时,我会在代码中插入一行,如下所示:Ruby on rails vim中带有Pry的vim ruby调试器样式断点,ruby-on-rails,ruby,debugging,vim,pry,Ruby On Rails,Ruby,Debugging,Vim,Pry,现在,当我想在vim或Sublime文本中设置断点时,我会在代码中插入一行,如下所示: binding.pry if Rails.env.test? (及其)提供了一个很好的环境,可以在其中从命令行执行交互式Ruby调试 但是,将实际代码添加到项目中以创建每个断点(并记住在提交时删除此类代码)可能会很麻烦 我喜欢在不修改项目源代码的情况下将可视断点放到编辑器中,但在我的规范上下文中实现它时遇到了一些困难(我真的更喜欢首先使用Pry“断点”) 所以问题是,是否有可能删除一个绑定。将引用撬入一个文
binding.pry if Rails.env.test?
(及其)提供了一个很好的环境,可以在其中从命令行执行交互式Ruby调试
但是,将实际代码添加到项目中以创建每个断点(并记住在提交时删除此类代码)可能会很麻烦
我喜欢在不修改项目源代码的情况下将可视断点放到编辑器中,但在我的规范上下文中实现它时遇到了一些困难(我真的更喜欢首先使用Pry“断点”)
所以问题是,是否有可能删除一个
绑定。将引用撬入一个文件,这样像Vim(或Sublime Text等)这样的编辑器将在调试时拾取它并适当地响应,而不在源代码中实际包含行?似乎可以解决您想要的问题。我还没有亲自尝试过,但我打算:)。首先,PRY是一个神奇的工具,我很高兴你找到了它
是否可以将binding.pry引用放入文件。。。在源代码中没有实际包含>的行吗
您需要直接在源代码中删除binding.pry,以便它进入pry进行测试和播放。仅供参考,如果将binding.pry放入规范文件,它将在规范文件中打开pry,而不是它所指的
您可以通过绑定调用方来尝试更好的错误,当您运行出现故障的rails服务器时,a)它会给您更好的错误感觉,并为您提供一个直接的错误查询框 调试时我不使用pry,如果必须,我只使用常规调试器。但是,下面是我的vim工作流程
我已将vim宏保存为“@d”,在我所在的任何行下插入以下代码
需要“调试器”;调试器;0
这使得插入非常容易
为了避免提交调试器行,我设置了一个git钩子(预提交),用于检查提交是否包括这些行(grep)
您可以使用Git Hooks
来防止错误的提交,比如在代码中留下绑定.pry
这篇文章解释了如何做到这一点
这是关于它的另一篇好文章
另外,我完全同意,PRY
是一个特殊的宝石。我不知道有任何编辑器或编辑器插件允许您通过设置断点来使用PRY,而不实际向源代码添加绑定.PRY
调用
我认为最接近您的问题的解决方案是使用类似于的插件,它提供了基于当前文件类型自动插入调试语句的函数。此插件的另一个好处是,还有一个删除调试器语句的命令,您可以这样映射:
nmap <Leader>d :call RemoveAllDebuggers()<cr>
nmap d:call RemoveAllDebuggers()
如其他答案中所述,与Git钩子相结合,可以更轻松地确保调试器调用不会留在代码中。您必须编写一个脚本来在pry和vim之间进行对话。使用vim--remote expr,您也可以实现同样的功能。是否希望使用pry调试器样式的断点(带导航和所有功能)?(我猜你会的)或者你真的只是想在那里放一个撬子吗?我知道ruby_pry.vim,但我没有看到证据表明它能做到我上面描述的。