puk*_*puk 5 vim ssh scp remote-access
虽然我从未尝试过这个,但显然可以按照此处的描述在vim中远程编辑文件.在我的特殊情况下,我需要访问的服务器只能从校园访问,因此我必须登录我的大学帐户,如下所示:
ssh user@login.university.com
Run Code Online (Sandbox Code Playgroud)
然后从那里登录到安全服务器,如下所示:
ssh user@secure.university.com
Run Code Online (Sandbox Code Playgroud)
我有无密钥ssh设置,所以我可以像这样自动化这个过程:
ssh user@login.university.com -t "ssh user@secure.university.com"
Run Code Online (Sandbox Code Playgroud)
无论如何远程编辑文件,例如secure.university.com/user/foo.txt
在我的本地机器上?
编辑:
我的意图是在我的本地机器上使用vim,因为它是不切实际的(移动.vim folder
,复制.vimrc
),在某些情况下是不可能的(使用某些设置重新编译vim,修补vim源,安装语言美化器)以使远程机器上的vim表现得像我一样希望它表现得好.我想要的是发出这样的东西(这不是准确的scp,我知道)
vim scp://user@login.university.com scp://user@secure.university.com//home/user/foo.txt
Run Code Online (Sandbox Code Playgroud)
好吧,经过一番工作后我想通了。首先,您必须按照此处.ssh/config
所述编辑(或创建)您的文件。出于我们的目的,我们将添加这样的一行,这实际上添加了一个代理。
Host secure
User Julius
HostName secure.university.com
ProxyCommand ssh Tiberius@login.university.com nc %h %p 2> /dev/null
Run Code Online (Sandbox Code Playgroud)
然后我们可以像这样简单地将scp
文件复制(通过)secure.university.com:/home/Julius/fee/fie/fo/fum.txt
到本地计算机
scp secure:/home/Julius/fee/fie/fo/fum.txt fum.txt
Run Code Online (Sandbox Code Playgroud)
在此基础上进行扩展,我们可以将其远程加载到 vim 中,如下所示:
vim scp://secure//home/Julius/fee/fie/fo/fum.txt
Run Code Online (Sandbox Code Playgroud)
badd
或像这样使用:
:badd scp://secure//home/Julius/fee/fie/fo/fum.txt
Run Code Online (Sandbox Code Playgroud)
.vimrc
为了简化我的生活,我在文件中添加了最常用子文件夹的快捷方式:
nnoremap <leader>scp :badd scp://secure//home/Julius/fee/fie/fo/fum.txt
Run Code Online (Sandbox Code Playgroud)
到目前为止,vim 已证明非常清楚这是一个远程文件,因此如果 C 文件包含如下文件:
#include "foo.h"
Run Code Online (Sandbox Code Playgroud)
它不会抱怨“foo.h”丢失