2

Мне нужно редактировать удаленные файлы с помощью vim, которые находятся на FTP-сервере. Нет доступа по SSH или SFTP. Просто FTP. Я попытался выполнить синхронизацию через curlftpfs, файлы появились в локальном каталоге, но я не могу записать в них, я получаю всевозможные ошибки, и когда мне удается записать файлы со случайными окончаниями, генерируются на сервере. index.php пишет на сервере как index.phz, index.phy и т. д.

У меня был установлен возвышенный текст 2, но я не могу его запустить после того, как я установил новые драйверы для моей графической карты. Я также пробовал n++ с WINE, но не повезло в открытии файлов FTP, которые находятся на более глубоком уровне каталогов.

Я видел, что есть разные подходы к редактированию файлов на FTP с помощью vim, но каждый из них нуждается в наборе, например:e http://[user @] machine/path (с плагином netrw). Я действительно хотел бы избежать любого рода повторений, а скорее настроить относительное сопоставление. Странно, что нет никакого решения для vim, так как в основном это инструмент разработчика, sublime и npp уже решили это простым способом. ввод на том же имени хоста /пути и т. д. нарушил бы простой принцип СУХОЙ.

Идеально было бы, если бы я мог кэшировать файлы локально с помощью какого-либо инструмента синхронизации и загружать их в ftp, отображая путь local -> remote, сразу после записи в файл vim, или я выполняю команду загрузки и т.д. (Без необходимости вводить открытый файл каждый раз). На сервере много файлов, поэтому я не могу их запомнить. Для меня важно, чтобы они кэшировались локально, чтобы я мог быстро получить к ним доступ и загрузить их с помощью простой команды.

Я использую Slackware 13.37 x64

5 ответов5

4

Вы можете использовать netrw для отображения содержимого удаленного каталога с помощью:

:e ftp://user@domain.com/ <-- note the slash at the end.

оттуда вы можете открыть файл в другом окне с помощью P или в текущем окне с помощью <CR> .

Не паникуйте, если вы потеряете список файлов: он все еще там, и вы можете вернуть его с помощью :Rex .


Или просто используйте FTP-клиент с графическим интерфейсом, например Filezilla или gFTP, и функцию «Редактировать в…».

1

Хотя вы не можете просто использовать относительные имена файлов (потому что локальный рабочий каталог отличается), вы можете использовать модификаторы имени файла для ссылки на файлы относительно:

:edit %:h/another.html
0

Я чувствую вашу боль, я люблю использовать vim, и с ftp-клиентом это почти как у вас ssh. Рабочий процесс, который я использую

  1. Войдите на ftp-сервер, используя команду open :e ftp://username@server/
  2. Создать новую вкладку текущего выделения :tab split
  3. Перейти к новой вкладке :tabn
  4. Перейдите к файлу в vim
  5. Когда вы закончите редактирование файла, закройте вкладку :wq
  6. Повторите с шага 2

Я обнаружил, что это работает лучше всего.

Вкладки в Vim великолепны, они могут позволить вам иметь несколько файлов, и вы даже можете дергать y и удалять d строк между открытыми файлами в одном сеансе. Очень круто.

0

Если вы используете vim ftp://hostname/path/ вы получите список каталогов. Если вы часто работаете с этим хостом, вы можете добавить его в закладки. С netrw v153j вы можете использовать :NetrwMB filename(s) ; Вы можете использовать mb для закладки текущего каталога; и вы можете использовать qb для отображения текущих закладок (и истории). Закладки и еще много чего доступно через меню с помощью gvim. Чтобы перейти к закладке, используйте gb .

Итак, я предлагаю вам добавить в закладки каталог, вернуться к списку каталогов с помощью :Rex или gb и отредактировать перечисленные файлы.

0

Я знаю, что это старый, но другой вариант - использовать, например, curlftpfs (сборка Slackware здесь), чтобы подключить FTP-сервер к точке монтирования, а затем использовать выбранный локальный текстовый редактор.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .