我正在为个人笔记创建一个日志应用程序,并且在我的 Rakefile
中包含以下内容:
task :new do
entry_name = "Entries/#{Time.now.to_s.gsub(/[-\ :]+/, '.').gsub(/.0500+/,'')}.md"
`touch #{entry_name}`
`echo "# $(date)" >> #{entry_name}`
end
我想包括的最后一部分是 Vim 文本编辑器的打开,但我不知道如何打开它,就像我直接从 bash 终端调用它一样。
我试过:
vim #{entry_name}
但不幸的是,我认为它们都将其作为后台进程打开。
我一直在引用“6 Ways to Run Shell Commands in Ruby”。
最佳答案
如 article you referenced , `
s 在当前进程中的 subshell 中运行命令,但真正的问题是它也试图从命令运行中获取输出,但这并没有不要和 Vim 玩得开心。
您可以:
使用
exec
将当前进程替换为新进程(请注意,一旦您调用了exec,Ruby/Rake 进程就会结束
,之后什么都不会运行)。使用
system
创建一个类似`
的子 shell,但避免了试图获取 Vim 的标准输出的问题。与exec
不同,Vim 终止后,Ruby 将继续。
关于ruby - 从 Rakefile 打开 Vim?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11021456/