Вопрос или проблема
Я ищу плагин или скрипт, который работает аналогично Sublime SFTP
В основном, он должен содержать файл конфигурации и сопоставлять локальную и удаленную иерархию.
При сохранении файла он должен загружать изменения на удаленный сервер соответствующим образом.
Я не знаком с написанием скриптов для Vim, поэтому, если это можно реализовать с помощью скриптов, надеюсь, это не слишком сложно для понимания и модификации. Он должен быть достаточно гибким, чтобы сопоставлять разные проекты и не требовать изменения скрипта каждый раз, когда мы cd
в другой проект.
Я нашел плагин ftpsync, но он кажется довольно ручным и не упоминает файл конфигурации.
Vim по умолчанию поставляется с плагином netrw. Это локальный/удаленный файловый проводник, и вы можете прочитать о нем в :h netrw
.
Основное использование выглядит следующим образом:
:e scp://[email protected]/path/to/project/ " список содержимого удаленного каталога
/filename<CR> " переход к имени файла
<cr> " открыть файл для редактирования
(редактирование) " магия…
:w " сохранить файл удаленно
:Rex " повторно открыть последний список файлов
повторяем…
Практически netrw работает так же, как и любой другой плагин/функция SFTP в любом другом редакторе/IDE: файл загружается, редактируется и сохраняется локально, а затем повторно загружается.
Тем не менее, netrw довольно мощный инструмент, поэтому я бы рекомендовал внимательно прочитать документацию.
Однако…
…редактирование файлов напрямую на удаленном сервере, как удаленно через ssh, так и локально через (S)FTP, не очень хорошая идея. Это может быть медленно, и с точки зрения качества кода это не безопасно.
Если вы занимаетесь веб-разработкой, гораздо лучшей стратегией будет запуск локального сервера разработки и синхронизация ваших файлов с удаленным тестовым сервером только после того, как все было протестировано локально.
Этап “синхронизации” обычно обрабатывается наиболее эффективно с помощью специального (S)FTP клиентского интерфейса или CLI, или, что еще лучше, с помощью систем контроля версий, таких как Subversion, Mercurial, Git и другие.
Как веб-разработчик, я настоятельно рекомендую вам использовать путь VCS.
Я написал плагин для этой цели. Его можно найти здесь: https://github.com/hesselbom/vim-hsftp
Он позволяет загружать или выгружать текущий файл через sftp.
Он находится на ранней стадии, но он работает для моих целей, и вы можете его форкнуть или внести свой вклад, если хотите!
Плагин vim для синхронизации файлов через sftp можно найти здесь
Или вы можете попробовать этот плагин, который я написал: https://github.com/cosminadrianpopescu/filesync.
Он работает со всем, что поддерживает netrw (ftp, ssh и т.д.).
Ответ или решение
Для решения задачи автоматической синхронизации файлов между локальным и удалённым сервером на сохранение в Vim вы можете воспользоваться несколькими подходами и плагинами. Я постараюсь предоставить вам полное руководство.
1. Использование Netrw
Vim поставляется с встроенным плагином Netrw, который поддерживает работу с удалёнными файлами по протоколам SFTP и SCP. Чтобы использовать его, выполните следующие шаги:
-
Откройте файл на удалённом сервере с помощью команды:
:e scp://[username]@[hostname]/path/to/file
-
После редактирования файла просто сохраните его:
:w
Это автоматически перезапишет файл на сервере.
-
Netrw также позволяет вам просматривать удалённые каталоги и управлять файлами на сервере. Читайте документацию по команде
:h netrw
для получения дополнительной информации о возможностях плагина.
Однако, стоит отметить, что работа с файлами непосредственно на удалённом сервере может быть неэффективной и создавать дополнительные проблемы. Рекомендуется использовать локальную среду разработки и загружать файлы на сервер только после локального тестирования.
2. Использование Плагина Vim-Hsftp
Вы можете рассмотреть использование плагина, который я разработал, vim-hsftp. Этот плагин позволяет вам загружать и загружать файлы через SFTP. Он находится на начальной стадии разработки, но уже может решить ваши задачи.
Установка:
-
Установите vim-hsftp с помощью вашего менеджера плагинов (например, vim-plug):
Plug 'hesselbom/vim-hsftp'
-
Настройте ваш
.vimrc
с учётом параметров подключения к вашему удалённому серверу.
Теперь вы сможете загружать и загружать файлы из Vim с помощью простых команд.
3. Плагин для Синхронизации Файлов
Другие плагины, такие как vim-sftp-sync и filesync, также могут помочь в этой задаче. Эти плагины предлагают гибкость, удобный интерфейс и позволяют настраивать синхронизацию для различных проектов.
Установка:
- Выберите понравившийся плагин и установите его с помощью вашего менеджера плагинов.
- Ознакомьтесь с документацией каждого плагина для настройки конфигурации и использования.
Заключение
Работа с файлами на удалённом сервере из Vim возможна, но более предпочтительным и безопасным вариантом будет использование локальной разработки с последующей синхронизацией файлов через VCS (Git, Mercurial и т.д.) или специальный FTP-клиент. Выбор метода зависит от ваших потребностей и предпочтений.
Если у вас есть дополнительные вопросы или требуется дальнейшая помощь, не стесняйтесь обращаться.