c - 如何允许用户在终端的单独应用程序中编辑数据?

标签 c unix text editor terminal

我正在编写一个基于终端的应用程序,但我希望用户能够在单独的编辑器中编辑某些文本数据。例如,如果用户选择编辑当前用户名列表,则该列表应在用户最喜欢的编辑器(vim、gedit 等)中作为文本文件打开。这可能是一个环境变量,例如 $MYAPPEDITOR。这类似于提交消息在 svn 中的工作方式。

最好的方法是在/tmp 中创建一个临时文件,并在编辑器进程终止时读入它吗?还是有更好的方法来解决这个问题?

最佳答案

已经有一个 $EDITOR 变量,这是非常标准的,我已经看到它在各种 unix 上工作。此外,vi 始终是任何风格的 unix 的一个选项。

Debian 有一个 sensible-editor 命令,它可以调用 $EDITOR,否则会回退到一些标准的。 Freedesktop.org 有一个 xdg-open 命令,可以检测正在运行的桌面环境并使用关联的应用程序打开文件。据我所知,sensible-editor 在其他发行版中不存在,当然 xdg-open 在纯文本环境中会失败,但它不会'如果您认为桌面用户可以看到他们快乐 Shiny 的 geditkate 而不是可怕的旧 vi< 很重要,那么尝试尽可能多的选项也无妨nano。 ;)

crontabsudoedit 的工作方式也是通过在/tmp 中创建一个文件。 git放在.git下,svn其实放在当前目录下(不是/tmp)

关于c - 如何允许用户在终端的单独应用程序中编辑数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1552042/

相关文章:

powershell - 使用Powershell按列拆分csv文件

loops - 使用 Ansible 替换匹配文件中的几个单词

c - C语言中树的Stack Pop函数中的段错误

将 gchar 与字符串进行比较

c - 打开文件时出错

c - fork系统调用不退出

c++ - 在 c++ win32 中绘制/打印具有透明背景的文本

c++ - #define 指令内存存储

linux - Unix bash shell 脚本 - 在 'for' 循环中迭代数组

unix - 将同一配置单元 session 中的多个查询输出导出到 shell 脚本?