之前搜过解决方案,网上流行的无非是两种:一种是加个alias给gvim,一种是修改gvim.desktop中的exec,改成gvim -p -remote-tab-silent
第一种方法我就不多说了,但是我一般不会总终端启动一个gvim
我要说的是第二种方法,我就费解了,如果你真这么做了,难道你没发现你不能通过gvim的desktop启动gvim了吗?难道你没发现打开一个文件后全局菜单无法代理你的gvim菜单了吗?难道你没发现你的输入法无法使用了吗?难道你不别扭吗?
我的方案是这样的:
1.直接去 /usr/share/applications 目录下,复制一份gvim.desktop 改名为 gvim_tab.desktop
2.编辑gvim_tab.desktop,把里面的名字改为“Gvim标签”用来和原Gvim区分
3.修改 gvim_tab.desktop,把Exec 该为: Exec=gvim -f -p -remote-tab-silent %F
4.修改mimeinfo.cache , 用vim打开,然后搜索 “gvim”,在这一行添加 gvim_tab.desktop
5.在一个文件上右键,这时候肯定有“用Gvim标签打开”的选项了,然后将文件打开的默认程序改为Gvim标签,Ok了。
其实就是加了一个 -f 的参数,这个参数的意义是:如果是启动gvim的话,不要fork一个独立的进程,让gvim寄生于启动它的进程(我觉得用更白话的说就是禁止gvim越级确定父进程)。