Habilite o autocomplete em um shell interativo sqlite3

15

Estou usando o sqlite3 em uma máquina em que posso usar o preenchimento de tabulação (ou seja, o arquivo .read abc será preenchido automaticamente para .read abcdefghij.db. Gostaria de saber como ativar isso em minha máquina pessoal.

Ambas as máquinas são Ubuntu Linux e o shell é bash. Estou me referindo ao autocompletar no prompt interativo do sqlite.

Originalmente publicado em dba .

    
por CoatedMoose 04.11.2012 / 21:52

2 respostas

9

Compile o programa com supoort readline. Readline é uma biblioteca comum que manipula a entrada do usuário em intérpretes, como bash e python. Busque a fonte, as dependências e configure com:

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

Consulte o arquivo INSTALL para detalhes. Além disso, vale a pena mencionar que provavelmente existem binários do sqlite3 com suporte a readline já empacotados para sua distro. Olhe em volta.

    
por 21.07.2013 / 04:23
8

Você pode usar o rlwrap se não quiser compilar o sqlite3. Basta executar sudo apt install rlwrap e, em seguida, configurar um alias para sqlite3 no seu .bashrc :

alias sqlite="rlwrap -a -N -c -i sqlite3"

A opção -c fornece as conclusões do nome do arquivo.

E você pode criar um arquivo ~/.rlwrap/sqlite3_completions para ter conclusões de palavras-chave:

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

A opção -i torna a conclusão de palavra-chave insensível a maiúsculas e minúsculas.

    
por 11.11.2015 / 17:02