Простая публикация FTP для Vim (например, Coda) - PullRequest
1 голос
/ 28 октября 2011

Я использую Vim (MacVim) исключительно в течение нескольких месяцев, и мне это нравится. Прежде чем использовать Vim, я использовал Coda (я на OSX), и единственное, чего мне не хватает в Coda, - это как он помечает мои файлы для публикации через FTP всякий раз, когда я их редактирую. Затем я могу загрузить отдельные измененные файлы по отдельности или опубликовать их все за один раз.

Есть ли что-нибудь подобное в Vim?

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

Я гораздо более продуктивен в Vim, в то время как в редакторе, но необходимость открывать программу FTP и искать и копировать файлы по мере их отдельного редактирования - настоящая боль, и это я менее продуктивен в целом при работе на сайтах по сравнению с работой в Coda.

Любые предложения приветствуются:)

Ответы [ 3 ]

0 голосов
/ 29 октября 2011

Вы можете попробовать git-ftp - ftp-клиент для командной строки на основе git.Тогда вы можете управлять своим проектом как Git-репозиторием, и git-ftp будет загружать только файлы, помеченные Git - и только если они изменились.

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

0 голосов
/ 31 октября 2011

С тех пор я наткнулся на плагин Vim , который работает с Transmit (который я использую в качестве основного FTP-клиента) и позволяет загружать текущий файл на сервер с помощью простой раскладки клавиатуры (Ctrl+ U) как я редактирую.

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

Любые дополнительные предложения все еще приветствуются!

0 голосов
/ 28 октября 2011
  1. Transmit, Cyberduck и YummyFTP (те, которые я знаю) имеют свою собственную версию "автоматической синхронизации папок", в которой вы работаете локально, и любые измененные файлы загружаются при изменении: вы настраиваете "наблюдателя"и никогда больше не нужно нажимать специальную кнопку или ярлык.

  2. Если вы хотите использовать только MacVim, вы можете написать небольшую команду, которая загружает текущий файл при сохранении: скрипт, который будет использоватьпуть к текущему файлу для создания команды scp.Но это не кажется очень портативным / практичным для меня.Похоже, некоторые люди уже написали что-то подобное: здесь и там .

  3. Правильный путь ( не только вмое мнение ) чтобы:

    • иметь все под какой-то VCS, такой как Git, Subversion или Mercurial или что-то еще, что плавает на вашей лодке

    • написать свой код в локальном клоне / оформить заказ и проверить его на локальном сервере

    • зафиксировать только рабочий код

    • push-вехина промежуточном сервере, используемом вами и вашими клиентами для проверки всего, эту часть можно автоматизировать с помощью ловушки после фиксации или чего-то подобного

    • развернуть только проверенные изменения на вашем производственном сервере.

    Все вышеупомянутые системы контроля версий могут использоваться непосредственно из командной строки Vim с помощью :!git commit или :!svn update… Если вам нужна дополнительная абстракция, Fugitive (Gitтолько) или VCSCommand (multi-VCS, мой выбор) здесьчтобы помочь.

На вашей потере производительности из-за загрузки файлов: я думаю, что это очень нормально, потому что вы по сути выполняете очень разные задачи с очень разными неврологическими потребностями.Этот скачок скорости также может наблюдаться при предварительном просмотре изменения макета в браузере, поиске цвета в Photoshop или любой другой подобной задаче.Я не знаю, как управлять Photoshop, средствами разработки Chrome или Outlook из Vim, и я не думаю, что такая штуковина может реально существовать, поэтому вам, вероятно, придется с этим смириться.

...