都没有
xdg-open some_file
也不
$EDITOR some_file
这是万无一失的,除非您将“默认”定义为它们调用的内容,这不是通常使用的含义。
例如,在我的氙气系统上:
我没有定义全局EDITOR变量:
$ env | grep EDITOR
$ echo $EDITOR
$
因此$EDITOR some_file,无论是在gui环境(x&openbox,在lxterminal中)还是在tty中,都会完全失败。
在gui环境中 xdg-open some_file,在vi中打开文件。在普通的tty中,它尝试执行相同的操作,但是失败。但是vi并不是我最常用的“默认”编辑器。我安装的所有文件管理器都同意我的默认编辑器是ed(不,不是那样的ed-如果我使用的是受虐狂vi,ed则是我编写的脚本)。
可能有理由根据这些命令中的一个或另一个来定义“默认”,但是在大多数用户的一般用法中,“默认”是形容词,适用于在您双击或打开文件时打开文件的任何程序在gui文件浏览器(例如Nautilus,Pcmanfm,Thunar等)中单击它(双击或单击,取决于该特定文件浏览器中的设置)。或者,或者,当突出显示文件并在正午文件浏览器(例如Midnight Commander)中按Enter时,任何程序都会打开文件。
因此,在“默认”的最常见用法中,每个文件浏览器可以具有不同的默认值,当您不加说明地讲默认时,意味着默认文件浏览器中的默认值是什么。如果双击目录(又名“文件夹”)或符号链接到桌面上的目录,或者如果您不使用桌面隐喻,则图形环境中的默认文件浏览器将是打开的文件浏览器。菜单中最有特色的一个。据我所知,从某种意义上讲,这是现实世界中的正常用法,Sumeet Deshmukh的答案是完全正确和完整的。从更抽象的意义上讲,也可能如此。
在非图形环境中,在正统文件管理器之外,应用于编辑器的“默认”一词的常识没有常规应用。在tty中工作的人都不会使用xdg-open some_file或调用编辑器$EDITOR some_file中工作的任何人都不会除非他们正在他人的计算机上工作,不想安装任何东西并且变得绝望。他们通过直接调用要打开的编辑器(按名称)来打开编辑器。如果他们得到了,bash: gedit: command not found他们将尝试他们的第二个最爱,等等。默认设置是无关紧要的。重要的是他们的首选项以及已安装或可以安装的内容。
要点:
。。。gksu gedit /path/file.txt无效,因为gedit不是默认的文本编辑器。。。。
错误。这就是我发布该内容的原因,以解释该语句为什么错误以及该命令失败的原因。无论您定义了什么,默认编辑器都是无关紧要的。
为了使该命令起作用,您需要做两件事:
这两个程序,gksu并且gedit必须安装在系统上。
您必须对该文件及其原始目录具有适当的权限。您必须在路径中的所有目录上都有x,文件本身至少应有r,在父目录上可能至少应有r。一些编辑器可能在文件甚至父目录上都要求w,尽管不是必需的。
您应该能够通过阅读错误消息来说明命令失败的原因。如果您喜欢gedit,请安装它。
但是gksu很危险。如果需要,请使用gksudo。但是,请勿使用任何su / sudo / gksu / gksudo / pkexec类型的命令,除非没有该命令的命令失败。即使这样,也应该失败。如果它应该起作用,则使用一些sudo-ish命令使它起作用,就像“如果不合适,请用更大的锤子”。它将在以后产生更多的问题。在这种情况下,请更正权限,并尝试首先弄清楚它们为什么出错。
任何sudo类型的命令也不是万能的。有时,即使使用gksudo,也必须先更改权限,然后才能编辑文件。
关于gksu听Paddy评论Sumeet答案的危险。他很聪明,已经有一段时间了。重复他的3个链接:
https://askubuntu.com/a/288506/2088
https://bugs.launchpad.net/ubuntu/+source/gksu/+bug/1186676
http://ubuntuforums.org/showthread.php?t=1819589