gpt4 book ai didi

ruby - 在 Ruby 中编程 TextMate。 TextMate.go_to 的问题

转载 作者:数据小太阳 更新时间:2023-10-29 07:58:09 25 4
gpt4 key购买 nike

尽管我是 Ruby 的初学者,但我正在修改一个 TextMate 包。我要解决的问题是在命令输出后将插入符号移动到某个位置的问题。

基本上是这样的:我按下了一个组合键,它触发了一个命令来过滤文档并在相关位置插入文本,然后退出并用新过滤的文本替换文档。

希望接下来发生的是插入符号移回原来的位置。当我找到 TextMate.go_to 函数时,我非常高兴,但我只能让它部分工作。函数:

positionY = ENV['TM_LINE_NUMBER']positionX = ENV['TM_LINE_INDEX']...TextMate.go_to :line => positionY, :column => positionX; #column no worky

我可以将插入符号移到正确的行,但列参数不起作用。我试过移动它们,甚至只用列参数来实现这个功能,但没有成功。我也尝试过使用硬编码整数,但 positionX 参数打印了正确的行索引,所以我怀疑那里有任何东西。

This是我找到的关于此方法的唯一文档,但我查看了 textmate.rb 并且在我未经训练的眼睛看来我正在正确使用它。

我知道这可以通过宏来实现,但我想尽可能避免这种情况。我也知道,如果您选择“作为片段插入”,则可以使用标记,但我必须先清除文档,而且我还没有真正弄清楚如何在不使用“替换文档”选项的情况下执行此操作。有人吗?

最佳答案

让我们看一下绑定(bind)的源代码:

def go_to(options = {})
default_line = options.has_key?(:file) ? 1 : ENV['TM_LINE_NUMBER']
options = {:file => ENV['TM_FILEPATH'], :line => default_line, :column => 1}.merge(options)
if options[:file]
`open "txmt://open?url=file://#{e_url options[:file]}&line=#{options[:line]}&column=#{options[:column]}"`
else
`open "txmt://open?line=#{options[:line]}&column=#{options[:column]}"`
end
end

相当骇人听闻的是,绑定(bind)设置了一个 txmt://URL 并在 shell 中对其调用 open。

因此,首先要做的是构建一个开放的 URL 并将其输入到终端/您的浏览器中,以查看 TextMate 是否遵守列参数。如果可行,那么您的版本中 Textmate.go_to 的实现可能存在错误。

关于ruby - 在 Ruby 中编程 TextMate。 TextMate.go_to 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/625912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com