使用 Vim 在远程服务器上编辑和编译文件

使用 Vim 在远程服务器上编辑和编译文件

我正在远程服务器上编辑一堆文件。我可以使用 SSH(公钥或密码)进行连接。我使用Vim的方式如下: vim scp://user@server//path/to/file.cpp 我需要在我的电脑上使用Vim,因为它是定制的,因此我不想使用服务器上安装的Vim。

我无法在此远程服务器上安装任何内容。为了编译,我运行make.

我希望能够make从 Vim 运行,以便它在服务器上编译。我想避免打开另一个通过 SSH 连接到该服务器的终端。

那么我的问题是:是否可以通过 Vim 维持 SSH 连接?

谢谢

答案1

当然,只要您最近在客户端上安装了 OpenSSH。你有“控制管道”并且man ssh_config会向你展示魔法。基本上在客户端上,您将创建一个主机条目,~/.ssh/config如下所示:

Host my_remote_server # a symbolic name of your choice
  Hostname server_IP_or_DNS # the real name
  User username # the username you use for login
  IdentityFile ~/.ssh/a_suitable_ssh_key_if_any # for authentication purposes
    ControlMaster auto
    ControlPath ~/.ssh/%C # or ~/.ssh/%h-%p-%r for older versions
    ControlPersist 5m # or yes for neverexpiring persistent connection

通过这样做,第一个连接将打开一个“通道”,该通道将在指定的时间内或永远保持打开状态。从现在开始,您可以ssh仅使用您输入的名称来引用您的连接Host。因此,例如,不要写:

vim scp://username@server_IP_or_DNS//full_path/to/file.cpp

你会写:

vim scp://my_remote_server//full_path/to/file.cpp

或者

ssh my_remote_server

要终止现有的持久连接,您需要运行:

ssh -O exit my_remote_server

所有这些也适用于普通 SSH、SCP 和 SFTP。就这样吧。

相关内容