Answers:
用readline supoort编译程序。Readline是一个公共库,用于处理bash和python等解释器中的用户输入。获取源代码,依赖项并使用以下命令进行配置:
user@computer in: ~/src/sqlite-autoconf-3071602
$ ./configure --enable-readline=yes
有关详细信息,请查阅INSTALL文件。另外,值得一提的是,可能已经有sqlite3的二进制文件已经为您的发行版打包了readline支持。环视四周。
如果您不想编译sqlite3,则可以使用rlwrap。只需运行sudo apt install rlwrap
,然后在您的中为sqlite3设置别名.bashrc
:
alias sqlite="rlwrap -a -N -c -i sqlite3"
该-c
选项为您提供文件名补全。
您可以创建一个~/.rlwrap/sqlite3_completions
包含关键字补全的文件:
ABORT ACTION ADD AFTER ALL ALTER ANALYZE AND AS ASC ATTACH AUTOINCREMENT BEFORE BEGIN BETWEEN BY CASCADE CASE CAST CHECK COLLATE COLUMN COMMIT CONFLICT CONSTRAINT CREATE CROSS CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP DATABASE DEFAULT DEFERRABLE DEFERRED DELETE DESC DETACH DISTINCT DROP EACH ELSE END ESCAPE EXCEPT EXCLUSIVE EXISTS EXPLAIN FAIL FOR FOREIGN FROM FULL GLOB GROUP HAVING IF IGNORE IMMEDIATE IN INDEX INDEXED INITIALLY INNER INSERT INSTEAD INTERSECT INTO IS ISNULL JOIN KEY LEFT LIKE LIMIT MATCH NATURAL NO NOT NOTNULL NULL OF OFFSET ON OR ORDER OUTER PLAN PRAGMA PRIMARY QUERY RAISE RECURSIVE REFERENCES REGEXP REINDEX RELEASE RENAME REPLACE RESTRICT RIGHT ROLLBACK ROW SAVEPOINT SELECT SET TABLE TEMP TEMPORARY THEN TO TRANSACTION TRIGGER UNION UNIQUE UPDATE USING VACUUM VALUES VIEW VIRTUAL WHEN WHERE WITH WITHOUT
该-i
选项使关键字补全不区分大小写。
-N
完成选项才能与Ubuntu的sqlite3一起使用。
/usr/share/rlwrap/completions
(如所述man rlwrap
),用于为所有用户放置系统范围内的完成文件。需要注意的一点是,完成文件名称不应以_completion
后缀结尾,这与按用户~/.rlwrap
目录不同。
rlwrap -a -N -c -i -f ~/.rlwrap/sqlite3_completions sqlite3
对于Debian用户。echo '.help' | sqlite3 | grep -o '^\.[a-z]* ' >> ~/.rlwrap/sqlite3_completions
自动完成所有点命令。