Я пытаюсь использовать Sublime Text 2 в качестве редактора, когда я нахожу SSH на своем рабочем сервере, и я в тупике. Я нашел этот http://urbangiraffe.com/2011/08/13/remote-editing-with-sublime-text-2/ (среди многих других сообщений), который, похоже, может помочь, но я не следую ему точно, особенно с тем, что значения, которые я должен ввести для удаленной переменной в строке 5. Я установил "/Users/path/to/local/copy" в свой локальный корневой каталог, но я не знаю, правильно ли это или что делать дальше. Есть предположения? Я на OSX10.8
Как использовать Sublime над SSH
Ответ 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%, но вы можете настроить это по своему вкусу, и его можно изменить позже.- Теперь вы увидите Sublime в том же окне, что и справа от WinSCP. В Sublime, из меню View, выберите
Sidebar->Hide Sidebar
и bam, теперь у вас есть удаленные файлы точно так же, как и локально, - с несколькими предостережениями, конечно же, с редактированием чего-либо удаленно. WinSCP быстро осветляется.
- Теперь вы увидите Sublime в том же окне, что и справа от WinSCP. В Sublime, из меню View, выберите
У меня есть два монитора - слева экран монитора браузера Chrome, правый монитор отображает редактор кода. Также в ConEmu
я создаю еще одну вкладку и ssh на сайте, над которым я работаю, поэтому я могу удаленно запускать gulp
или grunt
, а также управлять файлами из командной строки. Серьезно ускорилась разработка.
Вот скриншот:
Ответ 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
Это относится к пользователям Mac и Windows (я использую на Mac). За последние годы я использовал несколько из перечисленных ответов и обнаружил, что FileZilla хорошо подходит для моих нужд при редактировании файлов на удаленном хосте, к которому у меня есть доступ по SSH. Это также быстро настроить.
- Я настраиваю новое соединение с сервером
- подключиться к серверу
- щелкните правой кнопкой мыши по файлу, который я хотел бы отредактировать, и выберите
View/Edit
.
Это вызывает мой редактор по умолчанию (Sublime), но он будет работать с любым редактором, который вы установили.
- Как только я сохраняю файл, Filezilla автоматически запрашивает у меня вопрос, хочу ли я "Загрузить этот файл обратно на сервер", я нажимаю "Да", а затем он обновляется.