Vimを使用してリモートサーバーでファイルを編集およびコンパイルする

Vimを使用してリモートサーバーでファイルを編集およびコンパイルする

リモートサーバーで複数のファイルを編集しています。 SSH(公開鍵またはパスワード)を使用して接続できます。 Vimの使い方は次のとおりです。 vim scp://user@server//path/to/file.cpp Vimをカスタマイズして自分のコンピュータで使用する必要があるため、サーバーにインストールされているVimを使用したくありません。

このリモートサーバーには何もインストールできません。コンパイルするにはmake

makeVimで実行してサーバーでコンパイルできるようにしたいです。 SSH経由でサーバーに接続している他の端末を開かないようにしたいです。

だから私の質問は次のようになりますVim経由でSSH接続を維持できますか?

ありがとう

答え1

もちろん、最近クライアントにOpenSSHをインストールした場合は可能です。 「Control Pipe」があり、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にも当てはまります。それではそうします。

関連情報