在.vimrc或其他地方,根据文件类型指定vim服务器名称是否可能?

3

我需要输入

gvim --servername xdvi toto.tex

如何让xdvi向latex实现反向搜索?

能否在.vimrc中封装此功能:当vim检测到.tex文件时,autocmd将servername设置为vimrc?似乎一旦启动vim就已经太晚了,是吗?

如果不在.vimrc中,那在哪里呢?


1
xdvi是您为Vim实例命名的名称。它与xdvi和/或latex和/或反向搜索有什么关系? - romainl
因为.Xdefaults或.Xresources包含以下行: xdvi.editor: gvim --servername xdvi --remote +%l %f 这将指导xdvi到正确的gvim实例。 - Niels
投票支持将Vim StackExchange迁移。 - Mu Mind
1
这个回答解决了你的问题吗?在vimrc中设置servername与命令行开关有何不同? - user202729
1个回答

3
特殊的 v:servername 变量是只读的,你无法在 Vim 中改变它。如果你需要一个特定的 servername,在启动时必须通过 --servername 参数指定。
为了避免额外的输入,我建议在 Unix 上创建一个特殊的 shell 别名或者在 Windows 上创建一个小的批处理包装器。根据这个功能的重要性,你甚至可以添加一些脚本逻辑来检查是否有 .tex 参数,然后再设置 servername。
从 Vim 内部实现这个功能的唯一方法是通过 fork 一个新的 Vim 实例(通过 system()),传递所有参数和 servername 参数,然后通过 :quit 关闭原始的 Vim 实例。但这种做法非常麻烦,不太容易实现。

一般备注:无论使用何种方法,服务器名称可能不同(如果存在冲突,vim可能会附加一些数字)。 - user202729
@user202729 对的,这就是为什么答案指示通过 --servername 传递自定义名称,假设您选择了像 UUID 这样的唯一标识符,或者处理潜在的现有名称(例如通过首先查询现有的服务器名称)。 - Ingo Karkat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接