我正在尝试为Vim编写一个过滤脚本,它将在我的编辑器中在rails上下文中执行行。
到目前为止这种作品:
〜/斌/ rails_do:
#!/usr/bin/env ruby
puts `bundle exec rails runner "#{STDIN.read}"`
在Vim过滤此行
puts 'MyCamelVar'.underscore
输出
my_camel_var
但过滤此行
%w(sdf ssdf d dfdss sdfs).collect{|x| puts "#{x} text" }
导致语法错误
ruby/2.3.0/gems/railties-4.2.5.1/lib/rails/commands/runner.rb:62:in `eval': unexpected end-of-input, expecting '}' (SyntaxError)
%w(sdf ssdf d dfdss sdfs).collect{|x| puts #{x}
^
此外,过滤多行会产生语法错误。
看起来它正在将#解释为评论开始。
如果我逃脱了“它有效,但此时几乎不值得:
%w(sdf ssdf d dfdss sdfs).collect{|x| puts \"#{x} text\"}
Running via Spring preloader in process 79265
sdf text
ssdf text
d text
dfdss text
sdfs text