Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex vimrc用于检测远程连接_Regex_Vim_Ssh_Remote Access - Fatal编程技术网

Regex vimrc用于检测远程连接

Regex vimrc用于检测远程连接,regex,vim,ssh,remote-access,Regex,Vim,Ssh,Remote Access,目前,我必须硬编码vimrc上的服务器名称,以便在远程机器上使其不同。这是通过使用vim中的hostname()函数的条件语句完成的。我想将条件设置为基于远程连接的状态,而不是主机名。所以 我找到的第一个可能的解决方案是在system()中使用以下bash命令: 这不起作用,因为我使用GNU屏幕,这将无法正确检测我的连接状态 我目前正在探索的第二种可能的解决方案是使用我是谁,这可以可靠地显示是否已从哪个客户端建立了远程连接,但我在使用系统()时遇到了问题 我怎样才能让?以某种方式提取我的客户名称

目前,我必须硬编码vimrc上的服务器名称,以便在远程机器上使其不同。这是通过使用vim中的
hostname()
函数的条件语句完成的。我想将条件设置为基于远程连接的状态,而不是主机名。所以

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

这不起作用,因为我使用GNU
屏幕
,这将无法正确检测我的连接状态

我目前正在探索的第二种可能的解决方案是使用
我是谁
,这可以可靠地显示是否已从哪个客户端建立了远程连接,但我在使用
系统()时遇到了问题

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


即使第二个解决方案有效,允许我在许多不同的远程机器上使用.vimrc,它仍然绑定到一个客户端。我希望条件在所有远程会话中工作,而不管客户端名称如何。所以我想知道,这是否可能?

而不是向共享的
~/.vimrc
,而是可以选择源系统本地设置。我使用以下方法:

" Source system-specific .vimrc first.
if filereadable(expand('~/local/.vimrc'))
    source ~/local/.vimrc
endif
" Stop sourcing if inclusion guard exists.
if exists('g:loaded_vimrc')
    finish
endif

" Common settings of .vimrc here...

我发现这比试图在中心位置维护不断变化的主机名列表更具可扩展性。

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

let g:remoteSession = ($STY == "")
现在,您可以通过以下方式环绕远程连接中要忽略的线路:

if g:remoteSession
    ...
endif

另一方面,我不知道与全局变量相比,查找环境变量的成本有多高,但我猜两者的差异可以忽略不计。在像cygwin这样的环境中,系统调用
fork()
效率低下,值得进行优化。

我想知道是否应该将公共设置置于条件之上。我认为.vimrc是按顺序读取的,后面的脚本具有更高的优先级。我说得对吗?我不确定,但我认为当我运行像
vundle
这样的插件或其他需要内联调整的函数时,事情会变得复杂。我可能会在system specific.vimrc中使用重复的脚本,但我认为嵌入和合并脚本可以减少调试时间。我没有针对不同机器的特定设置,只有一个用于local.vimrc和remote.vimrc,以减少延迟。
let g:remoteSession = ($STY == "")
if g:remoteSession
    ...
endif