无法将Sublime Text设置为默认应用程序

我想将Sublime Text设置为默认应用程序,以打开像.cpp和.java这样的文件,但是在“选择应用程序”中没有任何应用程序列表显示Sublime Text。
我尝试了此链接中的方法,但它没有起作用: 将所有关联从gedit更改为另一个应用程序 是否有其他替代方法?
如果有需要,以下是一些相关命令的输出:
$ ls -al /usr/share/applications/*sublime*
-rw-r--r-- 1 root root 230 Aug  8 23:50 /usr/share/applications/sublime.desktop
-rw-r--r-- 1 root root 532 Sep 23  2016 /usr/share/applications/sublime_text.desktop

$ ls -al /usr/local/share/applications/*sublime*
ls: cannot access '/usr/local/share/applications/*sublime*': No such file or directory

$ ls -al /opt
total 20
drwxr-xr-x  5 root root 4096 Aug  8 23:58 .
drwxr-xr-x 25 root root 4096 Aug 11 08:07 ..
drwxr-xr-x  3 root root 4096 Apr 21 16:02 google
drwxr-xr-x  5 root root 4096 Jul 14  2012 sublime
drwxr-xr-x  4 root root 4096 Aug  8 23:58 sublime_text

$ cat /usr/local/share/applications/sublime*.desktop
cat: '/usr/local/share/applications/sublime*.desktop': No such file or directory

$ cat /usr/share/applications/sublime_text.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Sublime Text
GenericName=Text Editor
Comment=Sophisticated text editor for code, markup and prose
Exec=/opt/sublime_text/sublime_text %F
Terminal=false
MimeType=text/plain;
Icon=sublime-text
Categories=TextEditor;Development;
StartupNotify=true
Actions=Window;Document;

[Desktop Action Window]
Name=New Window
Exec=/opt/sublime_text/sublime_text -n
OnlyShowIn=Unity;

[Desktop Action Document]
Name=New File
Exec=/opt/sublime_text/sublime_text --command new_file
OnlyShowIn=Unity;

回应评论:
运行sudo fsck -f /后我得到的输出是这个
每次执行上一个命令后几秒钟之后,会出现这个这是自动出现的屏幕的链接
左边的图标(一个有盒子的图标)是Sublime Text 3,我想要设置默认路径。右边的图标(一个带有S的图标)是Sublime Text 2,由于版本过期而无法打开。

Left one is Sublime Text 3


我相信你是在/usr/share/applications/defaults.list文件中设置的。 - Terrance
@Terrance,你能给我完整的指令吗? - Kewal Shah
哦,我也认为如果“sublime text”没有显示出来,那可能是因为你可能缺少了/usr/share/applications/sublime_text.desktop文件。 - Terrance
@Terrance 是的,它显示在目录中没有这个文件。我该怎么办?(重新安装也没用。) - Kewal Shah
当你右键点击文件并将其关联到sublime_text时,它是否出现在“其他应用程序”而不是“默认应用程序”下面?可能sublime_text没有被设置为任何东西的默认选项。 - Terrance
@Terrance,它在其他应用程序中也没有显示出来。 - Kewal Shah
你能不能碰巧截个图,显示一下你右键点击那个你想要设置ST的文件时看到的内容? - Terrance
另外,你能添加cat /usr/share/applications/sublime_text.desktop的输出吗? - Terrance
@Terrance,在 .txt 文件的列表中甚至没有出现,因此上传右键菜单的截图是没有用的。但是你刚刚提到的命令最终给出了输出!我已经在问题中上传了它,请看看你是否能帮忙。 - Kewal Shah
我所寻找的就是你在上下文菜单中看到的内容。我这里有不同的文件管理器,它们显示不同的上下文菜单。Thunar显示的与Nautilus不同,等等。你的.desktop文件看起来很好,所以这不是问题。最后一部分可能是要更改我提到的实际第一个默认文件。 - Terrance
@Terrance,你能给我提供修改实际首选默认文件的命令吗? - Kewal Shah
1在进行任何编辑之前,我建议您先备份文件。请执行以下命令:sudo cp /usr/share/applications/defaults.list /usr/share/applications/defaults.list.backup。然后,您可以使用sudo nano /usr/share/applications/defaults.list来进行编辑。 - Terrance
太棒了!谢谢你,@Terrance。那些.java和.cpp文件默认给了sublime-text 2的路径,但由于它已过期,无法在我的电脑上打开,可能这也是为什么ST 2没有出现在我的其他应用程序列表中的原因。 - Kewal Shah
太好了,你搞定了!:) 很高兴能帮上忙!:) - Terrance
@Terrance 干得好!看起来你的第一个评论是正确答案!而且ST2已经过期了!我还不知道为什么按照我的方法ST3没有出现在应用程序列表中。谢谢! - heynnema
2个回答

更简单...右键点击任何 .c++ 或 .java 文档,选择 "属性"。转到 "打开方式" 选项卡,在可用应用程序列表中选择 "Sublime",然后点击 "设为默认"。
如果由于某种原因,Sublime 在您的 Unity Dashboard 中没有显示,或者在可用应用程序列表中没有显示,则应重新安装 Sublime,因为它缺少 .desktop 文件。建议您使用 Sublime 3 beta,因为 Sublime 2 已过期。
更新 #1:
要检查 Ubuntu 分区上的文件系统...
- 启动到 GRUB 菜单 - 选择高级选项 - 选择恢复模式 - 选择根访问权限 - 在 # 提示符处,输入 "sudo fsck -f /" - 如果有错误,请重复 fsck 命令 - 输入 "reboot"
更新 #2:
根据@Terrance的说法,问题出在/usr/share/applications/defaults.list文件上,而且Sublime Text 2已经过期,无法启动。请参考被接受的答案获取详细信息。

评论不适合进行长时间的讨论;此对话已被移至聊天室。请确保将任何相关信息转移到问题/答案中。 - Seth
@Seth,我明白这一点,但是我需要20个声望才能进入聊天室。如果你愿意的话,你有权力通过给这个问题点赞来帮我获得声望!(如果你不知道答案的话。) - Kewal Shah
@KewalShah 那个创建了那个聊天室的自动系统覆盖了该特定聊天室的声望要求。 - Seth
@Seth,噢,抱歉,我明白了。以后我会谨记在心。 - Kewal Shah

对于那些不想阅读与此帖子相关的冗长评论和聊天的人,我终于找到了答案(来源:@Terrance):
  • 输入cat /usr/share/applications/sublime_text.desktop来检查ST 3是否存在 .desktop 文件。

  • 输入sudo nano /usr/share/applications/defaults.list来打开默认应用程序列表。

  • 将默认应用程序中类似 text/x-java 和 text/x-c++ 的行编辑为 ST 3,例如:text/x-java=sublime_text.desktop,保存并退出。

enter image description here

希望这有所帮助 :)