我正在编写一个基于终端的应用程序,但我希望用户能够在单独的编辑器中编辑某些文本数据。例如,如果用户选择编辑当前用户名列表,则该列表应在用户最喜欢的编辑器(vim、gedit 等)中作为文本文件打开。这可能是一个环境变量,例如 $MYAPPEDITOR。这类似于提交消息在 svn 中的工作方式。
最好的方法是在/tmp 中创建一个临时文件,并在编辑器进程终止时读入它吗?还是有更好的方法来解决这个问题?
最佳答案
已经有一个 $EDITOR
变量,这是非常标准的,我已经看到它在各种 unix 上工作。此外,vi
始终是任何风格的 unix 的一个选项。
Debian 有一个 sensible-editor
命令,它可以调用 $EDITOR
,否则会回退到一些标准的。 Freedesktop.org 有一个 xdg-open
命令,可以检测正在运行的桌面环境并使用关联的应用程序打开文件。据我所知,sensible-editor
在其他发行版中不存在,当然 xdg-open
在纯文本环境中会失败,但它不会'如果您认为桌面用户可以看到他们快乐 Shiny 的 gedit
或 kate
而不是可怕的旧 vi< 很重要,那么尝试尽可能多的选项也无妨
或 nano
。 ;)
crontab
和 sudoedit
的工作方式也是通过在/tmp 中创建一个文件。 git
放在.git下,svn
其实放在当前目录下(不是/tmp)
关于c - 如何允许用户在终端的单独应用程序中编辑数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1552042/