SSH経由でSublimeを使用する方法


236

仕事用サーバーにSSHで接続するときにSublime Text 2をエディターとして使用しようとしていますが、困惑しています。他の多くの投稿の中で、http//urbangiraffe.com/2011/08/13/remote-editing-with-sublime-text-2/が役立つと思われるが、正確には従っていない、特に5行目のリモート変数にどの値を入力するかを指定します。「/ Users / path / to / local / copy」をローカルルートディレクトリに設定しましたが、それが正しいかどうか、またはそれ以上あるかどうかはわかりませんする。何かご意見は?OSX10.8を使用しています


12
私はそれが使いやすいことがわかりましたosxfuseし、sshfsローカル、リモートディレクトリをマウントして、ST2を経由して編集することが私のMacで。
AGS

sftp用の人気のあるST2プラグインがあります。これは、AGSが参照しているシステムの詳細な説明です: superuser.com/questions/134140/…。ログイン時の自動読み込みに問題があり、Platypusで作成した回避策のログインスクリプトを使用する必要がありました。また、より良いバージョンのmacfuseも必要でした。興味があれば、リンクを見つけられるかどうかを確認します。
法律家2013

Snow Leopard(10.6.8)では、MacFuse用の更新されたコア(つまり、macfuse-core-10.5-2.1.9.dmg)が必要でした-入手した場所へのリンク: blog.urbaninsight.com/2011 / 04/18 / ... 興味があれば、頭痛の種を大幅に減らすことができます。
法律家2013

これはライブではなく、ログファイルなどの監視にはあまり適していないかもしれませんが、多くの場合gitoliteの設定は価値があります。git pullするだけで、ローカルで遊ぶことができます。そして、最近も多くの人が高速インターネットを使用していて、ネットウォックのラグを感じません...それはすべてあなたの設定に依存します。

回答:


161

3つの方法があります。

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


1
また、関連superuser.comの質問を参照してくださいsuperuser.com/questions/581292/...
ミッコOhtamaa

11
SSHFS / osxfuseコンボは私のために働いた!ありがとう。:この問題と他の人のための github.com/osxfuse/osxfuse/wiki/SSHFS
thumbtackthief

sftpプラグインを持つものは、対話型シェルのようなツールやemacsのようなreplを使用できますか?
Edmondo1984

@ Edmondo1984は実際の端末を使用するだけです
Mikko Ohtamaa 2013

1
Sublime SFTPを使用すると、実際にはリモートでファイルを編集できますが、STプロジェクトペインがないため(どこに 移動できません)、またはrsyncのようなことができます。それをテストするための無料トライアルがあります。
Wernight

102

TextMateに触発されたrsubを使用できますrmate。説明から:

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

これを正しく設定する方法についての良いチュートリアルがあります。


2
また、rsubを動作させるのは簡単で、sudoを許可することにも同意します。これは素晴らしいことです。私は仕事の右にそれを得るいくつかの問題に遭遇したが、SOは、あまりにもそれに答えた:stackoverflow.com/questions/18938950/...
ロスR

7
これは無料なので、最初の回答の代わりにこの回答にマークを付けてください
セオドア

ガイドは、私のような完全なターミナルnoobのためでさえ、完全に機能しました。ありがとう!
Henrik

66

私はWindowsを使用していて、LinuxでSFTPWinSCPUnison、およびSublime Textの 4つの方法を使用しています。

4番目の方法は、Linuxマシンにソフトウェアをインストールできる場合に最適です。

4番目の方法:

MobaXterm

  1. インストールMobaXtermを Windows上で
  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. サイドバーで、フォルダーを右クリックして[リモートマップ]を選択します。
  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マシンでサーバーコンポーネントを実行する必要があることです。利点は、転送が非常に高速で、非常に信頼性が高く、ファイル、フォルダー、拡張子を無視することで、設定が非常に簡単になることです。


SFTP setupリンクの+1 。SFTPがWindowsソフトウェアなのかSublimeパッケージなのかはわかりませんでした。
ケビンメレディス2014年

ST2、PuTTYにはsftpを使用し、適切な測定にはFileZillaを少し使用しています。それは私が多くを試した後に私が見つけた最高のセットアップです。ただし、ローカルファイルセットを保持する必要がありません。私はターミナルエディターよりもSTの方が非常に好きです。先端のためのTHX -
Bosworth99

あなたがcyberduck(cyberduck.io/?l=en)のユーザーであれば、sublimetextは非常にうまく統合されます。
sakurashinken

33

@ubikの回答のフォローアップとして、リモートサーバーで「subl」コマンドを機能させるための3つの簡単な(1回限りの)手順を次に示します。

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

    printf "Host *\n    RemoteForward 52698 127.0.0.1:52698" >> ~/.ssh/config
  3. [ サーバー ]リモートサーバーで次の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を使用しています。

あなたは次のようなものでサーバーからSublime Textのサンプルファイルを開くことができます subl ~/test.txt


1
私は続けます: /usr/local/bin/subl: connect: Connection refused /usr/local/bin/subl: line 200: /dev/tcp/localhost/52698: Connection refused Unable to connect to TextMate on localhost:52698。考え?
画鋲

1
はい:-R 52698:localhost:52698をsshコマンドに追加します。ここを参照してください:stackoverflow.com/questions/18938950/...
ロスR

私が便利だと思ったNoobのヒント:ローカルマシンでSublimeを実行することを忘れないでください。これで実際にサーバーが起動します。
マグネ2014年

@RossR-これは機能しません。鉱山は、次のようになります。 "RemoteForward 52698 127.0.0.1:52698 -R 52698:localhostを:52698"と、まだ同じエラーを出力します"ローカルホスト上のTextMateに接続できません:52698"
FooBarの

1
上記は機能します。後でリモートサーバーを再起動する必要があります。そうしないと、接続拒否エラーが発生し続けます。
ctf0

10

私はMacOSを使用しています。私にとって最も便利な方法は、無料のCyber​​Duck(Windowsでも利用可能)を使用することです。リモートSSHファイルシステムに接続し、ローカルエディターを使用してファイルを編集できます。Cyber​​Duckが行うことは、ファイルをローカルOSの一時的な場所にダウンロードし、それをエディターで開きます。ファイルを保存すると、Cyber​​Duckは自動的にファイルをリモートシステムにアップロードします。ローカルエディターを使用してリモートファイルを編集しているように見えます。Cyber​​duckの開発者は、リモートファイルシステムをマウントするためのMountainDuckも作成しています。


1
私は賛成票を投じましたが、これはsudoでは機能しません...(書き込みにスーパーユーザーアクセスが必要なファイル)
Tiago Coelho

1
この正確なソリューションを投稿しに来ました。Cyber​​Duckを使用している限り、非常に便利です。ただし、Cyber​​Duckの実行中にのみ機能することに注意してください。同じ方法を使用して他のエディターでファイルを開くこともできますが、すべてのファイルが確実に機能するわけではなく、接続を失うか、リモートではなくローカルでのみ保存するようにサイレントに切り替える場合があります(Microsoft Excelなど)。ただし、これでSublimeを使用して単一の問題が発生することはありません。
user5359531 16

8

私が取り組んでいる「ゼノ」というものを試すことができます。SSH接続を介してSublime Text(または実際にはローカルエディター)でファイル/フォルダーを開き、リモートマシンへの変更を自動的に同期することができます。ほとんどすべてのPOSIXシステムで動作するはずです(私自身もOS Xから使用してLinuxマシンに接続し、Sublime Textでファイルを編集しています)。これは無料でオープンソースです。私はいくつかのフィードバックが大好きです。

詳細:基本的には、Pythonで記述されたGit / SSHマッシュアップで、ローカルエディターでリモートマシン上のファイルとフォルダーを編集できます。カーネルモジュールを構成する必要はありません。永続的な接続を必要とせず、すべて自動であり、ワークツリー外のGitリポジトリを使用するため、既存のソース管理に干渉しません。また、Git上に構築されているため、非常に高速で、両端で変更される可能性のあるファイルの自動マージをサポートしています。これは、古いタイムスタンプのファイルを破壊するだけのSSHFS / SFTPとは異なります。


そして、私はST2 + Xenoの素晴らしいコンボ.. www.yeraze.com作るスクリプトと設定オプションを持ついくつかの簡単なブログの記事に書いた
Yeraze

5

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

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

sftp://user@remote_box.com:22/home/user/code_directory

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


5

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

ConemuWinSCPに必要なもの。これらは簡単な指示です

  1. WinSCP.exeを開き、目的のリモートサーバーにログインします(
    接続する前にログインすることが重要であることがわかりました...)。

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

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

  4. WinSCPタブを右クリックし、を選択しますNew console...。ダイアログボックスが開いたら、システム上のSublime実行可能ファイルへのパスを入力します。を押す前に、ラジオボタンを選択してパーセントを設定するというStartボックスで。私は通常75%を選択しますが、これは好みに応じてカスタマイズでき、後で変更できます。New console splitto right

    1. これで、WinSCPの右側で実行されている同じウィンドウにSublimeが表示されます。Sublimeの[表示]メニューから[]を選択しSidebar->Hide Sidebar、BAMを実行すると、ローカルとまったく同じ方法でリモートファイルが作成されます。もちろん、リモートでの編集に伴う注意点がいくつかあります。しかし、WinSCPは急速に軽量化されています。

私は2つのモニターを持っています-左モニターディスプレイのChromeブラウザー、右モニターディスプレイのコードエディター。また、でConEmu、別のタブを作成し、作業中のサイトにSSHでアクセスします。これにより、実行gulpまたはgruntリモートで実行したり、コマンドラインからファイルを操作したりできます。真剣に開発をスピードアップしました。

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

設定のスクリーンショット


5

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

# 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 myremoteuserid@${REMOTE_IP}:/your/remote/dir  /your/local/dir # for example

できた!!!

ローカルホストでファイルの編集を開始してください... dirをローカルにリストすると、サブディレクトリにcdするか特定のファイルをリストするまで何もリストされない場合があります...遅延読み込み...これはファイルの編集に影響しません

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の親切な人からこのツタンカーを参照してください。


4

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


私はこのオプションがとても好きです。マウントすると、ドライブ全体を崇高なプロジェクトとして開くことができます。
Mic Fok 2014年

3

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

現時点ではOS Xのみですが、LinuxやWindowsのサポートも簡単に追加できます。

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

私はosx fuse、Expand Drive、Transmit、rsyncを使用するいくつかのソリューションなど、他のソリューションを試しました。これらはすべて、小規模なプロジェクトでは「正常」に機能しますが、多くのコードを使用している場合は機能しません。

多くのファイルシステムオプションは、パフォーマンスを向上させるためにキャッシングを行います。他の人と一緒に作業していて、誰かがサーバー上のファイルを変更しているようなものです。

また、不安定なネットワークや低速のネットワークを使用していて、ファイルが空になる場合にも問題が発生しました。または、同期しなかったファイルの場合、キャッシングが奇妙になりました。うまくいけば、最近コミットしました。gitを使用すると、各コミットの整合性がチェックされるため、この問題が解決されます。

2つのボーナス機能:

  1. 保存するたびにコミットされます。これはそれほど便利ではありませんが、時間を遡る必要がある場合は可能です。
  2. 任意のテキストエディターで動作します。

0

正確なニーズに応じて、BitTorrent Syncの使用を検討してください。自宅のPCと職場のPCに共有フォルダーを作成します。自宅のPCでファイルを編集し(Sublimeまたは好きなものを使用)、保存すると自動的に同期されます。BitTorrent Syncは、ファイルを格納する中央サーバー(Dropboxなど)に依存しないため、理論的には、サードパーティが機密情報を格納することによる問題を明確にする必要があります。


0

私にとってうまくいった解決策-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>USERNAME@REMOTEMACHINE:~</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が実行され、ディレクトリがリモートマシンと同期されます。


これは双方向同期ですか?
かまれた

番号; ローカルマシンからリモートマシンのみ
Ran Locar

0

lsyncdは、sshfsアプローチに代わる優れた方法のようです。「-delay 0」を使用すると、リアルタイムで動作します。


0

FileZillaを使用する

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

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

これにより、デフォルトのエディター(Sublime)が表示されますが、インストールしたすべてのエディターで動作します。

  • ファイルを保存すると、Filezillaは自動的に「このファイルをサーバーにアップロードする」かどうか尋ねてきます。「はい」をクリックすると、ファイルが更新されます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.