是否可以在Vim中编辑ruby程序后仍然在编辑器中运行它,而不是使用命令行?
答案 0 :(得分:16)
从Vim,您可以运行当前缓冲区:
:!ruby %
根据您的使用情况,它可能有用或无用。
同样,您可以使用:!command
答案 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>