【发布时间】:2012-08-12 14:01:20
【问题描述】:
是否可以从我的 vimrc 中设置 vim 的服务器名,而不是使用 --servername 命令行开关?如果我尝试其中一个
set v:servername="TEX"
let v:servername="TEX"
我收到未知选项错误,无法分别覆盖只读变量错误。
【问题讨论】:
-
也可以使用别名或类似的东西,另见other question
标签: vim
是否可以从我的 vimrc 中设置 vim 的服务器名,而不是使用 --servername 命令行开关?如果我尝试其中一个
set v:servername="TEX"
let v:servername="TEX"
我收到未知选项错误,无法分别覆盖只读变量错误。
【问题讨论】:
标签: vim
根据文档 (:help v:servername),v:servername 变量是只读的。
并且根据源代码serverRegisterName()中的if_xcmdsrv.c是从三个地方调用的:
main()函数因此,您的问题的答案是否定的,您不能在 .vimrc 或除命令行参数之外的任何其他位置设置服务器名称。
【讨论】:
对于足够新的 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 等)以避免冲突。
【讨论】: