1. Exuberant Ctags をUbuntu 20.04 にインストール
インストールは簡単です。
command
sudo apt install ctags
check
ctags --version
output
user@user:~$ ctags --version
Exuberant Ctags 5.9~svn20110310, Copyright (C) 1996-2009 Darren Hiebert
Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
Optional compiled features: +wildcards, +regex
2. Exuberant Ctags が対応している言語と拡張子の確認
command
ctags --list-maps
output.example
user@user:~$ ctags --list-maps
Ant *.build.xml
Asm *.asm *.ASM *.s *.S *.A51 *.29[kK] *.[68][68][kKsSxX] *.[xX][68][68]
Asp *.asp *.asa
Awk *.awk *.gawk *.mawk
Basic *.bas *.bi *.bb *.pb
BETA *.bet
C *.c
C++ *.c++ *.cc *.cp *.cpp *.cxx *.h *.h++ *.hh *.hp *.hpp *.hxx *.C *.H
C# *.cs
Cobol *.cbl *.cob *.CBL *.COB
...
3. とりあえずのお試しでtagsfileを作成してみる。
command
ctags -R .
これでカレントディレクトリに’tags’ファイルが生成されています。
4. 対応している言語を確認する
--list-languages で確認できます。
多くの言語に対応しています。
command
ctags --list-languages
output.example
Ant
Asm
Asp
Awk
Basic
BETA
C
C++
...
SQL
Tcl
Tex
Vera
Verilog
VHDL
Vim
YACC
5. 作成対象の言語をPythonだけにする。
--languagesオプションえ対象の言語を指定できます。
command
ctags --languages=Python --list-languages
output.example
...
PHP [disabled]
Python
REXX [disabled]
...
Python以外の言語がdisabledになります。
6. デフォルトで対応していないYamlを対象にする。
6.1. 言語の定義:--langdef
--langdef=Yaml で対応の言語を追加することができます。
6.2. 拡張子の定義:--langmap
--langmap=Yaml:.yml で.ymlファイルを対象にtagできるようになります。
6.3. parserの定義:--regex-Yaml
正規表現でパターンを定義できます。
6.4. Yamlファイルのタグを作成
書く定義を組み合わせてYamlファイルのタグを作成してみます。
command
ctags \
--langdef=Yaml \
--regex-Yaml=/^\([[:graph:]]+\):[[:space:]]*^/\1/a/i \
--langmap=Yaml:.yml \
test.yml
tagsファイルが作成されています。
tags
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME Exuberant Ctags //
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
!_TAG_PROGRAM_VERSION 5.9~svn20110310 //
test.yml /^ijfoawfja:$/;" a