Exuberant Ctags#
Program ctags#
-R#
Argument -R odpowiada za włączenie rekursywnego analizowania zawartości przekazanych folderów w bieżącym wywołaniu programu ctags. Jest to skrócona wersja dla argumentu --recurse. W pewnych sytuacjach argument -R zostanie potraktowany jak odroczony argument.
Opis działania#
Prawidłowe użycie argumentu najlepiej objaśnić na zapisie składniowym:
ctags -R [--argument | -argument] [path]
gdzie poszczególne człony oznaczają:
- ctags - ścieżka względna lub bezwzględna do pliku binarnego programu ctags (
ctags.exe). Wszystko zależy od sposobu uruchamiania programu ctags, np. z systemowej konsoli, ze skrótu do programu czy z innego programu/skryptu. - argument - jeden lub więcej dodatkowych argumentów dostrajających działanie programu ctags.
- path - jedna lub więcej dodatkowych ścieżek do plików/folderów, które będą analizowane przy generowaniu tagów (szczegóły).
Kilka uwag odnośnie stosowania argumentu -R:
- Przy generowaniu tagów program ctags pobiera listę plików/folderów z różnych źródeł (np. z argumentu
pathlub-L). Jeśli w żadnym z nich nie wskazano chociaż jednej ścieżki do pliku/folderu i nie użyto argumentu-L -lub--filter, to argument-Rstanie się odroczonym argumentem, gdzie po przetworzeniu wszystkich pozostałych argumentów rekursywnie przeanalizowany zostanie bieżący folder roboczy. Dzięki temu przekazanie samego argumentu-Rdziała bez przeszkód. - Argument
-Rpowoduje, że ostatni człon w ścieżce względnej lub bezwzględnej (tj. to, co za ostatnim znakiem"\") jest traktowany jednocześnie jak folder lub plik. Bez tego argumentu ostatni człon w ścieżce jest traktowany jak plik, dlatego powinien jasno wskazywać na plik/pliki, które chcemy przetworzyć (nie może być pusty). - Im wcześniej ustawimy/przekażemy argument
-R, tym więcej potencjalnych ścieżek wskazujących na foldery nam obejmie. Można też przed każdym argumentempathustawić inny stan rekursywnego analizowania folderów. - Domyślnie rekursywne analizowanie folderów uwzględnia także linki symboliczne, ale można to zmienić argumentem
--links. - Za pomocą argumentu
--excludemożna wykluczyć niektóre pliki/foldery przy rekursywnym analizowania folderów.
Prosty przykład:
ctags -R
ctags --recurse=yes
ctags --recurse=on
ctags --recurse=1
ctags --recurse=""
ctags --recurse=
ctags --recurse
ctags --recurse=no *
ctags --recurse=off *
ctags --recurse=0 *
ctags *
ctags -R :: wszystkie pliki z bieżącego folderu roboczego i jego podfolderów tagfile ma postać ".\plik.js"
ctags -R .\* :: wszystkie pliki z bieżącego folderu roboczego i jego podfolderów tagfile ma postać ".\plik.js"
ctags -R * :: wszystkie pliki z bieżącego folderu roboczego i jego podfolderów tagfile ma postać "plik.js"
ctags -R D:\test\* :: wszystkie pliki z folderu `test` i jego podfolderów tagfile ma postać "D:\test\plik.js"
ctags -R "D:\nowy test\*" :: konieczne otoczenie znakami "" ze względu na spację w folderze `nowy test`
ctags -R test :: wszystkie pliki z folderu `test` i jego podfolderów oraz plik `test`
ctags -R test\* :: wszystkie pliki z folderu `test` i jego podfolderów
ctags test1* -R test2* :: dowolne pliki o nazwie `test1` i `test2` oraz wszystkie pliki z folderu `test2` i jego podfolderów
ctags -R --sort=no --format=1 :: `-R` jest argumentem odroczonym, dlatego zadziała `--sort` i `--format`
ctags --sort=no -R --format=1 :: `-R` jest argumentem odroczonym, dlatego zadziała `--sort` i `--format`
ctags --sort=no --format=1 -R :: `-R` jest argumentem odroczonym, dlatego zadziała `--sort` i `--format`
:: Błędne przypadki
ctags -r
ctags * -R
ctags test -RPasek społecznościowy