Мне очень нравится 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 .
источник
Ctrl-r
уже пробовали ? :)ctrl-r
работы для вас?rlwrap
...rlwrap
через homebrew (brew install rlwrap
) и попробовал (rlwrap psql
) - ноcontrol-r
все равно не работает; на самом деле, он ведет себя точно так же, как иcontrol-r
безrlwrap
(то есть ничего не происходит ). Возможно, это признак более глубокой проблемы.ctrl-r
обычно предоставляется библиотекой readline. Похоже, что для postgres.app существует открытая проблема по этому поводу.Ответы:
Разговор об этом на GitHub привел к временному решению «быстрого исправления» :
По-видимому, большая проблема в том, что PostgresApp использует
libedit
вместоlibreadline
. И, возможно,libedit
не хватает некоторых функций командной строкиlibreadline
, поэтому, пока PostgresApp не скомпилированlibreadline
, просто воспользуйтесь приведенным выше быстрым исправлением.источник