web-dev-qa-db-ja.com

GVIMを使用してリモートファイルを編集するにはどうすればよいですか?

Ubuntu9.10でGVIMを使用しています。私は、たとえばftpでリモートファイル(HTML、PHP、CSS)を編集できるようにGVIMを構成する正しい方法を探しています。

  • :e scp:// username @ remotehost /./ path/to/fileを使用すると、次のようになります:error detected while processing BufEnter Auto commands for "*":E472: Command failed.
  • DolphinまたはNautilusを介してリモートでファイルを開くと、NERDTreeで他のファイルを使用できません。
  • 最後に、Dolphinを介してリモートでファイルを編集すると、interditにアクセスする権限が変更されます。

では、GVIMを使用してローカルホストのようにリモートファイルを編集するにはどうすればよいですか?

26
LaTulipe

sshfsを使用して)ssh上でファイルシステムを実行する方が、エディターにその処理を実行させたり、エディター自体を実行したりするよりも優れたオプションであることがわかりました。 sshトンネル。

だからあなたはする必要があります

apt-get install sshfs

その後

sshfs remoteuser@remotehost:/remote/path /local/mountpoint

これにより、リモートファイルをローカルファイルシステムにあるかのように編集できます。

さらにスムーズにするために、/ etc/fstabに行を追加できます。

sshfs#remoteusername@remotehost:/remote/path /local/mountpoint Fuse user,noauto

何らかの理由で、これを試すときは、fusermount -u /local/mountpointだけでなくumount /local/mountpointを使用する必要があることがわかりました。多分それは私のディストリビューションです。

最近、マウントユーザーはFuseグループに属している必要があることにも気づきました。そう:

Sudo addgroup <username> Fuse

もちろん、他の一般的なオプションは、1台のマシンで GNU Screen セッション内でvim(gvimではなく)を実行することです。どこにいてもssh経由でそのセッションに接続します。仕事で一日中コードを書き、夕方にはオフィスのコンピューターにSSHで接続し、gnu screenセッションに再度接続して、中断したところから正確に再開します。私は、vimを使用するときにgvimから本当に見逃したのは、より豊富なカラーパレットだけだと思っていましたが、実際には修正できます rxvtのフォークのおかげで 256ポジションの色全体をカスタマイズできますほとんどのターミナルエミュレータでカスタマイズできるパレットの最初の16の位置だけでなく、パレット。

45
oivvio

1つの方法があります。それは、リモートホストのコピーを使用し、SSHを使用してX11クライアントを転送することです。

user@local:~/$ ssh -X user@Host
...
user@Host:~/$ gvim file

後者のコマンドはデスクトップでgvimを開くはずです。もちろん、これはX11/gnome/gvimが最初にインストールされているリモートホストに依存します。これは、探しているソリューション/ケースのオプションではない可能性があります。

注:X11転送はセキュリティリスクになる可能性があります。

8
user257111

Netrwがシームレスに機能するためには、not互換モードである必要があると思います。

試してみてください

:set nocompatible

その後

:edit scp:// Host/path/to/file

6
Bill B

これを試して

:e scp://username@remotehost//path/to/file

//の使用は、remotehostの後で意図的に使用され、ファイルの絶対パスを提供することに注意してください:)

http://www.celsius1414.com/2009/08/19/how-to-edit-remote-files-with-local-vim/

5
stack karma

Vimのヒントウィキにはこれに関する記事があります vimのscpを介したリモートファイルの編集

2
Celsius1414

編集:キー認証は不要 ssh経由でファイルを開く場合です。 Vimはパスワードの入力を求めます。

Netrw.vimが起動時にvimによってロードされたかどうかに注意しておくと便利です。

:echo exists("g:loaded_netrwPlugin")

Ssh経由でファイルを開くには、サーバーの承認済みキーにローカルマシンの公開キーが必要です。 vimドキュメントの次のヘルプセクションはそれをかなりよく説明しています。

:help netrw-ssh-hack

公開鍵をエクスポートする簡単な方法は、ssh-copy-id(使用可能な場合)を使用することです。

ssh-copy-id user@Host

また、他のプロトコルでのネットワークファイル編集に関するnetrwのドキュメントをご覧ください。

:help netrw

HTH。

1
shoban

ドキュメントによると、BufEnterはファイルが読み取られ、バッファが作成された後に処理されるため、netrwはファイルを正常に読み取ったと思いますが、ファイルがローカルファイルシステム上にあり、アクセスしようとしていると想定するプラグインがあります。 ctagsを実行します。

デフォルトのVimスクリプトを除くすべてのプラグインスクリプトを無効にしてから、ファイルを編集してみてください。

また、ディレクトリを編集して、netrwがそれを読み取れるかどうかを確認してください。netrwがディレクトリであることを認識できるように、末尾に/を付ける必要があります。

0
Dave Kirby

コマンドについて:e scp:// username @ remotehost /./ path/to/file:netrwでは、scpはそのリモートホスト上のホームディレクトリを基準にして取得されることに注意してください。ホーム相対パスを回避するには、その「。」を削除します。すなわち。 :e scp:// username @ remotehost // path/to/file。

0
Chip Campbell