我实际上想将 Ubuntu 12.04 上的默认文本编辑器从 nano 更改为 Geany。当我使用此代码时:
update-alternatives --config editor
..我在列表中没有看到 Geany。
那么添加 Geany,这应该可以工作,对吗?
update-alternatives --install /usr/bin/geany geany /usr/bin/geany 10
另外,顺便问一下,您能否告诉我您是否个人建议我将默认编辑器从 nano 更改为 Geany,以及原因?
答案1
命令行方式为:
sudo update-alternatives --install /usr/bin/editor editor /usr/bin/geany 10
然后sudo update-alternatives --config editor
根据需要使用选择 Geany。
作为命令行方法的图形替代方法,请考虑使用Gnome 替代品(sudo apt-get install galternatives
)。 跑步GAlternatives, 选择编辑在左栏中,然后在右侧添加/选择 Geany。
答案2
另外,这对我也有用:
xdg-mime default geany.desktop $(grep MimeType /usr/share/applications/geany.desktop | sed 's/MimeType=//' | sed 's/;/ /g')
此行获取 gedit 注册的所有 MimeType,执行一些清理(命令sed
)并最终将 geany 设置为它们的默认应用程序。
我在这里找到以及大量有关配色方案的有用信息。
答案3
这有点晚了,但我认为这可能会对某些人有所帮助。
我的问题是我不喜欢复制和粘贴我不理解的东西,所以这里是对迄今为止的答案的解释。
首先,这里有两个问题,并且两个答案本身都是正确的:
- 默认命令行编辑器 - 通过“izx”解决
- 桌面会话中 GUI 应用程序的文件类型(mime 类型)关联 - 由“Steve”解决。
这里更详细一点:
命令行解决方案 - 来自'izx'
- 将 geany(一个 GUI 应用程序)添加到备用编辑器列表并将其设置为默认编辑器。
- 我一直以为编辑器通常保留用于基于文本的编辑器,如 vi、vim、nano 等,但我刚刚检查过,这似乎也能正常工作。
- 结果意味着您可以使用您选择的默认值来打开文件,例如:
- 您在控制台中输入“editor myFile.txt”。
- 在 less 中进入编辑模式(参见http://www.cyberciti.biz/faq/edit-file-when-youre-viewing-withmore-less/)
mime-type 解决方案 - 来自“Steve”
在文件级别,有两个重要列表:
/usr/share/applications/defaults.list
- 系统默认列表。
~/.local/share/applications/mimeapps.list
- 用户个人桌面会话默认列表
该命令起什么作用?
来自 xdg-mime 手册页(man xdg-mime)
xdg-mime - command line tool for querying information about file type handling and adding descriptions for new file type
该xdg-mime default...
命令将条目添加到用户个人列表中。
让我们把这个命令分解一下。
命令:
xdg-mime default geany.desktop $(grep MimeType /usr/share/applications/geany.desktop | sed 's/MimeType=//' | sed 's/;/ /g')
该命令可以读作:
将 geany.desktop 设置为输出 mime 类型的默认应用程序
$(grep MimeType /usr/share/applications/geany.desktop | sed 's/MimeType=//' | sed 's/;/ /g')
看着
$(grep MimeType /usr/share/applications/geany.desktop | sed 's/MimeType=//' | sed 's/;/ /g')
- 从 geany.desktop 文件中获取所有 mime 类型
- 删除“MimeType=”
- 将“;”替换为“ ”
- 给我们:
text/plain text/x-chdr text/x-csrc text/x-c++hdr text/x-c++src text/x-java text/x-dsrc text/x-pascal text/x-perl text/x-python application/x-php application/x-httpd-php3 application/x-httpd-php4 application/x-httpd-php5 application/xml text/html text/css text/x-sql text/x-diff
运行命令后查看用户的个人文件,我们可以看到为 geany.desktop 应用程序设置的所有文件关联:
[Default Applications]
x-scheme-handler/mailto=userapp-Thunderbird-ZP00XW.desktop
message/rfc822=userapp-Thunderbird-ZP00XW.desktop
application/x-extension-eml=userapp-Thunderbird-ZP00XW.desktop
application/x-perl=sublime_text.desktop
text/plain=geany.desktop
text/x-chdr=geany.desktop
text/x-csrc=geany.desktop
text/x-dtd=sublime_text.desktop
text/x-java=geany.desktop
text/mathml=sublime_text.desktop
text/x-python=geany.desktop
text/x-sql=geany.desktop
text/x-c++hdr=geany.desktop
text/x-c++src=geany.desktop
text/x-dsrc=geany.desktop
text/x-pascal=geany.desktop
text/x-perl=geany.desktop
application/x-php=geany.desktop
application/x-httpd-php3=geany.desktop
application/x-httpd-php4=geany.desktop
application/x-httpd-php5=geany.desktop
application/xml=geany.desktop
text/html=geany.desktop
text/css=geany.desktop
text/x-diff=geany.desktop
了解了这一点,这就是我的具体问题以及我如何解决它。
问题:
我想将 Nautilus 中的默认“文件打开”应用程序从“gedit”->“sublime text”更改为“sublime text”。
解决方案:
使用以下命令查找 gedit 的系统默认设置:
$less /usr/share/applications/defaults.list | grep gedit
application/x-perl=gedit.desktop
text/plain=gedit.desktop
text/x-chdr=gedit.desktop
text/x-csrc=gedit.desktop
text/x-dtd=gedit.desktop
text/x-java=gedit.desktop
text/mathml=gedit.desktop
text/x-python=gedit.desktop
text/x-sql=gedit.desktop
将“gedit”替换为“sublime_text”,并将条目添加到我个人 defaults.list 的“默认应用程序”部分
application/x-perl=sublime_text.desktop
text/plain=sublime_text.desktop
text/x-chdr=sublime_text.desktop
text/x-csrc=sublime_text.desktop
text/x-dtd=sublime_text.desktop
text/x-java=sublime_text.desktop
text/mathml=sublime_text.desktop
text/x-python=sublime_text.desktop
text/x-sql=sublime_text.desktop
答案4
因为有评论指出接受的答案不正确,我觉得我应该指出这个问题不能只有一个答案。如果将问题更改为指定 CLI,并将 GUI 查询移至新线程,这将消除混乱。我想这已经太晚了。
无论如何,对于 Ubuntu 14.04 下 gnome 上的 nautilus (又名文件)。 鉴于公认的答案,您可能 (像我一样) 期望等效答案是:
donotdothisssudo update-alternatives --install /etc/alternatives/gnome-text-editor gnome-text-editor /usr/bin/geany 10
我也是这么想的,而且它破坏了链接,所以不要这么做!如果你这么做了,这就是我的情况:
lrwxrwxrwx /usr/bin/gnome-text-editor -> /etc/alternatives/gnome-text-editor
lrwxrwxrwx /etc/alternatives/gnome-text-editor -> /usr/bin/gedit
在修复此错误时,我重新创建了这些链接,如下所示:
lrwxrwxrwx /usr/bin/gnome-text-editor -> /etc/alternatives/gnome-text-editor
lrwxrwxrwx /etc/alternatives/gnome-text-editor -> /usr/bin/geany
由于我实际上所做的只是更换辅助 Simlink,并且我希望系统能做出响应,因此我猜测任务很简单:
sudo ln -s /usr/bin/geany /etc/alternatives/gnome-text-editor
但是,运行 CLI 命令来更改特定于 GUI 的内容肯定是错误的。当我搜索此更改选项时,我的手会带我去 nautilus 菜单系统,位于单个文件类型设置旁边。但是,我去那里的唯一原因是因为解决方案的一部分就在那里。在我看来,如果您遵循了 DPKG(更新替代方案)的逻辑,并将其包含在您的发行版中,那么您就不希望像 Nautilus 这样的用户空间应用程序干扰您的设置管理器应用程序。我解决这个问题的谦虚建议是将新的编辑器设置控件添加到设置 >> 详细信息 >> 默认应用程序,从用户的角度来看,这需要是一个新页面。然后,Nautilus 团队需要更改其菜单,以便将用户重定向到该新页面。这会损害我的手带我去寻找设置的地方,我的手“应该”带我去那里,并管理系统设置的单点输入过程。看起来这个变化需要在 debian 的 galternatives 端口内,尽管我只是猜测。当然,如果没有 Nautilus 团队的支持,那么继续推进这种事情就没有意义,他们还需要指定 API 或等效机制。
在我看来,设置页面需要涵盖默认的 gnome 编辑器选择和用于打开每个单独文件的应用程序(以取代 Nautilus 提供的当前功能)。
我发布此帖只是一时的想法,如果您感兴趣的话,请随意发表。遗憾的是,我自己不知道这样做所需的程序和协议。