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ヒストリから取れるようにするといいかもね、 なんてなことは若い人々に任せよう。