web-dev-qa-db-ja.com

VIMでFTPファイルを編集し、毎回ホスト名を入力しないようにするにはどうすればよいですか?

FTPサーバー上にあるvimでリモートファイルを編集する必要があります。 SSHまたはSFTPアクセスはありません。 FTPだけ。 curlftpfsを介して同期しようとしましたが、ファイルはローカルディレクトリに表示されましたが、それらに書き込むことができず、あらゆる種類のエラーが発生し、ランダムな末尾のファイルを書き込むことができた場合、サーバーで生成されます。 index.phpは、サーバーにindex.phz、index.phyなどとして書き込みます。

崇高なテキスト2をインストールしましたが、グラフィックカード用の新しいドライバーをインストールした後は実行できなくなりました。 WINEでn ++も試しましたが、より深いディレクトリレベルにあるFTPファイルを開くことができませんでした。

FTP上のファイルを編集するためのvimにはさまざまなアプローチがあるのを見てきましたが、どれも:e http:// [user @] machine/path (netrwプラグインを使用)のように入力する必要があります。相対的なマッピングを設定するのではなく、いかなる種類の繰り返しも避けたいと思います。 vimの開発者ツールのほとんどが、sublimeとnppですでに簡単な方法で解決されているため、vimの解決策がないのは不思議です。同じホスト名/パスなどで入力すると、単純なDRYの原則が破られます。

理想的には、同期ツールを使用してファイルをローカルにキャッシュし、vimがファイルに書き込んだ直後にパスをローカル->リモートにマッピングしてftpにアップロードするか、アップロードコマンドなどを発行します(開いているファイルを入力する必要はありません)毎回)。サーバーにはたくさんのファイルがあるので、それらを記憶することはできません。ファイルにすばやくアクセスして簡単なコマンドでアップロードできるように、ファイルをローカルにキャッシュしておくことが重要です。

Slackware 13.37x64を実行しています

2
Keeper Hood

Netrwを使用して、リモートディレクトリのコンテンツを次のように表示できます。

:e ftp://[email protected]/ <-- note the slash at the end.

そこから、Pを使用して別のウィンドウで、または<CR>を使用して現在のウィンドウでファイルを開くことができます。

ファイルリストを失っても慌てる必要はありません。ファイルリストはまだ残っているので、:Rexで元に戻すことができます。


または、FilezillaやgFTPなどのGUIFTPクライアントとその「編集…」機能を使用するだけです。

4
romainl

相対ファイル名を単純に使用することはできませんが(ローカル作業ディレクトリが異なるため)、filename-modifiersを使用してファイルを相対的に参照できます。

:edit %:h/another.html
1
Ingo Karkat

私はあなたが苦痛を感じます、私はvimを使うのが大好きです、そしてftpクライアントで、それはあなたがsshを持っているようです。私が使用するワークフローは

  1. Openコマンド:e ftp://username@server/を使用してftpサーバーにログインします
  2. 現在の選択の新しいタブを作成します:tab split
  3. 新しいタブに移動します:tabn
  4. Vimでファイルに移動します
  5. ファイルの編集が完了したら、タブ:wqを閉じます。
  6. 手順2から繰り返します

これが最も効果的であることがわかりました。

Vimのタブは素晴らしく、多数のファイルを保存でき、同じセッションで開いているファイル間のy行をヤンクしてd行を削除することもできます。とてもかっこいい。

0
Kelly Hays

Vim _ftp://hostname/path/_を使用すると、ディレクトリリストが表示されます。このホストを頻繁に使用する場合は、ブックマークを付けることをお勧めします。 netrw v153jでは、:NetrwMB filename(s);を使用できます。 mbを使用して、現在のディレクトリをブックマークできます。 qbを使用して、現在のブックマーク(および履歴)を一覧表示できます。ブックマークなどはgvimのメニューからも利用できます。ブックマークに移動するには、gbを使用します。

したがって、ディレクトリをブックマークし、_:Rex_またはgbを介してディレクトリリストに戻り、リストされているファイルを編集することをお勧めします。

0
user21497

私はこれが古いことを知っていますが、別のオプションは、例えばを使用することです。 curlftpfs (Slackwareビルド ここ )FTPサーバーをマウントポイントにマウントしてから、選択したローカルテキストエディターを使用します。

0
Jason C