gpt4 book ai didi

regex - vimrc 检测远程连接

转载 作者:行者123 更新时间:2023-12-02 13:48:28 25 4
gpt4 key购买 nike

目前我必须在我的 vimrc 上对服务器名称进行硬编码,以使其在远程计算机上有所不同。这是通过在 vim 中使用 hostname() 函数的条件语句来完成的。我想让条件基于远程连接的状态而不是主机名。所以……

我发现的第一个可能的解决方案是在 system() 中使用以下 bash 命令:

cat /proc/$PPID/status | head -1 | cut -f2

这不起作用,因为我使用的是 GNU screen,它无法正确检测我的连接状态。

我现在正在探索的第二种可能的解决方案是使用 who am i 这可靠地显示了是否从哪个客户端建立了远程连接,但我很难让它与 一起工作系统()

if substitute(system('who am i'), "theclient", ????, "") == ""
...

我怎样才能让 ???? 以某种方式提取我的客户名称??

即使第二种解决方案可行,允许我将 .vimrc 用于许多不同的远程机器,它仍然绑定(bind)到一个客户端。我希望条件在所有远程 session 中工作,无论客户端名称如何。所以我想知道,这可能吗?

最佳答案

以下行允许我创建一个检测远程连接状态的变量:

let g:remoteSession = ($STY == "")

现在您可以通过以下方式包围您希望在远程连接中忽略的行:

if g:remoteSession
...
endif

附带说明一下,我不知道与全局变量相比,查找环境变量的开销有多大,但我猜差异可以忽略不计。 cygwin等环境下的系统调用fork()效率低下,值得优化。

关于regex - vimrc 检测远程连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15808767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com