我正在使用Ruby构建一个控制台应用程序。我希望它做的一件事是编辑文本文件。令我印象深刻的是,最合理的做法是启动用户设置的任何默认编辑器 - nano,vi,emacs ......让用户决定。我想将它传递给将要创建/编辑的文件的名称。
我研究了各种方法,包括像这样的反引号:
response = `nano *nameoffile*`
我也尝试过使用POpen4 Ruby gem,它似乎也没有做任何事情。
我怀疑这些方法严格适用于立即返回结果的常见非shell类应用程序,而像nano这样的编辑器需要不同的技术?非常感谢您的反馈!
干杯,
亚伦。
答案 0 :(得分:2)
您可能需要查看interactive_editor
,他们会这样做。
答案 1 :(得分:1)
您也可以使用
system "nano #{your_file_name}"
答案 2 :(得分:0)
围绕使用exec()或system()或反引号``启动交互式进程(如文本编辑器)进行了很好的讨论
见here
如果你想深入了解popen4(事实上做某事,虽然不适合所有情况),例如优点和不便之处,它也有信息