仕事用サーバーに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を使っています
3つの方法があります。
SFTPプラグインを使用する(商用) http://wbond.net/sublime_packages/sftp - パスフレーズを使用して公開SSH鍵を設定した後は安全で、簡単で、あらゆる価値があるため、これをお勧めします http ://opensourcehacker.com/2012/10/24/ssh-key-and-passwordless-login-basics-for-developers/
コメントに記載されているようにosxfuse
とsshfs
を使用して、リモートをローカルファイルシステムとしてマウントします。 OSXのバージョンとUNIXファイルシステムのスキルによっては、これは少し難しいかもしれません。
ある種のローカルデーモンを使ってリモートトンネリングを介してファイル編集を行うrmateのようなものを一緒にハッキングする(非常に難しい、面倒だが、Sudo互換) http://blog.macromates.com/2011/mate-and-rmate/
また、理論的には、リモートサーバーにX11をインストールしてVNCまたはX11転送経由でSublimeを実行することもできますが、これを実行しても意味がありません。
TextMateのrmate
からヒントを得た rsub を使うことができます。説明から:
Rsubは、TextMate 2のSublime Text 2用の「rmate」機能の実装で、SSHポート転送/トンネリングを使用してリモートサーバー上でファイルを編集することを可能にします。
これは良いチュートリアルです それを正しく設定する方法について。
私はWindowsにいて、4つの方法を使っています: _ sftp _ 、 WinSCP 、 Unison と SSH上でX11転送を行うLinux上のSublime Text Windows (はい、面倒な設定や無料のツールを使わなくても可能です)。
あなたのLinuxマシンにソフトウェアをインストールできるのであれば、4番目の方法が最善です。
第四の方法:
MobaXterm
subl
で昇華を開始します注意:sublを起動して特定のライブラリについて文句を言う場合 - mobaxtermからsublimetextを正常に呼び出すためにそれらをインストールするようにしてください。
Linuxにソフトウェアをインストールできない場合は、Unisonが最適です。どうして?
_ sftp _
セットアップ: _ sftp _ / Sublime Textパッケージをインストールしてください。このパッケージにはライセンスが必要です。
Sftp-configで、私は通常設定します:
"upload_on_save": true,
"sync_down_on_open": true,
これは、マシンへのSSHターミナルに加えて、私にかなりシームレスなリモート編集の経験を与えてくれます。
WinSCP
それ以降、WinSCPはあなたの変更を同期させ続けます。
SublimeTextを使用してローカルフォルダで作業します。 Sublime Textが編集中のファイルから行末を推測するように設定されていることを確認してください。
ユニゾン
ソースツリーが大規模な場合(深い階層で数百MB程度)、上記のWinSCPの方法は少し遅くなることがあります。 Unison を使用すると、はるかに優れたパフォーマンスを得ることができます。欠点は、Unisonは自動ではなく(キーを押すことで起動する必要がある)、Linuxマシン上でサーバーコンポーネントを実行する必要があるということです。利点は、転送が非常に高速で、非常に信頼性が高く、ファイル、フォルダ、および拡張子を無視してセットアップするのが非常に簡単であるということです。
@ ubikの答えをフォローアップするために、リモートサーバーで 'subl'コマンドを実行するための3つの簡単な(1回限りの)手順を示します。
rsub
パッケージをSublime Textにインストールします /[ Local ]次のBashコマンドを実行します(これにより、 SSHトンネル が設定されます。これは、rsubの秘密のソースです)。
printf "Host *\n RemoteForward 52698 127.0.0.1:52698" >> ~/.ssh/config
[ 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でサンプルファイルを開くことができます。
私はMaxOSを使っています、そして私にとって最も便利な方法は CyberDuck を使うことです。リモートSSHファイルシステムに接続して、ローカルエディタを使用してファイルを編集できます。 CyberDuckがすることは、ファイルをローカルOSの一時的な場所にダウンロードして、エディタで開くことです。ファイルを保存すると、CyberDuckは自動的にそれをリモートシステムにアップロードします。ローカルエディタを使ってリモートファイルを編集しているように見えます。
私が取り組んできた ' xeno 'を試すことができます。 SSH接続を介してSublime Text(または任意のローカルエディタ)でファイル/フォルダを開き、変更を自動的にリモートマシンに同期させることができます。ほぼすべてのPOSIXシステムで動作するはずです(私は自分でOS XからLinuxマシンに接続し、Sublime Textでファイルを編集するために使用しています)。無料でオープンソースです。フィードバックをお願いします。
詳細情報:これは基本的にPythonで書かれたGit/SSHマッシュアップで、これを使ってリモートマシン上のファイルやフォルダをローカルエディタで編集できます。カーネルモジュールを設定する必要はありませんし、永続的な接続を持つ必要もありません。すべて自動であり、また、out-of-worktreeのGitリポジトリを使用しているので既存のソース管理に干渉しません。また、Git上に構築されているため、非常に高速であり、両端で変更される可能性があるファイルの自動マージをサポートします。SSHFS/ SFTPでは、古いタイムスタンプを持つファイルが上書きされるだけです。
これは、以前に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 myremoteuserid@${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
私はこれが古くなっているのを知っています、しかし私は共有する価値があるこれをする本当にクールな方法を持っています。
Conemu および WinSCP に必要なものこれらは簡単な説明です
WinSCP.exeを開き、必要なリモートサーバーにログインします
添付する前にログインすることが重要であることがわかりました...)。
WinSCPの設定で - 変更する2つの設定。ローカルファイルが表示されないように、コマンダーではなくエクスプローラタイプのインターフェースを選択してください。あなたがしたいのでなければ(しかし、それはそれがここで吸うだろうように思われる)。デフォルトのエディタとしてSublimeを設定します。
ConEmuを開いた状態で、タブバーを右クリックしてオプションAttach to...
を選択します。実行中のアプリケーションと共にダイアログボックスが開きます。 WinSCPを選択し、[OK]をクリックします。 ConEmuはWinSCPであなたのリモートファイルを表示する開いたタブを持つでしょう。
WinSCPタブを右クリックして、New console...
を選択します。ダイアログボックスが開いたら、システム上のSublime実行可能ファイルへのパスを入力します。 Start
を押す前に、New console split
と表示されたボックスで、ラジオボタンto right
を選択し、割合を設定します。私は通常75%を選びます、しかしあなたはあなたの好みに合わせてこれをカスタマイズすることができます、そしてそれは後で変更することができます。
Sidebar->Hide Sidebar
]を選択し、bamを使用すると、ローカルの場合とまったく同じ方法でリモートファイルが作成できます。もちろん、リモートで何かを編集する場合は注意が必要です。 WinSCPは急速に軽量化しています。私は二つのモニタを持っている - 左側のモニタディスプレイのChromeブラウザ、右側のモニタディスプレイコードエディタ。またConEmu
では、自分が作業しているサイトに別のタブを作成してsshを使うので、gulp
やgrunt
をリモートで実行したり、コマンドラインからファイルを操作したりすることができます。真剣に開発をスピードアップ。
これがスクリーンショットです。
Sftpを使ってロケーションマシンにリモートディレクトリをマウントしてから、通常どおりSublimeテキストを使ってファイルを開くことができます。
Sftpを使用してリモートディレクトリをマウントするには、Linuxファイルマネージャで次のように入力します。
sftp://user@remote_box.com:22/home/user/code_directory
インターネットの速度によっては遅く見えるかもしれません。しかし、これは私のために働いた。
Osxfuseに似たもう1つのmacソリューションは、Panic SoftwareのTransmit FTPクライアントを使うことです。これは、リモートフォルダをローカルディスクとしてマウントすることを可能にします。非常に安全なSFTPをサポートしています。
私は GiySync というプロジェクトに取り組んでいます。まだ作業が必要ですが、オープンソースであり、私はこれを数年間毎日使っています。私はまた私が GitSyncApp と呼んだネイティブのOS Xバージョンにも取り組んでいます。
現時点ではOS Xのみですが、Linux、場合によってはWindowsもサポートを追加するのは簡単なはずです。
ファイルシステムのイベントを監視することで機能し、ローカルマシンとサーバーのプロジェクトフォルダを同期するために git を使用します。
私はosx Fuse、Expand Drive、Transmit、rsyncなどを使ったいくつかの解決策のような他の解決策を試してみました。それらはすべて小さなプロジェクトでは 'OK'ですが、たくさんのコードで作業しているなら私にとってはうまくいきませんでした。
ファイルシステムのオプションの多くはパフォーマンスを向上させるためにキャッシュを行いますが、それがうまくいかないまでは問題ありません。他の人と仕事をしていて、他の人がサーバー上のファイルを変更しているような場合です。
私は私が空のファイルになってしまうであろう薄片状または低速のネットワーク上にいた場合も私は問題に遭遇した。同期していないファイルがあると、キャッシュがおかしくなります。うまくいけばあなたは最近コミットしました。 gitを使用すると、各コミットの整合性がチェックされるので、この問題を解決します。
二つのボーナス機能:
私にとって最適な解決策 - Mac上でローカルに編集し、ファイルを自動的にリモートマシンに同期させる
リモートマシンにパスワードなしでログインしていることを確認してください。そうでない場合は、次の手順に従ってください http://osxdaily.com/2012/05/25/how-to-set-up-a-password-less-ssh-login/ /
以下の内容で、〜/ 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>
ターミナルウィンドウで
launchctl load ~/Library/LaunchAgents/filesynchronizer.plist
それでおしまい。 〜/ SyncDirectory内のファイルへの変更はすべてリモートマシン上の〜/ SyncDirectoryに同期されます。ローカルの変更はリモートの変更を上書きします。
これにより、SyncDirectoryを監視するlaunchdジョブが作成され、そこで何らかの変更があると必ずrsyncが実行されてディレクトリがリモートマシンに同期されます。
これはMacとWindowsのユーザーに適用されます(私はMac上で使用します)。私は何年もの間リストされた答えのいくつかを使いました、そして FileZilla は私がSSHアクセスを持つリモートホスト上のファイルを編集するとき私のニーズによく合っていることがわかりました。セットアップも簡単です。
View/Edit
を選択します。これで私のデフォルトエディタ(Sublime)が起動しますが、あなたがインストールしたどのエディタでも動作します。
あなたの正確なニーズに応じて、あなたはBitTorrent同期の使用を検討するかもしれません。自宅のPCと職場のPCに共有フォルダを作成します。自宅のPCでファイルを編集して(Sublimeなどを使って)、保存すると自動的に同期されます。 BitTorrent同期はファイルを保存する中央サーバー(ドロップボックスなど)には依存しないので、理論的には機密情報を保存するサードパーティによる問題を避けるべきです。
lsyncd sshfsのアプローチに代わる素晴らしい方法です。 "-delay 0"を使うと、リアルタイムで動作します。