Включить автозаполнение в интерактивной оболочке sqlite3
Я использую sqlite3 на машине, где я могу использовать завершение табуляции (т. Е..Read abc будет автоматически завершать до.read abcdefghij.db. Я хотел бы знать, как включить это на моем персональном компьютере.
Обе машины - Ubuntu Linux, а оболочка - Bash. Я имею в виду автозаполнение в интерактивной подсказке sqlite.
Первоначально опубликовано на DBA.
2 ответа
Скомпилируйте программу с помощью readline supoort. Readline - это общая библиотека, которая обрабатывает пользовательский ввод в интерпретаторах, таких как bash и python. Извлеките источник, зависимости и настройте:
user@computer in: ~/src/sqlite-autoconf-3071602
$ ./configure --enable-readline=yes
Обратитесь к файлу INSTALL для деталей. Кроме того, стоит упомянуть, что, вероятно, для вашего дистрибутива уже есть бинарные файлы sqlite3 с поддержкой readline. Смотреть по сторонам.
Вы можете использовать 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
опция делает завершение ключевых слов нечувствительным к регистру.