少し前に、Vimエディターでリモートファイルを編集する方法について説明しました。 Linuxの場合。その方法を使用して、実際にリモートシステムにログインしなくても、SSH経由でリモートシステムに保存されているファイルを編集しました。今日は、同様のVimのヒントについて説明します-Vimでリモートファイルを読み書きする 。 Vim 7.xバージョン以降、netrw.vimプラグイン デフォルトで標準プラグインとしてインストールされます。このプラグインを使用すると、ユーザーはftp、rcp、scp、またはhttpを介してリモートファイルの読み取り、編集、書き込み、および参照を行うことができます。
Netrwプラグインとは何ですか?
疑問に思っている人のために、 Netrw (ネットワーク指向の読み取り、書き込み、およびブラウジング)プラグインは、ネットワーク間でのファイルのローカルおよびリモートの編集、読み取り、および書き込みをサポートします。また、ローカルディレクトリとリモートディレクトリの両方の参照もサポートしています。詳細については、:help netrwと入力してください。 vimセッション内。先に進んで、Vimを使用してローカルシステムからリモートLinuxシステムに保存されているファイルを読み書きする方法を見てみましょう。
Linux上のVimでリモートファイルの読み取りと書き込み
リモートファイルの読み取りと書き込みは、リモートファイルの編集とほとんど同じです。
ローカルシステムからリモートファイルを読み取るには、次のコマンドを使用してファイルを開くだけです。
$ vim scp://[email protected]/info.txt
qと入力します ファイルを終了します。
リモートファイルに書き込むには、上記のようにファイルを開き、 "i"を押します。 挿入モードに入り、最後に書き込みを開始します。完了したら、 ESCを押します :wqと入力します 保存して終了します。
バックグラウンドで実際に行われるのは、リモートファイルがscpコマンドを使用してローカルシステムの「/tmp」ディレクトリにコピーされることです。次に、ファイルを開いて編集します。完了したら、scpコマンドでファイルをリモートシステムにコピーして戻します。
ローカルシステムからリモートファイルの内容を表示し、コマンドを使用してファイルが実際に変更されているかどうかを確認します。
$ ssh [email protected] cat info.txt
リモートホスト上のディレクトリの絶対パスを指定する場合は、二重スラッシュを使用することに注意してください。 (//)次のコマンドに示すように:
$ vim scp://[email protected]//home/sk/Documents/info.txt
すでにデフォルトのSSHポートを変更した場合に備えて セキュリティ上の理由から、SSHポートについては以下のように明示的に言及する必要があります。
$ vim scp://[email protected]:2200/info.txt
2200をSSHポート番号に置き換えます。
ssh / scpアクセスがない場合は、 ftpなどの他のプロトコルを使用できます。 、以下のように。
$ vim ftp://[email protected]/path/to/file
Vimセッション内でのリモートファイルの読み取りと書き込み
すでにVimセッションに参加している場合は、 Nreadを使用してリモートファイルの読み取りと書き込みを行うことができます。 (NetRead)および Nwrite (NetWrite)コマンド。
次のコマンドを使用して、ローカルシステムでVimエディターを開きます。
$ vim
これでVimセッションに入っています。新しいバッファのローカルVimセッション内からリモートファイルを読み取るには、次のコマンドを実行します。
:e scp://[email protected]/info.txt
または、「Nread」を使用することもできます 以下のようなコマンド。
:Nread scp://[email protected]/info.txt
または、
:Nread "scp://[email protected]/info.txt"
詳細については、Vimセッション内で次のコマンドを入力してください。
:Nread ?
ファイルを読んだ後、:qと入力します 終了します。
同様に、リモートファイルを書き込むには、次のコマンドを実行します。
:e scp://[email protected]/info.txt
「i」を押して挿入モードに入り、書き込み/変更を開始します。
:wを使用することもできます ファイルを作成および書き込むコマンド。ただし、このコマンドは新しい空のファイルのみを作成します。
:w scp://[email protected]/info.txt
書き込んだ後、 ESCを押します :wqと入力します 保存して終了します。
または、 "Nwrite"を使用します 以下のようなファイルを書き込むために作成するコマンド。
:Nwrite scp://[email protected]/info.txt
Nwriteの詳細を知るには、Vimセッションで次のように入力してください。
:Nwrite ?
これがお役に立てば幸いです。
推奨される読み物:
- SSH経由でリモートLinuxシステムでコマンドを実行