如何将默认文本编辑器从gedit更改为vim?

如何将默认文本编辑器从gedit更改为vim?当我点击一个文本文件时,我希望它在终端下以vim而不是gedit打开。
5个回答

你没有说你是如何点击这个文件的,所以我会解释一种在Gnome中从Nautilus打开它的方法。我相信这个方法在其他情况下也适用。
首先,要将Vim(或任何应用程序)添加到“使用其他应用程序打开”列表中,您需要在~/.local/share/applications中创建一个.desktop文件,并在其中添加一行,例如:Exec=<command> %f。我刚刚创建了一个名为vim.desktop的文件,其中包含以下内容:
[Desktop Entry]
Categories=;
Comment=Edit file in Vim
Exec=vim %f
GenericName=Text Editor
Hidden=false
Icon=vim
Name=Vim
Terminal=true
Type=Application
Version=1.0

这样做后,当我在Nautilus中右键单击并打开文件时,“Vim”会出现在可能的应用程序列表中,如预期所示。
如果有任何问题,请告诉我。

刚刚在我发布这个问题的时候看到了另一个回答。看起来好像我浪费了时间,不过或许它仍然能以某种方式帮到我。 - Marty Fried
很高兴能帮上忙。谢谢你告诉我。我也学到了新东西,因为我不知道答案,但是决定了解一下(对我的大脑也是个锻炼)。:) - Marty Fried
顺便提一下,如果你想自动使用vim而不是gedit来处理所有类型的文件,可以编辑/etc/gnome/defaults.list文件,将gedit替换为vim,以使用vim桌面文件。不过我还没有测试过这个方法。 - Marty Fried
1+1 优秀的提示。不一定是针对vim,但总体来说是将新应用程序添加到“打开方式”中。 - bioShark
如果你想让vim成为文件扩展名的默认选择,而不仅仅是另一个选择,请将该扩展名添加到“Categories=”中。 - Noumenon

打开 defaults.list
sudo -H gedit /etc/gnome/defaults.list`

替换
text/plain=gedit.desktop

text/plain=gvim.desktop

保存并关闭。

有关更多详细信息和屏幕截图,请查看此答案:如何停止gedit打开任何东西?


2非常好的答案!我想补充一下,可以使用sudo vim /etc/gnome/defaults.list打开它,然后使用命令%s_gedit_gvim_g。 - brunch875
一般来说,最好设置EDITOR并使用sudoedit,而不是在sudo下运行编辑器。 - Darael
请注意,在Ubuntu 23.04中,defaults.list文件的正确路径是/usr/share/applications/defaults.list。修改/etc/gnome/defaults.list不会产生任何效果。另外,如果您想要将默认的文本编辑器替换为Gedit或者反之亦然,它们的桌面条目分别是org.gnome.gedit.desktop/etc/gnome/defaults.list - Kyselejsyreček

将此保存为~/.local/share/applications/vim.desktop
[Desktop Entry]
Name=Vim Text Editor
Comment=Edit text files
Exec=vim %F
Terminal=true
Type=Application
Icon=vim
Categories=Utility;TextEditor;
StartupNotify=true
MimeType=text/plain;

然后在Nautilus中右键单击一个文本文件,选择“属性”,然后进入“打开方式”。如果这里没有显示vim,请点击“显示其他应用程序”。选择vim并点击“设为默认”。

使用vim.desktop的方法的问题是每次它都会打开一个新的终端窗口,而不是使用现有的vim实例。这可能不是你想要的,但我认为没有其他办法。
下一个最好的选择是使用gvim,它是一个图形界面应用程序,而不是终端应用程序。

我认为默认情况下gvim也会打开一个新实例。有一种方法可以解决这个问题,我认为可以使用gvim开关。在重新安装Ubuntu之前,我曾经让它在现有的gvim中打开一个新标签页。 - Marty Fried
gvim是一个Gnome应用程序吗?我认为'g'代表的是'图形化',而不是'Gnome'。 - voithos
@voithos:确实,'g'并不代表'Gnome'。已更正。 - scribu

纯命令行方法:

echo "[Desktop Entry]
Name=Vim Text Editor
Comment=Edit text files
Exec=vim %F
Terminal=true
Type=Application
Icon=vim
Categories=Utility;TextEditor;
StartupNotify=true
MimeType=text/plain;" > ~/.local/share/applications/vim.desktop
cp /etc/gnome/defaults.list ~/defaults.list.bak # backup
sudo sed -i "s/=gedit\.desktop/=vim\.desktop/" /etc/gnome/defaults.list
mkdir ~/.icons
wget -O ~/.icons/vim.png http://en.xn--icne-wqa.com/images/icones/1/4/vim.png # if you want an icon