Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用文本编辑器的Ruby控制台应用程序?_Ruby_Linux_Rubygems - Fatal编程技术网

使用文本编辑器的Ruby控制台应用程序?

使用文本编辑器的Ruby控制台应用程序?,ruby,linux,rubygems,Ruby,Linux,Rubygems,我正在用Ruby构建一个控制台应用程序。我希望它能做的一件事就是编辑文本文件。我觉得最合理的做法是启动用户设置的任何默认编辑器——nano、vi、emacs。。。让用户决定。我想将要创建/编辑的文件名传递给它 我研究了各种方法,包括像这样的反勾号: response = `nano *nameoffile*` 我也尝试过使用POpen4 Ruby gem,它似乎也没有任何作用 我怀疑这些方法严格适用于立即返回结果的普通、非shell类型的应用程序,像nano这样的编辑器需要不同的技术?非常感谢

我正在用Ruby构建一个控制台应用程序。我希望它能做的一件事就是编辑文本文件。我觉得最合理的做法是启动用户设置的任何默认编辑器——nano、vi、emacs。。。让用户决定。我想将要创建/编辑的文件名传递给它

我研究了各种方法,包括像这样的反勾号:

response = `nano *nameoffile*`
我也尝试过使用POpen4 Ruby gem,它似乎也没有任何作用

我怀疑这些方法严格适用于立即返回结果的普通、非shell类型的应用程序,像nano这样的编辑器需要不同的技术?非常感谢您的反馈

干杯


Aaron。

你可能想看看交互式编辑器,他们是这样做的。

你可能想看看交互式编辑器,他们是这样做的。

你也可以使用

system "nano #{your_file_name}"
你也可以使用

system "nano #{your_file_name}"

关于使用exec()或system()或backticks``来启动交互式进程(如文本编辑器)有一个很好的讨论

看到了吗


如果您想更深入地了解popen4(它实际上做了一些事情,尽管不适合所有情况),它还提供了一些信息,例如优点和不方便之处

关于使用exec()或system()或backticks``启动交互式进程(如文本编辑器)有一个很好的讨论

看到了吗


如果你想更深入地了解popen4(popen4实际上做了一些事情,尽管并不适合所有情况),它还提供了一些信息,例如优点和不方便之处

是的!我不得不砍了他们的宝石一点,但是的,它正是我需要的。非常感谢!为了子孙后代,如果有人需要在控制台应用程序中使用交互式编辑器而不需要文本文件eval()'d,我已经在这里提出了github项目:是的!我不得不砍了他们的宝石一点,但是的,它正是我需要的。非常感谢!为了子孙后代,如果有人需要在控制台应用程序中使用交互式编辑器而不需要文本文件eval()'d,我将github项目分为以下几个部分: