【问题标题】:Setting servername in vimrc as opposed to command line switch在 vimrc 中设置 servername 而不是命令行开关
【发布时间】:2012-08-12 14:01:20
【问题描述】:

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

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

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

【问题讨论】:

标签: vim


【解决方案1】:

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

并且根据源代码serverRegisterName()中的if_xcmdsrv.c是从三个地方调用的:

  • main()函数
  • X11 主窗口初始化
  • GTK+ 主窗口初始化

因此,您的问题的答案是否定的,您不能在 .vimrc 或除命令行参数之外的任何其他位置设置服务器名称。

【讨论】:

    【解决方案2】:

    对于足够新的 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 等)以避免冲突。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-04
      • 2014-11-16
      • 1970-01-01
      • 1970-01-01
      • 2013-03-25
      • 2018-11-25
      • 1970-01-01
      相关资源
      最近更新 更多