Có một psql tương đương với lịch sử tìm kiếm ngược của bash không?


17

Tôi rất thích bashlịch sử tìm kiếm ngược (Cr) (tính năng dòng lệnh):

Tìm kiếm ngược bắt đầu từ dòng hiện tại và di chuyển 'lên' trong lịch sử khi cần thiết. Đây là một tìm kiếm gia tăng.

Khi tôi nhấn control-rvào bash, tôi nhận được như sau:

(reverse-i-search)`':

Và tôi có thể nhập các ký tự của các lệnh đã thực hiện trước đó, tìm hiểu về những gì tôi đang tìm kiếm. Nếu tôi mắc lỗi, tôi có thể nhập control-hđể xóa một ký tự (tương đương backspace).

Chức năng dòng lệnh này giúp dễ dàng tham khảo các lệnh đã thực hiện trước đó. Tôi tự hỏi nếu một khả năng như vậy tồn tại cho psql. Tôi thấy nó cực kỳ không hiệu quả khi chỉ dựa vào control-pcontrol-n.

Đối với những gì nó có giá trị, tôi đang sử dụng 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- thu được qua Postgres.app .


3
Bạn đã thử Ctrl-rchưa? :)
dezso

Tất nhiên, và nó không có tác dụng đối với tôi. Bạn đang đề xuất ctrl-rcông việc cho bạn ??
dùng664833

Sử dụng rlwrap...
Philᵀᴹ

Tôi đã cài đặt rlwrapqua homebrew ( brew install rlwrap) và dùng thử ( rlwrap psql) - nhưng control-rvẫn không hoạt động; trong thực tế, nó hành xử theo cùng một cách chính xác như control-rkhông có rlwrap(đó là không có gì xảy ra ). Có lẽ đây là dấu hiệu của một vấn đề sâu sắc hơn.
dùng664833

6
ctrl-rthường được cung cấp bởi thư viện readline. Có vẻ như có một vấn đề mở cho postgres.app về điều này.
Daniel Vérité

Câu trả lời:


15

Một cuộc trò chuyện về vấn đề này trên GitHub đã dẫn đến một giải pháp "khắc phục nhanh" tạm thời :

mở ~/.editrcvà thêm:

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

Rõ ràng vấn đề lớn hơn là PostgresApp sử dụng libeditthay vì libreadline. Và được cho là libeditthiếu một số tính năng dòng lệnh của libreadline, vì vậy cho đến khi PostgresApp được biên dịch lại libreadline, chỉ cần sử dụng cách khắc phục nhanh ở trên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.