ruby - 从 Rakefile 打开 Vim?

标签 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 文本编辑器的打开,但我不知道如何打开它,就像我直接从 bash 终端调用它一样。

我试过:

vim #{entry_name}

但不幸的是,我认为它们都将其作为后台进程打开。

我一直在引用“6 Ways to Run Shell Commands in Ruby”。

最佳答案

article you referenced , `s 在当前进程中的 subshel​​l 中运行命令,但真正的问题是它也试图从命令运行中获取输出,但这并没有不要和 Vim 玩得开心。

您可以:

  • 使用 exec 将当前进程替换为新进程(请注意,一旦您调用了 exec,Ruby/Rake 进程就会结束,之后什么都不会运行)。

  • 使用 system 创建一个类似 ` 的子 shell,但避免了试图获取 Vim 的标准输出的问题。与 exec 不同,Vim 终止后,Ruby 将继续。

关于ruby - 从 Rakefile 打开 Vim?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11021456/

相关文章:

html - Material Design Lite 抽屉在导航链接点击时破坏了网站

mysql - 无法抓取 db :migrate because of mysql missing . frm 文件

ruby rake with rails 在生产中缺少常量,但在开发环境中工作

ruby - 如何在 Sequel 中检查约束

ruby-on-rails - Ruby on Rails - 电子邮件确认链接给出 nomethoderror

ruby-on-rails - Rake 规范失败,没有错误消息

ruby-on-rails - 在 "tmp:clear"之后运行任务

ruby-on-rails - rails : Running more than one rake task at once?

ruby - 定义特定的 attr_accessor 方法以区分几种类型的实例变量

ruby-on-rails - Rails 2.3.4 与 Rails 3 + 书籍 - RoR 初学者