19

Я использую sqlite3 на машине, где я могу использовать завершение табуляции (т. Е. .Read abc будет автоматически завершать до .read abcdefghij.db. Я хотел бы знать, как включить это на моей личной машине.

Обе машины - Ubuntu Linux, а оболочка - Bash. Я имею в виду автозаполнение в интерактивной подсказке sqlite.

Первоначально опубликовано на DBA.

2 ответа2

12

Скомпилируйте программу с помощью readline supoort. Readline - это общая библиотека, которая обрабатывает пользовательский ввод в интерпретаторах, таких как bash и python. Извлеките источник, зависимости и настройте:

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

Обратитесь к файлу INSTALL для деталей. Кроме того, стоит упомянуть, что, вероятно, есть бинарные файлы sqlite3 с поддержкой readline, уже упакованные для вашего дистрибутива. Смотреть по сторонам.

12

Вы можете использовать rlwrap, если не хотите компилировать sqlite3. Просто запустите 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 делает регистр символов нечувствительным к регистру.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .