2013-06-30 3 views
2

Я хочу найти и заменить текст во всех php-файлах в папке с помощью vim. Одна из трудностей заключается в том, что эти файлы находятся на ftp-сайте.vim: заменить файлы на ftp

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

Первые открытые файлы в буфере:

:args *.php 

затем применить поиск/замена поверх всех файлов в буфер

:argdo %s/<pattern1>/<pattern2>/ge | update 

Однако я не уверен, как загрузить все файлы в каталог, используя плагин vim ftp. Я пробовал:

:args ftp://[email protected]/dir/*.php 

Но это просто «открывает» новый файл с именем * .php в указанном месте ftp. Есть идеи?

Если кто-то знает альтернативу, например, используя sed над ftp в Linux, это было бы хорошо.

+0

Все ли файлы в одной папке или отображаются в подкаталогах тоже? – d11wtq

+0

В той же папке. Ваше решение ниже работает, спасибо! – planck

ответ

1

Откройте каталог, содержащий файлы с помощью netrw:

:e ftp://[email protected]/dir/<CR> 

Обратите внимание на косую черту важно.

Теперь выберите все файлы, которые вы заинтересованы, используя Glob:

mr 
*.php<CR> 

Это отметит все файлы, соответствующие шаблону. Теперь вы можете добавить их в список аргументов и работать над ними с argdo:

me 

Нажмите <F1> а в netrw списке каталога для справки по командам доступных.

0

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

Если вам неудобно работать с netrw, вы можете просто загрузить этот каталог на свой компьютер с помощью FTP-клиента, сделайте свой g/re/p локально и повторно заново загрузите его, когда закончите.

Смежные вопросы