29

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

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

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

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

4

7 に答える 7

32

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

:e scp://username@host.com/path/to/file

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

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

于 2011-03-16T06:01:46.573 に答える
19

FUSEformacOSプロジェクトのSSHFSを使用します。https://github.com/libfuse/sshfs

于 2011-03-16T06:00:01.703 に答える
6

私がよく使用したことの1つは、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/
于 2011-03-27T10:24:05.800 に答える
6

上記のMacFUSEは保守されなくなりました。幸いなことに、後継のOSXFUSEがあります。

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

于 2014-03-09T22:38:55.727 に答える
2

あなたの質問の.vimrcの部分に関しては、ドキュメントはパラメータ-uがあなたを助けるかもしれないと述べています。

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

于 2011-03-16T09:25:52.433 に答える
0

各ファイルのscp-ingは、お尻の痛みになります。

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

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

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

自分でログインしてもホームディレクトリがない場合は、書き込みアクセス権のある場所に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…</p>

于 2011-03-16T08:30:34.733 に答える
0

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

于 2011-12-20T15:07:17.080 に答える