มี psql เทียบเท่ากับประวัติการค้นหาย้อนกลับของ bash หรือไม่


17

ฉันชื่นชอบbashreverse-search-history (Cr) (คุณสมบัติบรรทัดคำสั่ง) ของ:

ค้นหาย้อนหลังเริ่มต้นที่บรรทัดปัจจุบันและเลื่อน 'up' ผ่านประวัติตามความจำเป็น นี่คือการค้นหาที่เพิ่มขึ้น

เมื่อฉันตีcontrol-rในbashที่ฉันได้รับต่อไปนี้:

(reverse-i-search)`':

และฉันสามารถพิมพ์อักขระของคำสั่งที่เรียกใช้งานก่อนหน้านี้ได้โดยให้ความเคารพกับสิ่งที่ฉันกำลังมองหา หากฉันทำผิดฉันสามารถป้อนcontrol-hเพื่อลบอักขระ (เทียบเท่าbackspace)

ฟังก์ชันบรรทัดคำสั่งนี้ทำให้ง่ายต่อการอ้างถึงคำสั่งที่เรียกใช้ก่อนหน้านี้ ฉันสงสัยว่ามีความสามารถดังกล่าวอยู่psqlหรือไม่ ฉันคิดว่ามันไม่มีประสิทธิภาพมากที่จะพึ่งพาเพียงและcontrol-pcontrol-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ทำงานให้กับคุณหรือไม่?
664833

ใช้rlwrap...
Philᵀᴹ

ฉันติดตั้งrlwrapผ่าน homebrew ( brew install rlwrap) แล้วลองใช้งาน (rlwrap psql ) - แต่control-rก็ยังไม่ทำงาน ในความเป็นจริงมันทำงานในลักษณะเดียวกับที่control-rไม่มีrlwrap(ซึ่งก็คือไม่มีอะไรเกิดขึ้น ) บางทีนี่อาจเป็นสัญญาณของปัญหาที่ลึกกว่า
664833

6
ctrl-rโดยปกติแล้วจะมีไลบรารี readline ดูเหมือนว่าจะมีปัญหาแบบเปิดสำหรับ postgres.app เกี่ยวกับเรื่องนี้
Daniel Vérité

คำตอบ:


15

การสนทนาเกี่ยวกับเรื่องนี้ใน GitHub นำไปสู่การแก้ปัญหา "การแก้ไขด่วน" ชั่วคราว :

เปิด~/.editrcและเพิ่ม:

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

เห็นได้ชัดว่าปัญหาที่ใหญ่กว่าคือการที่ PostgresApp ใช้แทนlibedit libreadlineและlibeditขาดคุณสมบัติบรรทัดคำสั่งบางส่วนlibreadlineดังนั้นจนกว่า PostgresApp จะถูกคอมไพล์libreadlineให้ใช้การแก้ไขด่วนข้างต้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.