Ruby &引用;执行并更新';#=&燃气轮机';标记”;为了维姆

Ruby &引用;执行并更新';#=&燃气轮机';标记”;为了维姆,ruby,vim,plugins,textmate,Ruby,Vim,Plugins,Textmate,VIM中是否有可能为ruby代码重复“执行并更新“#=>”标记”TextMate特性 我想要一些像: x = 2 class A def a 42 end end x # => A.new.a # => 输入一些命令。。。得到 x = 2 class A def a 42 end end x # => 2 A.new.a # => 42 以下是此功能的说明: 另一个绝对值得了解的工具 是“执行和更新”#=>” “标记”命令(打开⌃

VIM中是否有可能为ruby代码重复“执行并更新“#=>”标记”TextMate特性

我想要一些像:

x = 2
class A
  def a
    42
  end
end

x # => 
A.new.a # =>
输入一些命令。。。得到

x = 2
class A
  def a
    42
  end
end

x # => 2
A.new.a # => 42
以下是此功能的说明:

另一个绝对值得了解的工具 是“执行和更新”#=>” “标记”命令(打开⌃⇧⌘E默认情况下)。 要使用它,请添加一些注释标记 (上面有一个片段#⇥ 那将 为您插入这些)到 您希望看到的线路 结果,然后触发 指挥部。TextMate将运行您的代码 并报告测试结果 注释中的行内联。这 该功能非常适合发布代码 在线,因为它显示了源代码和 把结果放在一起


使用来自的
xmpfilter

将其作为Vim函数编写似乎不太难。试试这个:

function! ExecuteAndUpdate()
    ruby << EOF
        marker = '# =>'
        buf = VIM::Buffer.current
        lines = File.readlines(buf.name)

        bnd = binding
        eval(lines.join("\n"), bnd)

        lines.each_with_index do |line, i|
            if line.match(/#{marker}/)
                result = marker + ' ' + eval(line, bnd).inspect
                buf[i+1] = line.sub(/#{marker}.*/, result).chomp
            end
        end
EOF
endfunction
函数!ExecuteAndUpdate()

鲁比:是的,我想这是另一个限制。