从vim运行ruby代码

时间:2011-08-12 15:40:39

标签: ruby vim

是否可以在Vim中编辑ruby程序后仍然在编辑器中运行它,而不是使用命令行?

6 个答案:

答案 0 :(得分:16)

从Vim,您可以运行当前缓冲区: :!ruby %

根据您的使用情况,它可能有用或无用。

同样,您可以使用:!command

调用任何shell命令

答案 1 :(得分:0)

不是真的。如果在构建时链接到它,则Vim使用ruby作为内部消费的扩展语言。您可以将缓冲区管道传输到外部 ruby​​解释器,正如Xavier T.指出的那样。

答案 2 :(得分:0)

作为@Xavier解决方案的补充,我建议您在.vimrc内以下列方式绑定它:

" run ruby code using leader-r only when inside a .rb file
au BufRead, *.rb nmap <leader>r :!ruby %<cr>

答案 3 :(得分:0)

是的,这是可能的。 例如 让我说我想写一个文件字你好100000 现在我不会手动执行此操作,但我将使用ruby脚本并在vim中运行它。 在终端中键入vim script.rb创建一个新文件 输入以下代码:

10000.times do
       puts "hello"
end

退出之前 按转义然后输入:

:w ! ruby > testfile.txt

按回车键 这将做的是它将在vim中运行脚本并将返回的字符串添加到名为testfile的文本文件中。确保将文件放在同一目录中,或者可以指定目录以及名称。

答案 4 :(得分:0)

这是一个老问题,但我想通过@xavier调整答案

将它放在你的.vimrc中,你就可以运行当前的ruby脚本而无需每次都确认点击ENTER:

autocmd BufRead, *.rb nmap <leader>r :silent !{ruby %}<cr>

答案 5 :(得分:0)

您可以使用此功能。

function RunWith (command)
  execute "w"
  execute "!clear;" . a:command . " " . expand("%")
endfunction

然后,只需创建仅适用于 ruby​​ 的快捷方式。您应该转到 ruby​​ 文件并按此快捷方式:)

autocmd FileType ruby nmap <Leader>e :call RunWith("ruby")<cr>

您可以为任何文件类型创建快捷方式。 这是 javascript 示例:

autocmd FileType js nmap <Leader>e :call RunWith("node")<cr>