Vim синхронизация с удаленным сервером при сохранении

Вопрос или проблема

Я ищу плагин или скрипт, который работает аналогично 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. Чтобы использовать его, выполните следующие шаги:

  1. Откройте файл на удалённом сервере с помощью команды:

    :e scp://[username]@[hostname]/path/to/file
  2. После редактирования файла просто сохраните его:

    :w

    Это автоматически перезапишет файл на сервере.

  3. Netrw также позволяет вам просматривать удалённые каталоги и управлять файлами на сервере. Читайте документацию по команде :h netrw для получения дополнительной информации о возможностях плагина.

Однако, стоит отметить, что работа с файлами непосредственно на удалённом сервере может быть неэффективной и создавать дополнительные проблемы. Рекомендуется использовать локальную среду разработки и загружать файлы на сервер только после локального тестирования.

2. Использование Плагина Vim-Hsftp

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

Установка:

  1. Установите vim-hsftp с помощью вашего менеджера плагинов (например, vim-plug):

    Plug 'hesselbom/vim-hsftp'
  2. Настройте ваш .vimrc с учётом параметров подключения к вашему удалённому серверу.

Теперь вы сможете загружать и загружать файлы из Vim с помощью простых команд.

3. Плагин для Синхронизации Файлов

Другие плагины, такие как vim-sftp-sync и filesync, также могут помочь в этой задаче. Эти плагины предлагают гибкость, удобный интерфейс и позволяют настраивать синхронизацию для различных проектов.

Установка:

  1. Выберите понравившийся плагин и установите его с помощью вашего менеджера плагинов.
  2. Ознакомьтесь с документацией каждого плагина для настройки конфигурации и использования.

Заключение

Работа с файлами на удалённом сервере из Vim возможна, но более предпочтительным и безопасным вариантом будет использование локальной разработки с последующей синхронизацией файлов через VCS (Git, Mercurial и т.д.) или специальный FTP-клиент. Выбор метода зависит от ваших потребностей и предпочтений.

Если у вас есть дополнительные вопросы или требуется дальнейшая помощь, не стесняйтесь обращаться.

Оцените материал
Добавить комментарий

Капча загружается...