如何编写可以执行的Vim过滤器脚本并将编辑器内容输出为ruby代码?

时间:2016-02-19 20:52:52

标签: ruby-on-rails ruby bundler

我正在尝试为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

0 个答案:

没有答案