sqlite3のデータベースファイルは個人的に *.sq3 にしている。 Tabを押したときにそれ以外がたっぷり当たって不快。 うちで使ってるzshにはsqlite3のデフォルト補完がない。 最新版見ても古いsqlite3のオプションしか対応してないな。 じゃあこれ。
#compdef sqlite3
_sqlite3 () {
_arguments : \
'-help[Show HELP]' \
'-init[Read/Process named file]:File:_files' \
'-echo[print commands before execution]' \
'(-noheader)-header[With header]' \
'(-header)-noheader[Without header]' \
'-bail[Stop after hitting an error]' \
'-interactive[Force interactive I/O]' \
'-batch[orce batch I/O]' \
'-cmd[Run command before reading stdin]:Sqlite3Cmd: ' \
'-column[COLUMN output mode]' \
'-csv[CSV output mode]' \
'-html[HTML output mode]' \
'-line[LINE output mode]' \
'-list[LIST output mode]' \
'-mmap[Set default mmap size]:mmap Size: ' \
'-separator[Set separator]:Separator: ' \
'-stats[Print memory stats before each finalize]' \
'-nullvalue[Set text string for NULL values]:NullVal:*' \
'-version[Show SQLite version]' \
'-vfs[Use NAME as the default VFS]:VFS: ' \
'1:DB File:_files -g "*.(db|sq*) *(-/)"' \
'2:SQL Sentence: '
}
第2引数をreadlineヒストリから取れるようにするといいかもね、 なんてなことは若い人々に任せよう。