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

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

Ответ 1

Существует три способа:

  • Использовать 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 на удаленном сервере и запустить Sublime там через пересылку VNC или X11, но не было бы смысла делать это.

Ответ 2

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

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

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

Ответ 3

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

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

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

MobaXterm

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

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

Если вы не можете установить программное обеспечение в свой Linux-пакет, лучшим является Unison. Почему?

  • Он бесплатный
  • Быстро
  • Он надежный и не заботящийся о том, какой редактор вы используете
  • Вы можете создавать собственные списки игнорирования

SFTP

Настройка: Установите пакет SFTP Sublime Text. Для этого пакета требуется лицензия.

  • Создать новую папку
  • Откройте его как проект Sublime Text.
  • На боковой панели щелкните правой кнопкой мыши по папке и выберите "Карта удаленного доступа".
  • Отредактируйте файл sftp-config.json
  • Щелкните правой кнопкой мыши папку на шаге 1, выберите загрузку.
  • Работайте локально.

В sftp-config я обычно устанавливаю:

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

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

WinSCP

  • Установить и запустить WinSCP
  • Перейдите в раздел "Настройки" (Ctrl + Alt + P) и нажмите "Перенести", затем "Добавить". Назовите пресет.
  • Установите режим передачи в двоичный (вам не нужны преобразования строк)
  • Установите модификацию файла на "Без изменений"
  • Нажмите кнопку "Редактировать" рядом с "Маска файлов" и настройте свои включенные и исключающие файлы и папки (полезно, когда у вас есть папка .git/.svn или вы хотите исключить синхронизацию продуктов сборки).
  • Нажмите "ОК"
  • Подключитесь к удаленному серверу и перейдите к интересующей папке
  • Выберите пустую папку на локальной машине.
  • Выберите недавно созданные настройки настроек передачи.
  • Наконец, нажмите Ctrl + U (Команды > Удалите удаленный каталог в актуальном состоянии) и убедитесь, что отмечены флажки "Синхронизировать при запуске" и "Обновить подкаталоги".

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

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

Унисон

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

Ответ 4

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

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

    printf "Host *\n    RemoteForward 52698 127.0.0.1:52698" >> ~/.ssh/config
    
  • [ Сервер] Выполните следующую команду 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

Ответ 5

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

Ответ 6

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

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

Ответ 7

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

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

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

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

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

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

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

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

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

Setup Screenshot

Ответ 8

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

Ответ 9

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

Ответ 10

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

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

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

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

Ответ 11

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

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

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

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

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

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

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

  • В итоге вы получаете фиксацию для каждого сохранения. Это не очень полезно, но если вам когда-нибудь понадобится вернуться в прошлое, вы можете.
  • Он работает с любым текстовым редактором.

Ответ 12

В зависимости от ваших конкретных потребностей вы можете использовать BitTorrent Sync. Создайте общую папку на домашнем ПК и на рабочем компьютере. Отредактируйте файлы на домашнем ПК (используя Sublime или что угодно), и они будут автоматически синхронизироваться при сохранении. BitTorrent Sync не полагается на центральный сервер, хранящий файлы (a la Dropbox и т.п.), Поэтому теоретически вы должны быть в курсе любых проблем из-за того, что третья сторона хранит конфиденциальную информацию.

Ответ 13

Решение, отлично работающее для меня - локально редактируется на 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>[email protected]:~</string> </array> <key>WatchPaths</key> <array> <string>/Users/USERNAME/SyncDirectory</string> </array> </dict> </plist>

  • В окне терминала запустите

    launchctl load ~/Library/LaunchAgents/filesynchronizer.plist

  • Что это. Любые изменения в любых файлах в ~/SyncDirectory будут синхронизированы с ~/SyncDirectory на удаленном компьютере. Локальные изменения будут отменять любые удаленные изменения.

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

Ответ 14

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

Ответ 15

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

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

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

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

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