sqlite3 대화식 쉘에서 자동 완성 사용 활성화하는 방법을 알고

탭 완성을 사용할 수있는 컴퓨터에서 sqlite3을 사용하고 있습니다 (예 : .read abc는 .read abcdefghij.db로 자동 완성됩니다. 개인 컴퓨터에서 이것을 활성화하는 방법을 알고 싶습니다.

두 머신 모두 우분투 리눅스이고 쉘은 bash입니다. sqlite 대화식 프롬프트에서 자동 완성을 언급하고 있습니다.

원래 dba에 게시되었습니다 .



답변

readline supoort로 프로그램을 컴파일하십시오. Readline은 bash 및 python과 같은 인터프리터에서 사용자 입력을 처리하는 공통 라이브러리입니다. 소스, 종속성을 가져오고 다음을 사용하여 구성하십시오.

user@computer in: ~/src/sqlite-autoconf-3071602
$ ./configure --enable-readline=yes

자세한 내용은 INSTALL 파일을 참조하십시오. 또한 배포판에 이미 readline을 지원하는 sqlite3 바이너리가있을 수 있습니다. 둘러 봐


답변

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옵션은 키워드 완성 대소 문자를 구분하지 않습니다.