C'è un modo per aprire tutti i file in una directory da Vim? Quindi un :commandche direbbe in effetti "Apri tutti i file sotto /some/pathnei buffer".
Idealmente, sarebbe fantastico aprire ricorsivamente tutti i file in una directory.
Risposte:
Il comando che stai cercando è args:
Per esempio:
:args /path_to_dir/*
aprirà tutti i file nella directory
:tab allper inserirli in singole schede.
"/path_to_dir/subdir/" Illegal file name). La soluzione rapida è eseguire il secondo comando argd */per rimuovere di nuovo quelli dall'elenco
:argdo source my_commands_batch.vim
Hai provato
:n /some/path/*
Aprirà tutti i file in / some / path
Non penso che aprirà il file in modo ricorsivo.
MODIFICARE
Forse l'uso di ** si aprirà in modo ricorsivo come daf menzionato
Un metodo che non richiede scherzi argsè inserire l'elenco dei file in un file di testo e quindi utilizzare il :socomando per eseguire i comandi in quel file.
Ad esempio, se si desidera aprire tutti i file che terminano in .phpuna determinata directory, creare prima di tutto files.txtcontenente l'elenco dei file, preceduto da qualsiasi comando si desideri utilizzare per aprirli.
sp alpha.php
sp bravo.php
sp charlie.php
Quindi, all'interno di vim:
:so files.txt
Se l'elenco dei file è grande, è relativamente semplice generare il files.txtfile rapidamente, reindirizzando l'output di lsa un file e quindi utilizzando una macro vim da anteporre spprima di ogni nome di file.
Questo ovviamente non è così elegante come usare i comandi argse argdo, ma questi comandi sono anche molto più complicati.
Potrebbe esserci anche un modo per farlo con un singolo comando sulla riga di comando, ma anche dopo 16 anni trovo ancora che la programmazione di vim sia strana e arcana.
Un altro modo per aprire i file in modo ricorsivo
find . -type f -exec vi {} \;
kate **/*(^/)(usando la sintassi zsh globbing) fa ciò che è necessario: apre i file dalla directory data in modo ricorsivo. Non è “dall'interno” e non usa affatto vim, ma “fa ciò che è necessario”. O anche kate ~/.vimrc ~/.bashrc. Omettendo "da dentro", "dalla directory data" e "ricorsivamente" del tutto, ma "fa ancora ciò che è necessario": apre i file.
**per abbinare i file in modo ricorsivo. Ad esempio:args /path_to_dir/**