Чи є еквівалент psql еквівалентної історії зворотного пошуку Bash?


17

Мені дуже подобається bashісторія зворотного пошуку (Cr) (функція командного рядка):

Шукайте назад, починаючи з поточного рядка і, у міру необхідності, переходячи через історію. Це поступовий пошук.

Коли я потрапив control-rв bash, я отримую наступне:

(reverse-i-search)`':

І я можу вводити символи раніше виконаних команд, відточуючи те, що шукаю. Якщо я помиляюся, я можу ввести, control-hщоб стерти символ (еквівалент backspace).

Цей функціонал командного рядка робить надзвичайно простим посилання на раніше виконані команди. Мені цікаво, чи існує така можливість psql. Я вважаю вкрай неефективним покладатися на справедливі control-pта control-n.

Для чого це варто, я використовую PostgreSQL 9.3.1 on x86_64-apple-darwin13.0.0, compiled by Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn), 64-bit- отриманий через Postgres.app .


3
Ви Ctrl-rвже пробували ? :)
dezso

Звичайно, і це не впливає на мене. Ви пропонуєте ctrl-rтвори для вас ??
user664833

Використовуйте rlwrap...
Philᵀᴹ

Я встановив rlwrapчерез homebrew ( brew install rlwrap) і спробував це ( rlwrap psql) - але control-rвсе ще не працює; насправді він поводиться точно так само, як і control-rбез rlwrap(що означає, що нічого не відбувається ). Можливо, це ознака глибшої проблеми.
user664833

6
ctrl-rзазвичай надається бібліотекою читання рядків. Здається, про це існує відкрита проблема для postgres.app.
Даніель Верете

Відповіді:


15

Розмова про це на GitHub призвела до тимчасового рішення "швидкого виправлення" :

відкрити ~/.editrcта додати:

bind "^R" em-inc-search-prev

Мабуть, більша проблема полягає в тому, що PostgresApp використовує libeditзамість libreadline. І нібито libeditне вистачає деяких функцій командного рядка libreadline, тому, поки PostgresApp не буде скомпільований libreadline, просто скористайтеся вищезазначеним швидким виправленням.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.