Vim は、他のテキストエディタにはない独自の機能を多数備えた、高度に構成可能な最高のテキストエディタの1つです。今日は、便利な機能の1つであるローカルシステムからのリモートシステムのファイルの編集について説明します。 。意味-SSHやその他の方法で実際にログインしなくても、リモートのLinuxシステムに保存されているファイルを編集できます。このトリックを知る前は、通常、リモートシステムにSSHで接続してから、ファイルを編集していました。ただし、ローカルシステムからVimを使用してリモートファイルを編集する方法もあります。 Vim 7.xバージョン以降、netrw.vimプラグイン 標準プラグインとしてインストールされます。このプラグインを使用すると、ftp、rcp、scp、またはhttpを介してファイルを編集できます。
Netrwプラグインとは何ですか?
疑問に思っている人のために、 Netrw (ネットワーク指向の読み取り、書き込み、およびブラウジング)プラグインは、ネットワーク間でのファイルのローカルおよびリモートの編集、読み取り、および書き込みをサポートします。また、ローカルディレクトリとリモートディレクトリの両方の参照もサポートしています。詳細については、:help netrwと入力してください。 vimセッション内。先に進んで、Vimを使用してローカルシステムからリモートLinuxシステムに保存されているファイルを編集する方法を見てみましょう。
Linux上のVimでリモートファイルを編集する
Vimでリモートファイルを編集するのはとても簡単です:
vim scp://[email protected]//path_to_file
例:
info.txtという名前のテキストファイルがあります 私のリモートシステムでは、次の行を使用しています。
Welcome to OSTechNix
次に、そのファイルを編集し、ファイルにいくつかの変更を加えてから、ファイルを保存して閉じます。すべて私のローカルシステムから!
そのためには、次のコマンドを実行するだけです。
$ vim scp://[email protected]/info.txt
上記のタスクのビジュアルデモは次のとおりです。
ここでは、次の3つのことに注意する必要があります。
1.[メールで保護] (例:[メール保護])-ここで sk リモートシステムのユーザー名です。 192.168.225.22 はリモートシステムのIPアドレスです。
2. シングルスラッシュ(/) - $ HOMEに保存されているファイルを編集する場合 リモートシステムのディレクトリでは、末尾のスラッシュを使用して、リモートシステムのIPアドレスまたはホスト名をファイルパスから分離する必要があります。上記の場合、info.txtファイルを$ HOMEディレクトリに保存したので、末尾にスラッシュを1つ使用しました。
3. //(ダブルスラッシュ) -ファイルのフルパスを指定するには、ダブルスラッシュを使用する必要があります。 1つのスラッシュ(/)は、リモートシステムのIPアドレスまたはホスト名を実際のファイルパスから分離するために使用されます。また、別のスラッシュは、リモートファイルの絶対(フル)パスを示すために使用されます。たとえば、 info.txtという名前のファイルを編集しているとします。 / home / sk / Documents /にあります リモートシステムのディレクトリ。この場合、コマンドは次のようになります。
$ vim scp://[email protected]//home/sk/Documents/info.txt
リモートシステムのIPアドレスとファイルパスの間の二重スラッシュに注意してください。二重スラッシュは、リモートファイルの絶対パスを指定する場合にのみ必要です。
ローカルシステムからのリモートファイルの内容を確認します:
$ ssh [email protected] cat info.txt [email protected]'s password: Welcome to OSTechNix blog
見る? info.txtファイルに「ブログ」という単語を追加しました。
場合によっては、デフォルトのSSHポートを変更した場合があります。 セキュリティ上の理由から。その場合は、SSHポートについて以下のように言及しないでください。
$ vim scp://[email protected]:2200/info.txt
2200をSSHポート番号に置き換えます。
ssh / scpアクセスがない場合は、 ftpなどの他のプロトコルを使用できます。 、以下のように。
$ vim ftp://[email protected]/path/to/file
では、バックグラウンドで何が起こっているのでしょうか?
次のコマンドを使用してローカルシステムからリモートファイルを編集する場合;
$ vim scp://[email protected]/info.txt
Vimエディタの下部に次の出力があることに気付いたかもしれません:
:!scp -q '[email protected]:info.txt' '/tmp/vsoDT6K/0.txt' "/tmp/vsOLzGf/0.txt" 1L, 21C
意味-scpコマンドは、要求されたファイルをリモートシステムからコピーし、 / tmpに保存します。 ローカルシステムのディレクトリを開き、編集用に開きます。編集が完了すると、scpコマンドを使用してファイルがリモートシステムにアップロードされます。
Vimセッション内でリモートファイルを編集する
すでにVimセッションに参加している場合は、以下のようにローカルシステムからリモートファイルを編集できます。
次のコマンドを実行して、Vim内から新しいバッファでファイルを開きます。
:e scp://[email protected]/info.txt
ファイルに変更を加えて、 ESCを押します キーとタイプ:wq ファイルを保存して閉じます。
次のビジュアルデモをご覧ください。
上記の出力でわかるように;
- ローカルシステムからVimエディターを開きました
- 次に、Vimセッション内のinfo.txtという名前のリモートファイルを新しいバッファで開きました。
- 次に、ファイルにいくつかの変更を加えました。
- 最後に、変更を保存してファイル(ESCおよび:wq)を閉じました。
次のコマンドを実行して、新しいタブでファイルを開くこともできます。
:tabe scp://[email protected]/info.txt
お役に立てれば。今後、Vimのヒントをもっと投稿します。引き続きアクセスしてください!
推奨される読み物:
- Vimのヒント–LinuxでVimを使用してリモートファイルを読み書きする
- SSH経由でリモートLinuxシステムでコマンドを実行