Exuberant Ctags#
Program ctags#
-f#
Argument -f
określa ścieżkę względną lub bezwzględną do własnego pliku indeksu, który zostanie użyty dla tagów z bieżącego wywołania programu ctags, lub wyświetla je do standardowego wyjścia. Alternatywnie można skorzystać z identycznie działającego argumentu -o
. Jeśli przekazano jakieś argumenty path
to argument -f
musi pojawić się jeszcze przed pierwszym takim argumentem, aby w ogóle zadziałał. Argument -f
to jeden z odroczonych argumentów.
Opis działania#
Prawidłowe użycie argumentu najlepiej objaśnić na zapisie składniowym:
ctags -f value [--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. value - jedna z dwóch dostępnych wartości:
"file"
- ścieżka względną lub bezwzględną do własnego pliku indeksu, który zostanie użyty dla tagów z bieżącej generacji. Znaki wieloznaczności*
i?
są obsługiwane (szczegóły)."-"
- specjalna wartość oznaczająca wyświetlenie tagów z bieżącej generacji do standardowego wyjścia.
- 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 -f
(dotyczą także traktowanego w ten sam sposób argumentu -o
):
- Jeśli przekażemy wiele argumentów
-f
(jeszcze przed pierwszym argumentempath
) to decydujący będzie tylko ten ostatni, o czym zostaniemy poinformowani stosownym komunikatem"ctags: Warning: -f option specified more than once, last value used"
. - Jeśli argument
-f
nie wystąpi przed pierwszym argumentempath
to zostanie zignorowany i tagi z bieżącej generacji trafią do domyślnego pliku indeksu (nazwactags
lubCTAGS
) w bieżącym folderze roboczym (szczegóły). - Jeśli w bieżącym wywołaniu programu ctags prawidłowo użyjemy argumentu
-f -
w połączeniu z argumentem--append
i/lub-a
to program ctags przerwie swoje działanie zwracając jedynie komunikat"ctags: append mode is not compatible with tags to stdout"
. - Jeśli ścieżka w argumencie
-f
prowadzi do istniejącego pliku, w którym pierwsza linia nie zawiera prawidłowego tagu (lub pseudo tagu) to program ctags przerwie swoje działanie zwracając jedynie komunikat"ctags: "xxx" doesn't look like a tag file; I refuse to overwrite it"
. Ma to stanowić pewne zabezpieczenie przed omyłkowym podaniem ścieżki do jakiegoś innego ważnego pliku, np. użycie"ctags -f *.c"
mogłoby zastąpić zawartość pierwszego istniejącego pliku C tagami z bieżącej generacji. Ponadto ścieżki rozpoczynającą się od znaku myślnika"-"
również zostaną odrzucone (komunikat"ctags: output file name may not begin with a '-'"
), bo znak ten wskazuje na jakiś krótszy argument. Jeśli koniecznie zależy nam na podaniu pliku np. z nazwą"-ugly"
to można użyć zapisu".\-ugly"
. - Argument
-f
stanowi jeden z ostatnich odroczonych argumentów, dlatego reprezentowana przez niego akcja (tj. zapis do własnego pliku indeksu lub wyświetlenie danych do standardowego wyjścia) nastąpi dopiero za pozostałymi akcjami wykonywanymi przez program ctags.
Prosty przykład:
ctags -f tagi *
ctags -f - *
ctags -f tagi -R
ctags -f - -R
ctags -R -f tagi
ctags -R -f -
ctags -f tagi test.js test.html
ctags -f - test.js test.html
ctags -f tagi -f tagi test.js test.html
ctags -f tagi1 -f tagi2 test.js test.html :: zapis do pliku 'tagi2'
ctags -f - -f - test.js test.html
ctags -f tagi -f - test.js test.html :: wyświetlenie w standardowym wyjściu
ctags -f - -f tagi test.js test.html :: zapis do pliku 'tagi'
ctags -f tagi test.js -f - test.html :: zapis do pliku 'tagi'
ctags -f - test.js -f tagi test.html :: wyświetlenie w standardowym wyjściu
ctags -f - * > output.txt :: przekierowanie wyniku do pliku
:: Błędne przypadki
ctags * -f tagi
ctags test.js -f -
ctags -f ""
ctags -f " "
ctags -f -tagi
ctags -f tagi -a
ctags -f tagi --append
Pasek społecznościowy