web-dev-qa-db-ja.com

Sublime over SSHの使い方

仕事用サーバーにSSHで接続するときに、Sublime Text 2をエディターとして使用しようとしていますが、困惑しています。私はこれを見つけました http://urbangiraffe.com/2011/08/13/remote-editing-with-sublime-text-2/ (他の多くの記事の中で)それは助けになるかもしれませんが、私はしません特に5行目のremote変数にはどのような値を設定すればよいのでしょうか。私は自分のローカルルートディレクトリに "/ Users/path/to/local/copy"を設定しましたが、正しいかどうかわかりません。それ以上やることがあるならば。何かご意見は? OSX10.8を使っています

230
thumbtackthief

3つの方法があります。

  • SFTPプラグインを使用する(商用) http://wbond.net/sublime_packages/sftp - パスフレーズを使用して公開SSH鍵を設定した後は安全で、簡単で、あらゆる価値があるため、これをお勧めします http ://opensourcehacker.com/2012/10/24/ssh-key-and-passwordless-login-basics-for-developers/

  • コメントに記載されているようにosxfusesshfsを使用して、リモートをローカルファイルシステムとしてマウントします。 OSXのバージョンとUNIXファイルシステムのスキルによっては、これは少し難しいかもしれません。

  • ある種のローカルデーモンを使ってリモートトンネリングを介してファイル編集を行うrmateのようなものを一緒にハッキングする(非常に難しい、面倒だが、Sudo互換) http://blog.macromates.com/2011/mate-and-rmate/

また、理論的には、リモートサーバーにX11をインストールしてVNCまたはX11転送経由でSublimeを実行することもできますが、これを実行しても意味がありません。

156
Mikko Ohtamaa

TextMateのrmateからヒントを得た rsub を使うことができます。説明から:

Rsubは、TextMate 2のSublime Text 2用の「rmate」機能の実装で、SSHポート転送/トンネリングを使用してリモートサーバー上でファイルを編集することを可能にします。

これは良いチュートリアルです それを正しく設定する方法について。

99
ubik

私はWindowsにいて、4つの方法を使っています: _ sftp _ WinSCP Unison SSH上でX11転送を行うLinux上のSublime Text Windows (はい、面倒な設定や無料のツールを使わなくても可能です)。

あなたのLinuxマシンにソフトウェアをインストールできるのであれば、4番目の方法が最善です。

第四の方法:

MobaXterm

  1. Windowsに MobaXterm をインストールします
  2. MobaXtermからLinuxボックスにSSHで接続します。
  3. LinuxボックスにSublime Text 3をインストールします。ここに Ubuntuの使い方
  4. コマンドプロンプトで、sublで昇華を開始します
  5. それでおしまい!崇高なテキストがLinux上で実行されていますが、ウィンドウはWindowsデスクトップ上で実行されています。 MobaXtermがSSHを介したX11転送をあなたに代わって処理するので、これは可能です。ちょっとした遅れがあるかもしれません、しかしあなたのファイルはLinuxマシンでそれらを正しく編集しているので同期しないことは決してありません。

注意:sublを起動して特定のライブラリについて文句を言う場合 - mobaxtermからsublimetextを正常に呼び出すためにそれらをインストールするようにしてください。

Linuxにソフトウェアをインストールできない場合は、Unisonが最適です。どうして?

  • それは無料です
  • これは速い
  • 信頼性が高く、どのエディタを使っても構いません。
  • あなたはカスタム無視リストを作成することができます

_ sftp _

セットアップ: _ sftp _ / Sublime Textパッケージをインストールしてください。このパッケージにはライセンスが必要です。

  1. 新しいフォルダを作成する
  2. Sublime Text Projectとして開きます。
  3. サイドバーで、フォルダを右クリックして[Map Remote]を選択します。
  4. Sftp-config.jsonファイルを編集します。
  5. 手順1でフォルダを右クリックしてダウンロードを選択します。
  6. ローカルで作業します。

Sftp-configで、私は通常設定します:

"upload_on_save": true,
"sync_down_on_open": true,

これは、マシンへのSSHターミナルに加えて、私にかなりシームレスなリモート編集の経験を与えてくれます。

WinSCP

  1. WinSCPをインストールして実行します
  2. 設定(Ctrl + Alt + P)に行き、転送をクリックしてから追加をクリックします。プリセットに名前を付けます。
  3. 転送モードをバイナリに設定します(行変換は不要です)。
  4. ファイル変更を「変更なし」に設定します
  5. [ファイルマスク]の横にある[編集]ボタンをクリックして、インクルードファイルとエクスクルードファイルおよびフォルダを設定します(.git/.svnフォルダが存在する場合やビルド製品を同期から除外する場合に便利です)。
  6. OKをクリック
  7. リモートサーバーに接続して目的のフォルダに移動します。
  8. ローカルマシンの空のフォルダを選択してください。
  9. 新しく作成した転送設定プリセットを選択します。
  10. 最後に、Ctrl + U(コマンド>リモートディレクトリを最新の状態に保つ)を押して、[同期時に同期]と[サブディレクトリを更新]がチェックされていることを確認します。

それ以降、WinSCPはあなたの変更を同期させ続けます。

SublimeTextを使用してローカルフォルダで作業します。 Sublime Textが編集中のファイルから行末を推測するように設定されていることを確認してください。

ユニゾン

ソースツリーが大規模な場合(深い階層で数百MB程度)、上記のWinSCPの方法は少し遅くなることがあります。 Unison を使用すると、はるかに優れたパフォーマンスを得ることができます。欠点は、Unisonは自動ではなく(キーを押すことで起動する必要がある)、Linuxマシン上でサーバーコンポーネントを実行する必要があるということです。利点は、転送が非常に高速で、非常に信頼性が高く、ファイル、フォルダ、および拡張子を無視してセットアップするのが非常に簡単であるということです。

65
Carl

@ ubikの答えをフォローアップするために、リモートサーバーで 'subl'コマンドを実行するための3つの簡単な(1回限りの)手順を示します。

  1. [ Local ] Sublime Package Managerを使用してrsubパッケージをSublime Textにインストールします /
  2. [ Local ]次のBashコマンドを実行します(これにより、 SSHトンネル が設定されます。これは、rsubの秘密のソースです)。

    printf "Host *\n    RemoteForward 52698 127.0.0.1:52698" >> ~/.ssh/config
    
  3. [ Server ]リモートサーバーで次のBashコマンドを実行します(これにより 'subl'シェルコマンドがインストールされます)。

    Sudo wget -O /usr/local/bin/subl https://raw.github.com/aurora/rmate/master/rmate; Sudo chmod +x /usr/local/bin/subl
    

そして、やあ! SSHでSublime Textを使用しています。

subl ~/test.txtのようなものを使って、サーバーからSublime Textでサンプルファイルを開くことができます。

32
user456584

私はMaxOSを使っています、そして私にとって最も便利な方法は Cyber​​Duck を使うことです。リモートSSHファイルシステムに接続して、ローカルエディタを使用してファイルを編集できます。 Cyber​​Duckがすることは、ファイルをローカルOSの一時的な場所にダウンロードして、エディタで開くことです。ファイルを保存すると、Cyber​​Duckは自動的にそれをリモートシステムにアップロードします。ローカルエディタを使ってリモートファイルを編集しているように見えます。

10
bizi

私が取り組んできた ' xeno 'を試すことができます。 SSH接続を介してSublime Text(または任意のローカルエディタ)でファイル/フォルダを開き、変更を自動的にリモートマシンに同期させることができます。ほぼすべてのPOSIXシステムで動作するはずです(私は自分でOS XからLinuxマシンに接続し、Sublime Textでファイルを編集するために使用しています)。無料でオープンソースです。フィードバックをお願いします。

詳細情報:これは基本的にPythonで書かれたGit/SSHマッシュアップで、これを使ってリモートマシン上のファイルやフォルダをローカルエディタで編集できます。カーネルモジュールを設定する必要はありませんし、永続的な接続を持つ必要もありません。すべて自動であり、また、out-of-worktreeのGitリポジトリを使用しているので既存のソース管理に干渉しません。また、Git上に構築されているため、非常に高速であり、両端で変更される可能性があるファイルの自動マージをサポートします。SSHFS/ SFTPでは、古いタイムスタンプを持つファイルが上書きされるだけです。

8
havoc-io

これは、以前にsshをリモートIPに設定したリモートホストにあるファイルをローカルで編集する最も簡単な方法です。

# issue on local box

Sudo apt-get install sshfs   # on local Host install sshfs ( linux )

# on local box create secure mount of remote directory

export REMOTE_IP=107.170.58.249 # remote Host IP

sshfs [email protected]${REMOTE_IP}:/your/remote/dir  /your/local/dir # for example

完了しました。

ローカルホスト上でファイルの編集を開始します。dirをローカルに表示すると、subdirに移動するか特定のファイルを表示するまで何も表示されないことがあります。

subl /your/local/dir/magnum_opus.go # local file edit using sublime text

だから上で実際にリモートファイルを編集しています

/your/remote/dir/magnum_opus.go  # remote file on box $REMOTE_IP

OSXまたはWindowsの場合は、Digital Oceanの親切な人々からこのチュチュを見てください

5
Scott Stensland

私はこれが古くなっているのを知っています、しかし私は共有する価値があるこれをする本当にクールな方法を持っています。

Conemu および WinSCP に必要なものこれらは簡単な説明です

  1. WinSCP.exeを開き、必要なリモートサーバーにログインします
    添付する前にログインすることが重要であることがわかりました...)。

  2. WinSCPの設定で - 変更する2つの設定。ローカルファイルが表示されないように、コマンダーではなくエクスプローラタイプのインターフェースを選択してください。あなたがしたいのでなければ(しかし、それはそれがここで吸うだろうように思われる)。デフォルトのエディタとしてSublimeを設定します。

  3. ConEmuを開いた状態で、タブバーを右クリックしてオプションAttach to...を選択します。実行中のアプリケーションと共にダイアログボックスが開きます。 WinSCPを選択し、[OK]をクリックします。 ConEmuはWinSCPであなたのリモートファイルを表示する開いたタブを持つでしょう。

  4. WinSCPタブを右クリックして、New console...を選択します。ダイアログボックスが開いたら、システム上のSublime実行可能ファイルへのパスを入力します。 Startを押す前に、New console splitと表示されたボックスで、ラジオボタンto rightを選択し、割合を設定します。私は通常75%を選びます、しかしあなたはあなたの好みに合わせてこれをカスタマイズすることができます、そしてそれは後で変更することができます。

    1. これで、Sublimeが同じウィンドウに表示され、WinSCPの右側に移動します。 Sublimeでは、[表示]メニューから[Sidebar->Hide Sidebar]を選択し、bamを使用すると、ローカルの場合とまったく同じ方法でリモートファイルが作成できます。もちろん、リモートで何かを編集する場合は注意が必要です。 WinSCPは急速に軽量化しています。

私は二つのモニタを持っている - 左側のモニタディスプレイのChromeブラウザ、右側のモニタディスプレイコードエディタ。またConEmuでは、自分が作業しているサイトに別のタブを作成してsshを使うので、gulpgruntをリ​​モートで実行したり、コマンドラインからファイルを操作したりすることができます。真剣に開発をスピードアップ。

これがスクリーンショットです。

Setup Screenshot

5
dgo

Sftpを使ってロケーションマシンにリモートディレクトリをマウントしてから、通常どおりSublimeテキストを使ってファイルを開くことができます。

Sftpを使用してリモートディレクトリをマウントするには、Linuxファイルマネージャで次のように入力します。

sftp://[email protected]_box.com:22/home/user/code_directory

インターネットの速度によっては遅く見えるかもしれません。しかし、これは私のために働いた。

5
David Okwii

Osxfuseに似たもう1つのmacソリューションは、Panic SoftwareのTransmit FTPクライアントを使うことです。これは、リモートフォルダをローカルディスクとしてマウントすることを可能にします。非常に安全なSFTPをサポートしています。

4
Gavster

私は GiySync というプロジェクトに取り組んでいます。まだ作業が必要ですが、オープンソースであり、私はこれを数年間毎日使っています。私はまた私が GitSyncApp と呼んだネイティブのOS Xバージョンにも取り組んでいます。

現時点ではOS Xのみですが、Linux、場合によってはWindowsもサポートを追加するのは簡単なはずです。

ファイルシステムのイベントを監視することで機能し、ローカルマシンとサーバーのプロジェクトフォルダを同期するために git を使用します。

私はosx Fuse、Expand Drive、Transmit、rsyncなどを使ったいくつかの解決策のような他の解決策を試してみました。それらはすべて小さなプロジェクトでは 'OK'ですが、たくさんのコードで作業しているなら私にとってはうまくいきませんでした。

ファイルシステムのオプションの多くはパフォーマンスを向上させるためにキャッシュを行いますが、それがうまくいかないまでは問題ありません。他の人と仕事をしていて、他の人がサーバー上のファイルを変更しているような場合です。

私は私が空のファイルになってしまうであろう薄片状または低速のネットワーク上にいた場合も私は問題に遭遇した。同期していないファイルがあると、キャッシュがおかしくなります。うまくいけばあなたは最近コミットしました。 gitを使用すると、各コミットの整合性がチェックされるので、この問題を解決します。

二つのボーナス機能:

  1. あなたはすべての保存のためにコミットすることになります。それほど便利ではありませんが、間に合わなければならない場合もあります。
  2. どんなテキストエディタでも動作します。
3
Jachin

私にとって最適な解決策 - Mac上でローカルに編集し、ファイルを自動的にリモートマシンに同期させる

  1. リモートマシンにパスワードなしでログインしていることを確認してください。そうでない場合は、次の手順に従ってください http://osxdaily.com/2012/05/25/how-to-set-up-a-password-less-ssh-login/ /

  2. 以下の内容で、〜/ Library/LaunchAgents/filesynchronizer.plistにファイルを作成します。

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>filesynchronizer</string> <key>ProgramArguments</key> <array> <string>/usr/bin/rsync</string> <string>-avz</string> <string>/Users/USERNAME/SyncDirectory</string> <string>[email protected]:~</string> </array> <key>WatchPaths</key> <array> <string>/Users/USERNAME/SyncDirectory</string> </array> </dict> </plist>

  3. ターミナルウィンドウで

    launchctl load ~/Library/LaunchAgents/filesynchronizer.plist

  4. それでおしまい。 〜/ SyncDirectory内のファイルへの変更はすべてリモートマシン上の〜/ SyncDirectoryに同期されます。ローカルの変更はリモートの変更を上書きします。

これにより、SyncDirectoryを監視するlaunchdジョブが作成され、そこで何らかの変更があると必ずrsyncが実行されてディレクトリがリモートマシンに同期されます。

0
Ran Locar

FileZillaを使用する

これはMacとWindowsのユーザーに適用されます(私はMac上で使用します)。私は何年もの間リストされた答えのいくつかを使いました、そして FileZilla は私がSSHアクセスを持つリモートホスト上のファイルを編集するとき私のニーズによく合っていることがわかりました。セットアップも簡単です。

  • 新しいサーバー接続を設定します
  • サーバーに接続する
  • 編集したいファイルを右クリックして、View/Editを選択します。

これで私のデフォルトエディタ(Sublime)が起動しますが、あなたがインストールしたどのエディタでも動作します。

  • ファイルを保存すると、Filezillaは自動的に「このファイルをサーバーにアップロードする」かどうかを尋ねるプロンプトを表示し、「はい」をクリックして更新します。
0
Ben Havilland

あなたの正確なニーズに応じて、あなたはBitTorrent同期の使用を検討するかもしれません。自宅のPCと職場のPCに共有フォルダを作成します。自宅のPCでファイルを編集して(Sublimeなどを使って)、保存すると自動的に同期されます。 BitTorrent同期はファイルを保存する中央サーバー(ドロップボックスなど)には依存しないので、理論的には機密情報を保存するサードパーティによる問題を避けるべきです。

0
thedudeabides

lsyncd sshfsのアプローチに代わる素晴らしい方法です。 "-delay 0"を使うと、リアルタイムで動作します。

0
JLarky