Bir dizindeki tüm dosyaları Vim içinden açmanın bir yolu var mı? Yani :commandaslında "Aşağıdaki tüm dosyaları aç/some/path tamponlara aç" anlamına gelir.
İdeal olarak, bir dizin altındaki tüm dosyaları özyinelemeli olarak açmak harika olurdu.
Yanıtlar:
Aradığınız komut, args'dir:
Örneğin:
:args /path_to_dir/*
dizindeki tüm dosyaları açacak
:tab allonları ayrı sekmelere koymak için kullanın .
"/path_to_dir/subdir/" Illegal file name). Hızlı çözüm, bunları argd */listeden tekrar kaldırmak için ikinci komutu çalıştırmaktır
:argdo source my_commands_batch.vim
Denedin mi
:n /some/path/*
/ Bazı / yolundaki tüm dosyaları açacaktır.
Dosyayı yinelemeli olarak açacağını sanmıyorum.
DÜZENLE
Belki ** kullanmak, daf'ın bahsettiği gibi yinelemeli olarak açılacaktır
Karışıklık gerektirmeyen bir yöntem args, dosya listesini bir metin dosyasına koymak ve ardından :sobu dosyadaki komutları çalıştırmak için komutu kullanmaktır .
Örneğin, .phpbelirli bir dizinde sona eren tüm dosyaları açmak istiyorsanız , önce files.txtdosyaları açmak için kullanmak istediğiniz komutun başına eklenen dosyaların listesini içeren bir dosya oluşturun .
sp alpha.php
sp bravo.php
sp charlie.php
Sonra, vim içinde:
:so files.txt
Dosya listesi büyükse, files.txtçıktısını lsbir dosyaya yeniden yönlendirerek ve ardından spher dosya adının başına bir vim makrosu kullanarak dosyayı hızlı bir şekilde oluşturmak nispeten önemsizdir .
Bu açıkça argsve argdokomutlarını kullanmak kadar zarif değil , ancak bu komutlar da çok daha karmaşık.
Bunu komut satırında tek bir komutla yapmanın bir yolu da olabilir, ancak 16 yıl sonra bile vim programlamayı hala garip ve gizemli buluyorum.
Dosyaları yinelemeli olarak açmanın başka bir yolu
find . -type f -exec vi {} \;
kate **/*(^/)atıyorsanız , (zsh globbing sözdizimini kullanarak) gerekeni yaptığını söyleyebilirsiniz : Verilen dizindeki dosyaları özyinelemeli olarak açar. "İçeriden" değil ve vim'i hiç kullanmıyor, ama "henüz gerekeni yapıyor". Veya hatta kate ~/.vimrc ~/.bashrc. "Verilen dizinden", "verilen dizinden" ve "özyinelemeli" tamamen çıkarılır, ancak "henüz gerekeni yapar": dosyaları açar.
**Dosyaları yinelemeli olarak eşleştirmek için kullanın . Örneğin:args /path_to_dir/**