Editando e compilando arquivos em um servidor remoto com o Vim

1

Estou editando vários arquivos em um servidor remoto. Eu posso conectar usando SSH (chave pública ou senha). Eu uso o Vim da seguinte forma: %código% Eu preciso usar o Vim no meu computador porque ele é personalizado, portanto, eu não quero usar o Vim instalado no servidor.

Não consigo instalar nada neste servidor remoto. Para compilar, corro vim scp://user@server//path/to/file.cpp .

Eu gostaria de poder executar make do Vim para que ele seja compilado no servidor. Gostaria de evitar abrir outro terminal com uma conexão SSH para esse servidor.

A minha pergunta é: é possível manter uma conexão SSH através do Vim?

Obrigado

    
por Romain Pellerin 12.10.2016 / 10:13

1 resposta

1

Claro, enquanto você estiver em uma instalação recente do OpenSSH no cliente. Você tem os "tubos de controle" e man ssh_config mostrará as mágicas . Basicamente, no cliente, você criaria uma entrada de host em ~/.ssh/config assim:

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

Ao fazer isso, a primeira conexão abrirá um "canal" que será mantido aberto pelo tempo especificado ou para sempre. De agora em diante, você pode consultar sua conexão ssh apenas com o nome que você colocou como Host . Então, por exemplo, em vez de escrever:

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

você escreverá:

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

ou

ssh my_remote_server

Para eliminar uma conexão persistente existente, você precisa executar:

ssh -O exit my_remote_server

Tudo isso funcionará também para SSH simples, SCP e SFTP. Isso é tudo.

    
por 12.10.2016 / 10:25

Tags