НейроАгент

Как управлять несколькими файлами в Vim

Узнайте, как эффективно управлять несколькими файлами в Vim с помощью команд списка аргументов. Узнайте, как добавлять, удалять и переключаться между файлами, не заменяя существующий список файлов. Освойте команды :argadd, :argdelete и :argdo для эффективного редактирования нескольких файлов.

Как эффективно работать с несколькими файлами в Vim

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

vi main.pl maintenance.pl

и переключаться между ними с помощью:

:n
:prev

Я могу проверить, какие файлы открыты, с помощью:

:args

Однако, когда я пытаюсь добавить новый файл с помощью:

:n test.pl

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

Как я могу добавлять и удалять файлы в списке args, сохраняя при этом мой существующий список файлов?

НейроАгент

Чтобы эффективно добавлять файлы в список аргументов Vim без замены существующих, следует использовать команду :argadd вместо :n. Команда :n переключает на следующий файл в списке аргументов и заменяет текущий список, если вы указываете новый файл. С помощью :argadd вы можете добавлять файлы в существующий список аргументов, а использовать :argdelete для удаления конкретных файлов при необходимости.

Содержание

Понимание списка аргументов Vim

Список аргументов в Vim — это мощная функция, которая позволяет указать набор файлов и затем выполнять команды над этими файлами коллективно источник. Он отличается от списка буферов — в то время как список аргументов представляет собой файлы, с которыми вы работаете как с группой, буферы — это отдельные открытые файлы в памяти.

Когда вы запускаете Vim с несколькими файлами, например vi main.pl maintenance.pl, эти файлы автоматически добавляются в список аргументов. Список аргументов служит основой для пакетных операций, таких как поиск и замена по нескольким файлам.

Ключевое отличие: Список аргументов — это отобранная группа файлов для конкретных операций, в то время как список буферов содержит все currently загруженные файлы в памяти.

Добавление файлов в список аргументов

Чтобы добавить файлы в текущий список аргументов без его замены, используйте команду :argadd (краткая форма :arga):

vim
:argadd test.pl

Это добавляет test.pl в ваш существующий список аргументов. Вы можете проверить это с помощью :args, который теперь покажет как ваши исходные файлы, так и test.pl.

Добавление нескольких файлов одновременно:

vim
:argadd script1.pl script2.pl script3.pl

Добавление файлов, соответствующих шаблону:

vim
:argadd *.pl  " Добавить все .pl файлы в список аргументов

Добавление файлов из текущего списка буферов:

vim
:argadd %     " Добавить текущий буфер в список аргументов
:buffdo argadd %  " Добавить все буферы в список аргументов

Команда :argadd специально разработана для сохранения вашего существующего списка аргументов при добавлении новых файлов, что именно то, что вам нужно при работе с несколькими файлами в вашем рабочем процессе разработки.

Удаление файлов из списка аргументов

Чтобы удалить файлы из вашего списка аргументов, используйте :argdelete (краткая форма :argd):

vim
:argdelete test.pl  " Удалить test.pl из списка аргументов

Удаление нескольких файлов:

vim
:argdelete script1.pl script2.pl

Удаление файлов, соответствующих шаблону:

vim
:argdelete *.bak  " Удалить все .bak файлы из списка аргументов

Удалить все файлы из списка аргументов:

vim
:argdelete *  " Очистить весь список аргументов

Удалить текущий файл из списка аргументов:

vim
:argdelete #  " Удалить текущий файл из списка аргументов

Команда :argdelete дает вам точный контроль над тем, какие файлы остаются в вашем списке аргументов, позволяя сосредоточиться только на файлах, релевантных для вашей текущей задачи.

Работа со списком аргументов

Как только у вас есть файлы в списке аргументов, вот основные команды для работы с ними:

Навигация:

vim
:next      " или :n - перейти к следующему файлу в списке аргументов
:prev      " или :N - перейти к предыдущему файлу в списке аргументов
:first     " или :fir - перейти к первому файлу в списке аргументов
:last      " или :la - перейти к последнему файлу в списке аргументов

Просмотр и управление:

vim
:args      " Показать текущий список аргументов
:argdo     " Выполнить команду для всех файлов в списке аргументов

Пример с :argdo:

vim
:argdo %s/old/new/gc  " Интерактивный поиск и замена по всем файлам в списке аргументов
:argdo w              " Сохранить все файлы в списке аргументов
:argdo update         " Сохранить все измененные файлы в списке аргументов

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

Практические примеры и рабочие процессы

Рабочий процесс разработки на Perl:

vim
" Начните с основных файлов
vi main.pl maintenance.pl utils.pl

" Добавьте связанные тестовые файлы
:argadd t/*.pl

" Добавьте файлы конфигурации
:argadd config/*.pl

" Теперь у вас есть все релевантные файлы в списке аргументов
:args  " Проверьте ваш полный список

" Поиск функции по всем файлам
:argdo /sub my_function/

" Замена имени переменной по всем файлам
:argdo %s/$old_var/$new_var/g

" Очистка - удалите тестовые файлы при завершении
:argdelete t/*.pl

Пакетная обработка файлов:

vim
" Добавьте все файлы, соответствующие шаблону
:argadd lib/*.pl

" Обработайте файлы
:argdo %s/TODO/FIXME/g

" Добавьте больше файлов по мере их обнаружения
:argadd bin/*.pl

" Удалите файлы, с которыми вы закончили работу
:argdelete lib/old_module.pl

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

Продвинутые советы и приемы

Использование внешних команд для заполнения списка аргументов:

vim
:args `find . -name "*.pl" -type f`  " Найти все .pl файлы и добавить в список аргументов
:args `grep -l "important_function" *.pl`  " Найти файлы, содержащие функцию

Работа с дублирующимися файлами:

vim
:argdedupe  " Удалить дублирующиеся имена файлов из списка аргументов

Преобразование между списком аргументов и списком quickfix:

vim
" Преобразовать список аргументов в список quickfix
:vimgrep /pattern/ #
:copen

" Преобразовать список quickfix в список аргументов
:cexpr []
:args

Расширение с помощью плагинов:
Для продвинутого управления списком аргументов рассмотрите плагин ArgsAndMore, который расширяет встроенные возможности Vim такими функциями, как:

  • Фильтрация списка аргументов
  • Добавление файлов, не соответствующих шаблону
  • Преобразование между аргументами и списками quickfix

Список аргументов — это мощная функция Vim, которая при правильном использовании может значительно повысить вашу продуктивность при работе с несколькими файлами. Понимая различие между :n (который переключает и заменяет) и :argadd (который добавляет), вы можете поддерживать гибкий рабочий процесс, адаптирующийся к вашим потребностям в разработке.

Источники

  1. Vim Arglist - vimgenius
  2. Vim 101: Search and Replace on Multiple Files - Medium
  3. Vim’s useful lists - David Winterbottom
  4. ArgsAndMore Plugin - vim online
  5. Manage small groups of related files with Vim’s argument list - Tom McFarlin
  6. Vim: editing.txt documentation

Заключение

Освоение управления списком аргументов Vim трансформирует то, как вы работаете с несколькими файлами. Ключевые выводы включают:

  • Используйте :argadd для добавления файлов в существующий список аргументов вместо :n
  • Используйте :argdelete для удаления конкретных файлов, когда они больше не нужны
  • Комбинируйте :argdo с любой командой Vim для пакетных операций по нескольким файлам
  • Список аргументов отделен от буферов, что позволяет более сфокусированное управление файлами
  • Внешние команды могут заполнять ваш список аргументов для динамического выбора файлов

Начните с простых команд :argadd и постепенно включайте :argdo для пакетных операций. По мере привыкания исследуйте продвинутые техники, такие как управление файлами на основе шаблонов и интеграция с внешними командами. Список аргументов — одна из самых недооцененных функций Vim, которая может кардинально улучшить ваш рабочий процесс разработки с несколькими файлами.