首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在默认编辑器中打开Ruby程序的源文件

在默认编辑器中打开Ruby程序的源文件
EN

Stack Overflow用户
提问于 2016-05-10 17:29:28
回答 2查看 359关注 0票数 2

在Windows 7上的Ruby中,如何从命令行打开程序的源文件?

示例:

代码语言:javascript
复制
def dev_mode
  if ARGV[0] == '--dev-mode'
    system('open test.rb')
  end
end

是否可以使用用户计算机的默认编辑器打开程序?例如在记事本中打开它(如果用户没有编辑器),或者用户使用的编辑器作为源文件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-10 18:21:24

使用相关程序打开文件的规范方法因操作系统(或shell)而异。下面是在指定的OSes上工作的4个示例:

打开文件

视窗

使用标准命令shell start,从Windows 95开始:

代码语言:javascript
复制
system %{cmd /c "start #{file_to_open}"}

Mac OS X

使用标准的open命令:

代码语言:javascript
复制
system %{open "#{file_to_open}"}

Linux/Unix Gnome

使用Gnome实用程序gnome-open

代码语言:javascript
复制
system %{gnome-open "#{file_to_open}"}

Linux/Unix

使用xdg-open实用程序:

代码语言:javascript
复制
system %{xdg-open "#{file_to_open}"}

相关程序

在任何一个系统上,检测文件类型的关联程序都是一个相当高的要求。例如,对于Windows,您必须检查注册表,而在Mac中,您必须读取正确的plist值;Linux完全是另一个世界。

你最好简单地要求用户有一个程序来使事情变得容易开始。一旦在应用程序中使用了其他逻辑,就可以在没有现有文件关联的情况下向默认应用程序添加一些有趣的特性,比如回退。

票数 2
EN

Stack Overflow用户

发布于 2016-05-10 17:37:05

在Mac上,您已经到了一半;open在默认应用程序中打开一个文件。默认情况下,它为文本文件打开一个合理的编辑器,为Ruby打开一个XCode;我不会在XCode中编辑Ruby,但如果需要,我可以更改关联。

启动Ruby程序的文件名在$PROGRAM_NAME中,所以您可以这样做

代码语言:javascript
复制
def dev_mode
  if ARGV[0] == '--dev-mode'
    system("open #{$PROGRAM_NAME}")
  end
end

在类似Unix的系统上,包括OS,如果设置了ENV['EDITOR'] ( EDITOR环境变量),您可能需要使用它的值。这是许多程序使用的惯例。

我会让其他人给出其他操作系统的答案。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37145228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档