現在、私はSSHを介してサーバーに接続し、サーバーでVimを実行してこれを行います。これの利点は、SCPを介してリモートサーバーでファイルを開く面倒な構文を処理する必要がなく、さらに重要なことは、サーバー上のファイルシステムを非常にすばやく移動できることです。一方、遅延があり、編集が少し難しいです。
複数のリモートファイルを編集する標準的な方法は何ですか?
答え1
あなたはそれを使用することができますSSHFSリモートホームディレクトリをローカルフォルダにマウントします。ローカルvim現在のインフラストラクチャを使用し、待ち時間が短いという利点があります。
答え2
リモート編集にはローカルvimまたはgvimを使用できます。
:e scp://[email protected]/~/myfiles/whatever.file
scp
はセキュリティコピー契約。同じ方法で認証されるため、ssh
SSH キーを使用できる必要があります。他のさまざまなプロトコルがサポートされていますが(参考文献を参照:help netrw-externapp
)、すでに同じ場所でsshを使用している場合は、scpが最も簡単になります。
この方法でディレクトリを参照できます。パスが.で終わっていることを確認してください/
。それ以外の場合、vimはそのディレクトリを新しいファイルに変換します。
:w
scpを介して自動的にファイルを書き込みます。何らかの理由で書き込みが失敗すると、ステータスバーに「シェルリターン1」などの内容が表示されるので注意が必要です。ただし、次の点に注意してください。いいえvimはこれが結果を引き起こす可能性があることを知りません。たとえば、今すぐ終了しても警告は表示されません。特に:wa
たくさん使うとこれを見逃しやすいです。 ;|これが唯一の警告です。
公式文書を参照してください:help netrw
。
答え3
私はrsyncを使用します。変更された内容のみを送信します。このように:
rsync -e ssh -va remoteuser@remotehost:remotedir .
その後、必要に応じてファイルをローカルで編集できます。遅延はありません。送信する前にすべてのファイルを確認できます。
rsync -e ssh -va . remoteuser@remotehost:remotedir
まず、ローカルディレクトリを作成し、cd
そのディレクトリに移動するとします。ファイルの削除を処理することもできますが、間違ったディレクトリで実行すると、ディレクトリツリー全体が破損する可能性があるため、非常に注意する必要があります。
rsync -e ssh -va --delete . remoteuser@remotehost:remotedir
私がしたことは、最初に次のように "n"フラグを使用して "乾燥モード"で実行したことです。
rsync -e ssh -van --delete . remoteuser@remotehost:remotedir
それが本当ならどうなるかを報告します。報告されたリストが満足のいくものであれば、もう一度実行して「n」フラグを削除してください。
rsyncは非常に効率的です。他にも様々な表示があります。これは非常に複雑です。
答え4
最も適切な方法(SSH方式)を指定することもできますが、まだ編集中のファイルの性質に応じてセキュリティポリシーで許可されている場合は、小さなパーティションを割り当てて共有し、そこにファイルを配置できます。この提案では、おそらくNFSまたはSambaを使用するのが最も簡単です。しかし、テストファイルの編集は依然としてUNIXの一般的な概念であるため、現在の方法を維持する必要があります。