Чи є спосіб відкрити всі файли в каталозі з Vim? Отже, це :commandмогло б сказати фактично "Відкрити всі файли /some/pathв буферах".
В ідеалі було б чудово відкрити всі файли під директорією рекурсивно.
Відповіді:
Команда, яку ви шукаєте, - це args:
Наприклад:
:args /path_to_dir/*
відкриє всі файли в каталозі
:tab allщоб помістити їх в окремі вкладки.
"/path_to_dir/subdir/" Illegal file name). Швидке рішення - запустити другу команду, argd */щоб знову видалити їх зі списку
:argdo source my_commands_batch.vim
Ви пробували
:n /some/path/*
Він відкриє всі файли в / some / path
Я не думаю, що це відкриє файл рекурсивно.
РЕДАГУВАТИ
Можливо, використання ** відкриється рекурсивно, як згадується daf
Метод, з яким не потрібно возитися, argsполягає у введенні списку файлів у текстовий файл, а потім за допомогою :soкоманди для запуску команд у цьому файлі.
Наприклад, якщо ви хочете відкрити всі файли, які закінчуються в .phpпевному каталозі, спочатку створіть, files.txtщо містить список файлів, доданий до будь-якої команди, яку ви хочете використовувати для їх відкриття.
sp alpha.php
sp bravo.php
sp charlie.php
Тоді, у межах vim:
:so files.txt
Якщо список файлів великий, порівняно тривіально швидко його генерувати files.txt, перенаправляючи вихідні дані lsдо файлу, а потім використовуючи макрос vim перед spпочатком кожного імені файлу.
Очевидно, це не настільки елегантно, як використання команд argsі argdo, але ці команди також набагато складніші.
Також може існувати спосіб зробити це за допомогою однієї команди в командному рядку, але навіть після 16 років я все ще вважаю програмування vim дивним та загадковим.
Ще один спосіб рекурсивного відкриття файлів
find . -type f -exec vi {} \;
kate **/*(^/)(використовуючи синтаксис zsh globbing) робить те, що потрібно: рекурсивно відкриває файли з даного каталогу. Це не “зсередини” і воно взагалі не використовує vim, але “все ж робить те, що потрібно”. Або навіть kate ~/.vimrc ~/.bashrc. Якщо взагалі опустити “froming”, “з даного каталогу” та “рекурсивно”, але він “все-таки робить те, що потрібно”: відкриває файли.
**для рекурсивного збігу файлів. Наприклад:args /path_to_dir/**