# RemoteTreeFTP — FTP/FTPS для Sublime Text 4 Дерево файлов сервера слева и редактор справа: открытие, редактирование, отправка, проверка конфликтов и резервные копии. [English](README.md) ## Требования Sublime Text 4, сборка 4107 или новее, macOS и аккаунт FTP либо **explicit FTPS**. SFTP и implicit FTPS не поддерживаются. Windows/Linux пока не проверены. ## Установка через Package Control Пока пакет не принят в общий каталог, нужно один раз добавить репозиторий: 1. Если Package Control ещё нет, выберите **Tools → Install Package Control**. 2. Нажмите **Cmd+Shift+P**, выберите **Package Control: Add Repository** и вставьте: ```text https://github.com/samoyluk/RemoteTreeFTP ``` 3. Снова **Cmd+Shift+P → Package Control: Install Package**. 4. Найдите **RemoteTreeFTP**, выберите его и перезапустите Sublime. Эти шаги работают после публикации репозитория и релиза. После принятия в общий каталог добавлять репозиторий будет не нужно — только Install Package. ## Установка вручную на Mac 1. Скачайте **RemoteTreeFTP.sublime-package** из [Releases](https://github.com/samoyluk/RemoteTreeFTP/releases/latest). Нужен этот файл, а не архив «Source code». 2. Полностью закройте Sublime через **Cmd+Q**. 3. Откройте Finder, нажмите **Cmd+Shift+G** и вставьте: ```text ~/Library/Application Support/Sublime Text/Installed Packages/ ``` 4. Скопируйте туда **RemoteTreeFTP.sublime-package**. При обновлении выберите **«Заменить»**. 5. Запустите Sublime. В меню **File** появится **RemoteTreeFTP**. Не открывайте пакет двойным щелчком. Копировать нужно в **Installed Packages**, не в **Packages**. Для нестандартной установки Sublime откройте Browse Packages, перейдите на уровень выше и найдите Installed Packages рядом. Ваши подключения и язык лежат в `User/RemoteTreeFTP.sublime-settings` и сохраняются при обновлении. Если раньше плагин был распакован в `Packages/RemoteTreeFTP`, эта папка может перекрывать архив: перед сменой способа установки перенесите только её за пределы Packages. Папку User и другие плагины не удаляйте. ## Первое подключение 1. **File → RemoteTreeFTP → Language / Язык → Русский**. 2. **Добавить сервер…** — последовательно введите название, адрес, логин, порт, начальную папку, FTP/FTPS и режим отправки. Обычно используется порт `21`. 3. **Подключиться…** — выберите сервер и введите пароль. 4. Можно сохранить пароль в связке ключей macOS либо использовать только в этой сессии. 5. Откроется отдельное окно: дерево слева, файлы справа. «Изменить сервер…» редактирует подключение. «Подключиться с другим паролем…» позволяет ввести новый пароль. Настройки файла открываются в двух колонках: меняйте правую. ## Работа - Щёлкните папку для раскрытия, файл — для скачивания и открытия. - Cmd+S отправляет сохранённый файл, если включена отправка при сохранении. - В ручном режиме сохраните файл и выберите **Отправить текущий файл**. - Статусы показывают изменения, отправку, успех, ошибку и конфликт. - «⋯» открывает создание, переименование, удаление, копирование пути и историю версий. - Плашка `644` или `755` меняет права цифрами. Изменяется только выбранный элемент. - Раскрытые папки запоминаются. «Обновить дерево» перечитывает их с сервера. Переименование и удаление требуют закрыть затронутые файлы в окнах RemoteTreeFTP. Удаление требует подтверждения; удаляются только пустые папки. Корневой каталог нельзя переименовать или удалить. «Отключиться» останавливает дальнейшие операции; уже начавшаяся передача может завершиться. ## Защита изменений и история Перед отправкой плагин повторно читает файл с сервера. Если он изменился, можно отменить отправку, посмотреть различия или подтвердить перезапись. FTP не даёт атомарной блокировки: между проверкой и записью остаётся короткий промежуток. Перед перезаписью сохраняется предыдущая серверная версия. Если резервную копию записать не удалось, отправка останавливается. Хранятся последние **10 копий каждого файла на подключение**. Это копии перед отправкой, а не перед удалением. **⋯ → История версий…** позволяет просмотреть копию, сравнить с сервером или восстановить в редактор. Восстановленная копия **никогда не отправляется автоматически**, включая Cmd+S: проверьте её, сохраните и отправьте вручную. Восстановление удалённого серверного файла пока не поддерживается. Текстовое сравнение работает для UTF-8; проверка конфликтов по байтам — для любых файлов. ## Хранение данных и ограничения Пароли не записываются в настройки. macOS может запросить доступ к связке ключей. Стандартное поле ввода Sublime не гарантирует скрытие символов. FTP не шифрует соединение; explicit FTPS проверяет сертификат. Резервные копии находятся в `RemoteTreeFTP Backups` рядом с Packages и Installed Packages, обычно в `~/Library/Application Support/Sublime Text/`. Они не зашифрованы, общего лимита размера нет. После переименования файла история остаётся у старого пути. Рабочие копии находятся в системных временных папках `RemoteTreeFTP-*` и автоматически не удаляются, чтобы сохранить неотправленные правки. Дерево — область редактора, а не штатная боковая панель. Подсказка вкладки показывает локальный путь с серверной структурой; серверный путь также виден в строке состояния. Системные сообщения macOS и ответы FTP-сервера не переводятся. Если меню не появилось, проверьте папку установки, перезапуск, `ignored_packages` и распакованные копии плагина. Если права показаны как «—», сервер не сообщил их; это не означает `000`. Для изменения сервер должен поддерживать `SITE CHMOD`. Об ошибках сообщайте в [Issues](https://github.com/samoyluk/RemoteTreeFTP/issues), приложив версию плагина, Sublime, macOS и текст ошибки без паролей и конфиденциальных данных. Автоматические проверки используют имитацию Sublime и FTP, не заменяя проверку на настоящем сервере. [Чек-лист релиза](PUBLISHING.md). Лицензия MIT. Автор и сопровождающий: [samoyluk](https://github.com/samoyluk).