在vimrc中设置servername而不是命令行开关

oxosxuxt  于 2024-01-08  发布在  其他
关注(0)|答案(2)|浏览(95)

是否可以从我的vimrc中设置Vim的服务器名,而不是使用--servername命令行开关?

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

字符串
我得到未知的选项错误和无法覆盖只读变量错误分别。

disho6za

disho6za1#

对于一个足够新的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()

字符串
根据VimTeX文档,自Vim版本8.0.475起可用
所以你可以简单地启动Vim而不用servername,然后在vimrc中启动一个。

注意:如果有多个Vim示例在运行,Vim会自动更改servername(追加1、2等),以避免冲突。

gywdnpxw

gywdnpxw2#

2023年更新

正如@user202729在他的回答中所指出的(给予他的信任),从8.0.0475 patch(2017年3月18日)开始,可以通过用--servername=启动Vim(默认情况下会生成一些唯一的名称),然后在vimrc中使用call remote_startserver('TEX')来实现。

2012年的原始(过时)答案

根据文档(:help v:servername),v:servername变量是只读的。
根据源代码,if_xcmdsrv.c中的serverRegisterName()从三个地方调用:

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

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

相关问题