8

是否可以从我的 vimrc 设置 vim 的服务器名而不是使用--servername命令行开关?如果我尝试其中之一

set v:servername="TEX"
let v:servername="TEX"

我收到未知选项错误,无法分别覆盖只读变量错误。

4

2 回答 2

9

根据文档 ( :help v:servername),该v:servername变量是只读的。

并根据源代码serverRegisterName()if_xcmdsrv.c三个地方调用:

  • main()功能
  • X11主窗口初始化
  • GTK+ 主窗口初始化

所以你的问题的答案是否定的,除了命令行参数,你不能在你的.vimrc或其他任何地方设置服务器名称。

于 2012-08-12T14:20:21.563 回答
0

对于足够新的 vim 来说,有函数remote_startserver.

                    *remote_startserver()* *E941* *E942*
remote_startserver({name})
        Become the server {name}.  This fails if already running as a
        server, when |v:servername| is not empty.

        Can also be used as a |method|: >
            ServerName()->remote_startserver()

从 Vim 版本 8.0.475 开始可用。根据 VimTeX 文档

所以你可以简单地启动没有服务器名的 vim,然后在 vimrc 中启动一个。

注意:如果有多个正在运行的 Vim 实例,Vim 会自动更改服务器名(附加 1、2 等)以避免冲突。

于 2021-10-22T23:50:57.457 回答