首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Vim在远程服务器上编辑和编译文件

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

Unix & Linux用户
提问于 2016-10-12 08:13:22
回答 1查看 2.4K关注 0票数 2

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

我不能在这个远程服务器上安装任何东西。要编译,我运行make

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

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

谢谢

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2016-10-12 08:25:33

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

代码语言:javascript
复制
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。因此,例如,与其写:

代码语言:javascript
复制
vim scp://username@server_IP_or_DNS//full_path/to/file.cpp

你会写:

代码语言:javascript
复制
vim scp://my_remote_server//full_path/to/file.cpp

代码语言:javascript
复制
ssh my_remote_server

要关闭现有的持久连接,您需要运行:

代码语言:javascript
复制
ssh -O exit my_remote_server

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

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/315844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档