Ruby 从耙铲上打开Vim?
我正在为个人笔记创建日记应用程序,并在我的Ruby 从耙铲上打开Vim?,ruby,rake,Ruby,Rake,我正在为个人笔记创建日记应用程序,并在我的Rakefile中包含以下内容: task :new do entry_name = "Entries/#{Time.now.to_s.gsub(/[-\ :]+/, '.').gsub(/.0500+/,'')}.md" `touch #{entry_name}` `echo "# $(date)" >> #{entry_name}` end 我想包括的最后一部分是Vim文本编辑器的打开,但是我不知道如何打开它,就像我直接从b
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}
但不幸的是,我认为这两种方法都将其作为一个后台过程打开
我一直在引用“就像在,`
中一样,在当前进程的子shell中运行该命令,但真正的问题是它也试图从命令运行中获取输出,这对Vim来说不太好
您可以:
- 使用
将当前进程替换为新进程(请注意,一旦调用exec
,Ruby/Rake进程将结束,之后将不会运行任何进程)exec
- 使用
创建类似system
s的子shell,但避免了试图获取Vim的stdout的问题。与exec不同,Vim终止后,Ruby将继续`
exec(“我很惊讶exec
不能正常工作。当您使用该方法时会发生什么?脚本刚刚结束,我返回到bash提示符。Vim没有留下.entry\u name.swap
文件,所以我不相信程序会在任何地方逗留。@AndrewMarshall等等…exec“Vim\entry\u name”“
确实有效!!瓦纳把它写在一个答案中,我会检查它。同样,如果您想在使用vim
后运行ruby代码,请使用system
而不是exec