Как использовать Sublime over SSH

237

Я пытаюсь использовать Sublime Text 2 в качестве редактора, когда я подключаюсь по SSH к своему рабочему серверу, и я в тупике. Я нашел этот http://urbangiraffe.com/2011/08/13/remote-editing-with-sublime-text-2/ (среди многих других постов), который выглядит так, как будто он может помочь, но я точно не следую этому особенно с тем, какие значения я должен ввести для удаленной переменной в строке 5. Я устанавливаю "/ Users / path / to / local / copy" в свой локальный корневой каталог, но я не знаю, правильно ли это или есть еще делать. Есть предположения? Я на OSX10.8

thumbtackthief
источник
12
Я обнаружил, что проще osxfuseиsshfs на моем Mac локально монтировать удаленные каталоги, а затем редактировать через ST2.
AGS
Для sftp существует популярный плагин ST2. Вот еще одно объяснение системы, на которую, как мне кажется, ссылается AGS: superuser.com/questions/134140/… . У меня была проблема с автозагрузкой при входе в систему, и мне пришлось использовать обходной сценарий входа в систему, созданный с помощью Platypus. Мне также нужна была лучшая версия macfuse - я посмотрю, смогу ли я найти ссылку, если вам интересно.
законник
В Snow Leopard (10.6.8) мне нужно было обновленное ядро ​​для MacFuse (то есть macfuse-core-10.5-2.1.9.dmg) - вот ссылка на то, где я его получил: blog.urbaninsight.com/2011 / 04/18 /… Если вам интересно, это избавит вас от многих головных болей.
законник
Он не был бы живым и, возможно, менее подходящим для просмотра лог-файлов и прочего, но часто настройка gitolite может стоить того. Просто дерьмо, и у вас есть все, чтобы играть с местным. С другой стороны, многие люди имеют быстрый интернет в эти дни и не чувствуют задержки в сети ... Все зависит от вашей настройки.

Ответы:

161

Есть три способа:

  • Используйте плагин SFTP (коммерческий) http://wbond.net/sublime_packages/sftp - я лично рекомендую это, так как после настройки открытых SSH-ключей с парольной фразой это безопасно, легко и стоит каждого пенни http://opensourcehacker.com/2012/ 10/24 / SSH-ключ-и-Беспарольная-вход-основы-для-разработчиков /

  • Монтируйте пульт как локальную файловую систему, используя osxfuseи sshfsкак указано в комментариях. Это может быть немного сложно, в зависимости от версии OSX и ваших навыков работы с файловыми системами UNIX.

  • Взломайте что-то вроде rmate, которое выполняет редактирование файлов через удаленное туннелирование, используя своего рода локальный демон (очень сложный, громоздкий, но совместимый с sudo) http://blog.macromates.com/2011/mate-and-rmate/

Кроме того, теоретически вы можете установить X11 на удаленном сервере и запустить там Sublime через переадресацию VNC или X11, но в этом нет никакого смысла.

Микко Охтамаа
источник
1
См. Также связанный вопрос superuser.com superuser.com/questions/581292/…
Микко Охтамаа,
11
Комбо SSHFS / osxfuse сработало для меня! Спасибо. Для других с этой проблемой: github.com/osxfuse/osxfuse/wiki/SSHFS
thumbtackthief
можно ли с плагином sftp использовать такие инструменты, как интерактивные оболочки и повторять, как в emacs?
Edmondo1984
@ Edmondo1984 просто используйте для этого реальный терминал
Микко Охтамаа,
1
Sublime SFTP фактически позволяет вам редактировать файлы удаленно, но без панели проекта ST (так что не переходите в Anywhere ), или делает что-то вроде rsync. Есть бесплатная пробная версия, чтобы проверить это.
Вечерняя ночь
102

Вы можете использовать rsub , который вдохновлен TextMate's rmate. Из описания:

Rsub - это реализация функции rmate TextMate 2 для Sublime Text 2, позволяющая редактировать файлы на удаленном сервере, используя переадресацию / туннелирование портов SSH.

Вот хороший учебник о том, как правильно его настроить.

Ubik
источник
2
Я также согласен с тем, что заставить rsub работать очень просто, и это позволяет sudo, и это здорово. Я столкнулся с некоторыми проблемами, чтобы заставить его работать правильно, но у SO тоже был на это ответ: stackoverflow.com/questions/18938950/…
Ross R
7
пожалуйста, отметьте этот ответ вместо первого, так как он бесплатный
теодор
Гид работал отлично, даже для такого терминального новичка, как я. Спасибо!
Хенрик
66

Я на Windows и использовал 4 метода: SFTP , WinSCP , Unison и Sublime Text в Linux с пересылкой X11 через SSH в Windows (да, вы можете сделать это без грязных настроек и с помощью бесплатного инструмента).

Четвертый способ - лучший, если вы можете установить программное обеспечение на свой компьютер с Linux.

Четвертый способ:

MobaXterm

  1. Установить MobaXterm в Windows
  2. SSH к вашей Linux-системе от MobaXterm
  3. На вашем Linux-компьютере установите Sublime Text 3. Вот как это сделать в Ubuntu
  4. В командной строке запустите Sublime с subl
  5. Это оно! Теперь у вас есть возвышенный текст, работающий в Linux, но его окно работает на вашем рабочем столе Windows. Это возможно, потому что MobaXterm обрабатывает переадресацию X11 по SSH для вас, поэтому вам не нужно делать ничего прикольного, чтобы запустить его. Может быть небольшая задержка, но ваши файлы никогда не будут синхронизированы, потому что вы редактируете их прямо на Linux-машине.

Примечание: при вызове subl, если он жалуется на определенную библиотеку - убедитесь, что вы установили их для успешного вызова sublimetext из mobaxterm.

Если вы не можете установить программное обеспечение на свой 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) и нажмите «Transfer», затем «Add». Назовите пресет.
  3. Установите режим передачи на двоичный (вы не хотите преобразования строк)
  4. Установите модификацию файла на «Без изменений»
  5. Нажмите кнопку «Изменить» рядом с «Маска файла» и настройте включаемые и исключаемые файлы и папки (полезно, когда у вас есть папка .git / .svn или вы хотите исключить синхронизацию продуктов сборки).
  6. Нажмите ОК
  7. Подключитесь к удаленному серверу и перейдите к интересующей вас папке.
  8. Выберите пустую папку на вашем локальном компьютере.
  9. Выберите вновь созданную предустановку параметров передачи.
  10. Наконец, нажмите Ctrl + U (Команды> Поддерживать актуальность удаленного каталога) и убедитесь, что установлены флажки «Синхронизировать при запуске» и «Обновить подкаталоги».

С этого момента WinSCP будет синхронизировать ваши изменения.

Работа в локальной папке с использованием SublimeText. Просто убедитесь, что Sublime Text настроен так, чтобы угадать окончания строк в редактируемом файле.

унисон

Я обнаружил, что если исходное дерево массивное (около нескольких сотен МБ с глубокой иерархией), то описанный выше метод WinSCP может быть немного медленным. Вы можете получить намного лучшую производительность, используя Unison . Недостатком является то, что Unison не является автоматическим (вам нужно запускать его нажатием клавиши) и требует, чтобы на вашем компьютере с Linux работал серверный компонент. Положительным моментом является то, что передача происходит невероятно быстро, она очень надежна, а игнорирование файлов, папок и расширений невероятно просто в настройке.

деревенщина
источник
+1 за SFTP setupссылку. Я не знал, было ли SFTP программным обеспечением Windows или пакетом Sublime.
Кевин Мередит
Я использую sftp для ST2, PuTTY и немного FileZilla для хорошей меры. Это лучшая установка, которую я нашел после многих попыток. Однако мне не нравится хранить локальный набор файлов. Я очень предпочитаю ST перед терминальными редакторами lik vi или nano - создание ST3 на сервере само по себе кажется приятной сделкой спасибо за подсказку -
Bosworth99
Если вы пользователь cyberduck ( cyberduck.io/?l=en ), sublimetext очень хорошо интегрируется.
sakurashinken
33

В качестве ответа на ответ @ ubik, вот три простых (одноразовых) шага, чтобы заставить команду 'subl' работать на вашем удаленном сервере:

  1. [ Local ] Установить rsubпакет в Sublime Text с помощью Sublime Package Manager.
  2. [ Local ] Выполните следующую команду Bash (это создаст SSH-туннель , который является секретным соусом rsub):

    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

И вуаля! Теперь вы используете Sublime Text поверх SSH.

Вы можете открыть файл примера в Sublime Text с сервера чем-то вроде subl ~/test.txt

user456584
источник
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 на вашем локальном компьютере. Это на самом деле запускает сервер.
Магн
@RossR - это не работает. Мой выглядит следующим образом: «RemoteForward 52698 127.0.0.1:52698 -R 52698: localhost: 52698» и все еще выдает ту же ошибку: «Невозможно подключиться к TextMate на localhost: 52698»
FooBar
1
все вышеперечисленное работает, вам просто нужно перезагрузить удаленный сервер после этого, иначе вы продолжите получать ошибку «Отказано в соединении».
ctf0
10

Я нахожусь на MacOS, и самый удобный способ для меня - использовать CyberDuck , который является бесплатным (также доступен для Windows). Вы можете подключиться к удаленной файловой системе SSH и отредактировать файл с помощью локального редактора. CyberDuck загружает файл во временное место вашей локальной ОС и открывает его в редакторе. После сохранения файла CyberDuck автоматически загрузит его в удаленную систему. Кажется прозрачным, как будто вы редактируете удаленный файл, используя локальный редактор. Разработчики Cyberduck также делают MountainDuck для монтирования удаленных файловых систем.

бизи
источник
1
я проголосовал, хотя это не работает с sudo ... (файлы, которым нужен доступ суперпользователя для записи)
Tiago Coelho
1
Пришел, чтобы опубликовать это точное решение. Пока вы используете CyberDuck, это очень удобно. Однако имейте в виду, что он работает только во время работы CyberDuck. Вы также можете использовать тот же метод для открытия файлов в других редакторах, но я обнаружил, что не все из них будут работать надежно и могут потерять соединение или тихо переключиться на локальное сохранение вместо удаленного (например, Microsoft Excel). Никогда не было ни одной проблемы с этим, используя Sublime, хотя.
user5359531
8

Вы можете попробовать то, над чем я работаю, под названием « ксено». ». Это позволит вам открывать файлы / папки в Sublime Text (или в любом другом локальном редакторе) через соединение SSH и автоматически синхронизировать изменения на удаленной машине. Он должен работать практически на всех системах POSIX (я сам использую его из OS X для подключения к машинам Linux и редактирования файлов в Sublime Text). Это бесплатно и с открытым исходным кодом. Я хотел бы получить некоторые отзывы.

Для получения дополнительной информации: это в основном Git / SSH Mashup, написанный на Python, который позволяет редактировать файлы и папки на удаленном компьютере в локальном редакторе. Вам не нужно настраивать модули ядра, вам не нужно иметь постоянное соединение, оно все автоматическое, и оно не будет мешать существующему управлению исходным кодом, потому что оно использует Git-репозиторий вне рабочего места. Кроме того, поскольку он построен на Git, он очень быстрый и поддерживает автоматическое объединение файлов, которые могут изменяться на обоих концах, в отличие от SSHFS / SFTP, который просто затирает любые файлы со старыми временными метками.

опустошение-ю
источник
И я написал несколько простых постов в блоге со сценариями и опциями конфигурации, которые делают ST2 + Xeno потрясающим комбо. Www.yeraze.com
Yeraze
5

Вы можете использовать sftp, чтобы смонтировать удаленный каталог на вашем компьютере, а затем просто открыть файлы, используя Sublime text, как обычно.

Чтобы смонтировать удаленный каталог с помощью sftp, введите следующее в вашем файловом менеджере Linux;

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

Это может показаться медленным в зависимости от скорости вашего интернета. Но это сработало для меня.

Дэвид Окви
источник
5

Я знаю, что это очень старый, но у меня есть действительно крутой способ сделать это, которым стоит поделиться.

Что требуется в Conemu и WinSCP . Это простые инструкции

  1. Откройте WinSCP.exe и войдите в мой удаленный сервер (я
    обнаружил, что важно войти в систему, прежде чем присоединять ...).

  2. В настройках WinSCP - две настройки для изменения. Выберите проводник типа интерфейса, а не Commander - чтобы вы не видели локальные файлы. Если вы не хотите (но кажется, что это будет сосать здесь). Установите Sublime в качестве редактора по умолчанию.

  3. Открыв ConEmu, щелкните правой кнопкой мыши панель вкладок и выберите нужный вариант Attach to.... Откроется диалоговое окно с вашими запущенными приложениями. Выберите WinSCP и выберите ОК. ConEmu теперь будет иметь открытую вкладку с WinSCP, отображающей ваши удаленные файлы.

  4. Щелкните правой кнопкой мыши на вкладке WinSCP и выберите New console.... Когда откроется диалоговое окно, введите путь к исполняемому файлу Sublime в вашей системе. Прежде чем нажать Start, в поле с надписью New console splitвыберите переключатель to rightи установите процент. Я обычно выбираю 75%, но вы можете настроить это по своему вкусу, и это можно изменить позже.

    1. Теперь вы увидите Sublime в том же окне, работающем справа от WinSCP. В Sublime из меню «Вид» выберите « Sidebar->Hide Sidebarbam», и теперь у вас есть удаленные файлы точно так же, как и локально - с несколькими оговорками, которые, конечно же, связаны с удаленным редактированием. WinSCP быстро светит, хотя.

У меня два монитора - на левом мониторе находится браузер Chrome, на правом мониторе - редактор кода. Кроме того ConEmu, я создаю еще одну вкладку и ssh на сайте, над которым я работаю, чтобы я мог выполнять такие вещи, как запуск gulpили gruntудаленно, а также манипулировать файлами из командной строки. Серьезно ускорил развитие.

Вот скриншот:

Скриншот настройки

КГВР
источник
5

Это самый простой способ локально редактировать файлы, которые находятся на удаленном хосте, где вы ранее настроили 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 локально, он может ничего не перечислять, пока вы не перейдете в cdir или не перечислите конкретный файл ... отложенная загрузка ... это не влияет на редактирование файлов

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

Другое решение для Mac, похожее на osxfuse, - это просто использовать FTP-клиент Transmit от Panic Software, который позволяет монтировать удаленную папку как локальный диск. Он поддерживает SFTP, который очень безопасен.

Gavster
источник
Мне очень нравится этот вариант. Монтирование должно позволить вам открыть весь диск как возвышенный проект.
Мик Фок
3

Я работал над проектом под названием GiySync . Это все еще нуждается в некоторой работе, но это с открытым исходным кодом, и я использую его каждый день в течение нескольких лет. Я также работаю над родной версией OS X, которую я назвал GitSyncApp

Сейчас это только OS X, но добавить поддержку Linux и, возможно, Windows тоже будет легко.

Он работает, наблюдая за событиями файловой системы, и использует Git для синхронизации папки проекта на вашем локальном компьютере и сервере.

Я пробовал другие решения, такие как osx fuse, Expand Drive, Transmit, несколько решений, которые использовали rsync и т. Д. Все они работают нормально для небольших проектов, но если вы работаете с большим количеством кода, они не работают для меня.

Многие параметры файловой системы делают кэширование для повышения производительности, что нормально, пока это не так. Например, если вы работаете с другими людьми, и кто-то другой изменяет файлы на сервере.

Я также столкнулся с проблемами, если бы находился в нестабильной или медленной сети, где у меня были бы пустые файлы. Или файл, который не синхронизировался, тогда кеширование стало странным; надеюсь, вы совершили недавно. Использование git решает эту проблему, потому что он проверяет целостность каждого коммита.

Две бонусные функции:

  1. Вы получаете коммит для каждого сохранения. Это не супер полезно, но если вам когда-нибудь придется вернуться в прошлое, вы можете.
  2. Работает с любым текстовым редактором.
Яхин
источник
0

В зависимости от ваших конкретных потребностей, вы можете рассмотреть возможность использования BitTorrent Sync. Создайте общую папку на своем домашнем ПК и рабочем компьютере. Отредактируйте файлы на вашем домашнем ПК (используя 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 на удаленном компьютере. Локальные изменения будут отменять любые удаленные изменения.

Это создает задание launchd, которое отслеживает SyncDirectory, и всякий раз, когда что-либо изменяется, запускается rsync для синхронизации каталога с удаленным компьютером.

Ран Локар
источник
Это двусторонняя синхронизация?
укусил
Нет; Только локально для удаленной машины
Ран Локар
0

lsyncd кажется хорошей альтернативой подходу sshfs. Если вы используете «-delay 0», он работает в режиме реального времени.

JLarky
источник
0

Используйте FileZilla

Это относится к пользователям Mac и Windows (я использую на Mac). За последние годы я использовал несколько из перечисленных ответов и обнаружил, что FileZilla хорошо подходит для моих нужд при редактировании файлов на удаленном хосте, к которому у меня есть доступ по SSH. Это также быстро настроить.

  • Я настраиваю новое соединение с сервером
  • подключиться к серверу
  • щелкните правой кнопкой мыши по файлу, который я хочу отредактировать и выберите View/Edit.

Это вызывает мой редактор по умолчанию (Sublime), но он будет работать с любым редактором, который вы установили.

  • Как только я сохраняю файл, Filezilla автоматически запрашивает у меня вопрос, хочу ли я «Загрузить этот файл обратно на сервер», я нажимаю «Да», и затем он обновляется.
Бен Хэвилленд
источник