Linux 上没有完全可靠的“默认编辑器”概念,更不用说更广泛的类 Unix 系统了。
传统上,用户会将环境变量设置EDITOR
为他们选择的编辑器的路径。如果设置了这个变量,我想你可以有理由相信他们会知道如何使用它,即使他们最终会遇到像nano
.
一个稍新的约定是设置VISUAL
为首选的“可视化编辑器”——我猜这个术语来自于vi
与行编辑器(如ed
.
${VISUAL-${EDITOR-nano}} path/to/new/file.txt
在 Debianish 系统上,系统默认编辑器可以通过alternatives
命令进行配置和使用editor
。
当然,在 XDG 系统上,您可以简单地
touch path/to/new/file.txt
xdg-open path/to/new/file.txt
不用说,这只有在您拥有 XDG 时才有效,即在实践中具有活动图形会话的 Linux(或者可能是现代 *BSD)平台(不包括 Mac 和 XDG 之前的图形系统,当然还有任何服务器环境)没有图形用户界面)。
顺便说一句,如果我能大致猜出你的脚本做了什么,它可能会被缩减为一个相当简单的sed
脚本。请记住,sed
可以(几乎)做所有事情grep
并且tail
可以。也许还可以看到组合两个 sed 命令- 这是一个快速而肮脏的重构。
cd /usr/share/applications
$(sed -n "s:^Exec=\([^%]*\)\(%.\(.*\)\)*:\1\3:p" "$(sed -n "s:^$1=::p" defaults.list | tail -1)" | tail -1) &
但是,从快速谷歌搜索来看,它似乎/usr/share/applications/defaults.list
是特定于 OpenDesktop 环境的;但它是系统范围的默认默认值 - 管理员可能已经在不同的位置安装了覆盖,并且个人用户可能有个人偏好。查找和遍历这个层次结构正是这样xdg-open
做的,所以我不会尝试在我自己的临时脚本中重新实现它,并且建议你也不应该这样做。
您的问题中没有关于图形环境的任何内容,因此不清楚您是否真的在为几乎不知道如何在图形环境中单击和流口水的初学者寻找一个简单的编辑器(在这种情况下,我会说 go with touch
follow by xdg-open
)或一个称职的程序员的编辑器在窗口中以哪种方式运行或可能不运行(也许尝试VISUAL
使用回退到EDITOR
,并记录您使用此机制)。