web-dev-qa-db-ja.com

ssh上でMacvimを使用する

私のプロジェクトには、リモートサーバー上の大規模なコードベースでの作業が含まれます。私は常に複数のファイルを編集しているので、ファイルを前後にscpすることはできません。 ctagsを含む複数のプラグインを使用して、ローカルのMacvimを好きなようにセットアップできました。

ローカルで実行されているMacvim内からファイルを簡単に参照して開くことができるように、sshを介してMacvimを使用することはまったく可能ですか?

リモートサーバーにインストールせずにctagsを機能させることはさらに良いでしょうが、私は不可能だと思います...

また、リモートサーバーが他の誰かの.vimrcでセットアップされていて、使用したくないが上書きできないという事実も問題です。

27
skeletalmonkey

SSHFS( http://Fuse.sourceforge.net/sshfs.html )を使用します。そのバージョンにはMacFUSEが付属しています。

19
Ana Betts

次のコマンドは、sshを介してMacVimでファイルを開きます。

:e scp://[email protected]/path/to/file

一度に1つのファイルしか提供されないため、これは完全に探しているものではない可能性があります。

ターゲットシステムからローカルに共有をマウントできれば、それも機能します。

30
Cody

上記のMacFUSEはメンテナンスされなくなりました。幸い、後継者があります [〜#〜] osxfuse [〜#〜]

OS X 10.9でMacVimをOSXFUSEとSSHFSとともに使用して、リモートLinuxサーバーでコードを編集しています。テキストファイルを保存するときに短い遅延(1〜3秒)が発生しますが、それを除けば、ローカルファイルシステムで作業するようなものです。

5
user3397938

私がよく使っていたのは、X-11セッションを開いてから、リモートホストに接続し、X経由でgvimを使用することでした。フルGUIバージョンのエディターがあり、実行されているように見えます。ローカルですが、すべてが実際にはリモートで実行されています。

もう1つの方法は、VNCを使用してリモートホスト上のセッションをリモートで制御することです。 Mac用のVNCクライアントがいくつかあります。

Mac SFTPまたはFTPクライアントを使用して接続し、1つまたは複数のファイルを編集するように指示することもできます。 MacVimをエディターとして使用するように構成した場合、ファイルI/OはFTP接続を介して透過的に発生します。 ssh機能がない場合は、このようにしてリモートWebサイトを編集します。

MacVimとvimのnetrwプラグインは非常に機能的です。 scp://...コマンドで編集するファイル名を渡さない場合、vimは通常のディレクトリブラウザを表示し、リモートマシンからファイルを選択してローカルで編集できるようにします。たとえば、これはSSH経由でラップトップからそれ自体への接続を開き、vim内のホームディレクトリを表示します。

vim scp://greg@localhost//Users/greg/
5
the Tin Man

質問の.vimrcの部分については、 documentation は、パラメーター-uが役立つ可能性があると述べています。

-u {vimrc}ファイル{vimrc}が初期化のために読み取られます。

2
DerMike

MacFuse はFuseのMACバージョンです。しかし残念ながら、彼らはもはやプロジェクトを維持しておらず、Snow Leopardにいくつかの問題がありますが、 修正 があります。

0
ecleel

各ファイルのscp-ingはあなたのお尻の痛みになるでしょう。

MacFuseを使用したSSHFSは機能しますが、非常に遅くなる可能性があります。近くのサーバーへの巨大なパイプを使って仕事で数回試しましたが、最初はエレガントに見えましたが、ビーチボールに乗った腹立たしい体験でした。

サーバーのセットアップは正確にどのようになっていますか?他の誰かとしてログインしますか、それとも自分の/home/usernameで自分自身としてログインしますか?

後で、Vim関連のすべてのものをホームディレクトリに簡単に配置して、MacVimを使用するのとほぼ同じようにサーバーのVimを使用できます。ホームディレクトリのどこかにctagsを作成して、それを使用することもできます…

自分でログインしてもホームディレクトリがない場合は、書き込みアクセス権のある場所にVimのものを配置し、ユーザー名のif/elseチェックを使用してマスター.vimrcにパスを追加できます。

私はこのソリューションをテストしていませんが、MacとUbuntuボックスのどちらを使用していても、同様の手法を使用してさまざまな設定をロードします。

if has("gui_running")

  "various gui settings

  let os=substitute(system('uname'), "\n", "", "")
  if os == "Darwin" || os == "Mac"

    "Mac-specific settings

  elseif os == "Linux"

    "Linux-specific settings

  endif

endif

たぶんコマンドwhoami

0
romainl