คำถามติดแท็ก readline

โปรแกรมอื่น ๆ ใช้ไลบรารี Gnu readline เช่นเชลล์และล่ามเพื่อให้สามารถแก้ไขบรรทัดทั่วไปได้

4
ฉันจะโหลด. inputrc ได้อย่างไร
พื้นหลัง ฉันได้ยินมาว่าโมดูลreadlineกำลังอ่าน~/.inputrcและนั่นคือการเปลี่ยนแปลงพฤติกรรมของการกดแป้นในโปรแกรมเช่นทุบตี คำถาม ฉันจะโหลดซ้ำได้หลังจากแก้ไขเพื่อดูพฤติกรรมที่เปลี่ยนแปลงโดยไม่ต้องเริ่มโปรแกรมเทอร์มินัลใหม่
98 bash  unix  readline  inputrc 

6
หน้าจอ Bash vs. Gnu: แทนที่ Ctrl-A ด้วย Ctrl-Shift-A
ฉันเป็นผู้ใช้ใหม่ในหน้าจอ GNU ฉันใช้ Bash มานานแล้วและฉันต้องการลองใช้ GNU Screen ดังที่คุณทราบ GNU Screen ใช้ 'Ca' (Control-A) เป็นอักขระคำสั่ง ปัญหาคือสิ่งนี้รบกวนคุณสมบัติการแก้ไขสายใน Bash (และ GNU Readline) เนื่องจากการควบคุม A ใน Bash จะย้ายไปที่จุดเริ่มต้นของบรรทัด " ฉันรู้ว่าฉันสามารถตั้งค่าอักขระคำสั่งเป็นลำดับคีย์อื่นเช่น "^ Q" หรือ "` `" (Backtick) แต่ฉันมีปัญหาในการค้นหาลำดับคีย์อื่นที่ไม่ได้ใช้งานอยู่ (^ Q ใช้โดยเทอร์มินัล , backtick ใช้เมื่อเขียนเชลล์สคริปต์) ดูเหมือนว่าอักขระคำสั่งอาจมีความยาวหนึ่งหรือสองอักขระเท่านั้น ฉันสามารถตั้งค่าตัวควบคุมหน้าจอของ GNU ให้เป็นแบบ "Control-Shift-A" ได้หรือไม่? (ฉันไม่สามารถใช้ไฮเปอร์ลิงก์มากกว่าหนึ่งลิงก์ได้ดังนั้นฉันจึงไม่สามารถลิงก์ไปยังเอกสาร Bash ได้)


3
การโยง backward-kill-word ถึง Ctrl + w
ฉันกำลังพยายามเปลี่ยนจากการใช้ Tcsh เป็นเวลานานเป็นการสำรวจล่าสุดของ Bash ฉันจัดการพอร์ตคุณสมบัติที่ชื่นชอบทั้งหมดยกเว้น Ctrl + w ที่ใช้ช่องว่างและเครื่องหมายทับเป็นขอบเขตของคำซึ่งเป็นไปได้มากว่า back-kill-word ใน Bash อย่างไรก็ตาม readline จะลบไปจนถึงช่องว่างแรกโดยลบเครื่องหมายทับทั้งหมดระหว่าง ฉันได้ลองใช้ชุด \ Cw: หลายแบบย้อนหลัง - ฆ่า - คำทั้ง .putrc และ. bashrc โดยใช้การโยง แต่ฉันไม่สามารถทำให้มันทำงานได้อย่างที่ต้องการ ตลกพอผ่าน Putty จาก Windows ในที่ทำงานฉันสามารถใช้ Alt + Backspace ซึ่งคู่มือบอกว่าเป็นการเชื่อมโยงเริ่มต้นเพื่อสร้างพฤติกรรมที่แน่นอนที่ฉันต้องการ แต่ใน Terminal.app บน Mac ของฉันที่บ้านมันไม่ทำงาน ไปเหมือนกันสำหรับเซิร์ฟเวอร์ FreeBSD หรือ Linux ใด ๆ ที่ฉันเคยเข้าสู่ระบบจาก Terminal.app …
23 bash  readline 

4
SQLite พร้อมการรองรับ readline บน Ubuntu
ฉันมีsqlite3แพ็คเกจที่ติดตั้งบน Ubuntu และไม่มีการรองรับ readline ซึ่งหมายความว่าไม่มีประวัติการใช้คำสั่งและคุณสมบัติอื่น ๆ ที่เป็นประโยชน์ readline ให้คุณ นี่เป็นการกำหนดค่าหรือปัญหาบรรจุภัณฑ์หรือไม่? มีไฟล์เก็บถาวรของแพ็กเกจอื่นที่จะให้การสนับสนุน readline กับฉันหรือไม่ มิฉะนั้นฉันจะรวบรวม sqlite3 ด้วยตัวเองได้อย่างไรเพื่อให้แน่ใจว่ารองรับ readline?

4
Mac readline - ไม่ได้โหลดไลบรารี
ฉันทำงานบน Mac, Sierra 10.12.3 และฉันพยายามเข้าถึงฐานข้อมูล PostgreSQL ผ่านpsqlคำสั่ง แต่มันเกิดข้อผิดพลาด dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib Referenced from: /usr/local/bin/psql Reason: image not found Abort trap: 6 วันหรือสองวันก่อนฉันทำงานกับใครบางคนและฉันต้องติดตั้ง pip ดังนั้นฉันจึงวิ่งbrew install pipและมันก็ดีทั้งหมด นี่เป็นครั้งแรกที่ฉันพยายามเรียกใช้psqlตั้งแต่นั้นมาและฉันไม่แน่ใจว่าสิ่งนี้เกี่ยวข้องกับปัญหาของฉัน แต่ดูเหมือนว่าจะเป็นไปได้เนื่องจากฉันไม่ได้ทำการเปลี่ยนแปลงใด ๆ ตอนนี้ฉันทำงานเล็ก ๆ น้อย ๆ นักสืบและพบว่าถ้าฉันไปที่/usr/local/opt/นั่นมีreadlineไดเรกทอรีนามแฝงที่ชี้ไปที่/usr/local/Cellar/readline/7.0.1(เวอร์ชั่น 7.0.1 ดูเหมือนว่าจะได้รับการติดตั้งในบางจุด - อาจเป็นส่วนหนึ่งของ pip ใช่หรือเปล่า ... ) ดังนั้นจึงทำให้รู้สึกว่าข้อผิดพลาดเดิมควรถูกโยน ฉันเปลี่ยนนามแฝงให้ชี้ไปที่/usr/local/Cellar/readline/6.3.8และข้อผิดพลาดเปลี่ยนไปเล็กน้อย: dyld: Library not loaded: …
16 mac  readline 

2
การเติมแท็บเทอร์มินัล [ซ้ำกัน]
คำถามนี้มีคำตอบอยู่ที่นี่แล้ว : ปิดให้บริการใน7 ปีที่ผ่านมา เป็นไปได้ซ้ำ: ทุบตีเสร็จสมบูรณ์สำหรับคำสั่งใน Mac OS ฉันเพิ่งย้ายจาก linux ไปยัง mac และหนึ่งในปัญหาที่ฉันมีคือการทำให้แท็บเสร็จสมบูรณ์เพียง 1 ระดับและฉันไม่แน่ใจว่าจะแก้ไขได้อย่างไร ให้ฉันอธิบายตามตัวอย่าง - เมื่อฉันใช้คอมไพล์บน Ubuntu ฉันจะเริ่มพิมพ์ $ git และกดที่แท็บและเชลล์จะทำคำสั่งให้สมบูรณ์หรือแสดงตัวเลือกที่มีให้สำหรับตัวอักษร \ s ที่ฉันพิมพ์ นั่นคือสิ่งที่เกิดขึ้นกับ mac ของฉันเช่นกัน (ระดับ 1) อย่างไรก็ตามเมื่อฉันพิมพ์ส่วนต่อไปของคำสั่งต่อไป $ git commit และกด tab แท็บ mac terminal จะไม่ทำตามคำสั่งย่อยถัดไป (สำหรับ git) เหมือนใน Linux เช่นเดียวกันสำหรับโปรแกรมอื่น ๆ ที่สนับสนุนการเสร็จสิ้นคำสั่งหลายระดับนี้ ฉันสงสัยว่านี่อาจเป็นปัญหาห้องสมุด readline …

3
Bash readline จะถูกลบไปจนถึงเครื่องหมายทับก่อนหน้า
ในโหมดทุบตี emacs มีวิธีลบต่อไปจนถึงอักขระเครื่องหมายทับก่อนหน้าหรือไม่ ตัวอย่างเช่นหากฉันป้อนคำสั่งcp /usr/local/bin/reallylongincorrectfolder /home/myname/reallylong_and_correct_pathและต้องการเพียงลบreallylongincorrectfolder. มีทางลัดใด ๆ หรือไม่ นี่เป็นสถานการณ์ที่คอมมอนมากสำหรับฉันในทุบตี มีบางอย่างที่เหมือนdF<char>ใน vi?
15 linux  bash  readline 

1
ทำไม 'ผูก' และ `อินพุท 'จึงทำงานต่างกัน?
~/.inputrcฉันพยายามที่จะทำสิ่งที่ถูกต้องและนำไปผูกที่สำคัญของฉันเป็น อย่างไรก็ตามปรากฎว่าฉันต้องเปลี่ยน bind '"\e\C-j":"\e[1~quiet \e[4~\n"' เข้าไป "\e\C-j": "\eOHquiet \eOF\n" ตอนนี้\eOH(nav-block-pos1 ถูกผูกไว้กับbeginning-of-line) และ\eOF(nav-block-end ถูกผูกไว้กับend-of-line) กำลังผูกตัวเองในการกำหนดค่าของฉันซึ่งฉันอาจไม่สามารถพึ่งพาได้เสมอ ดังนั้นคำถามหลักคือเหตุผลที่ไม่ผูกพันกับ Num-บล็อก pos1 ( \e[1~) และจำนวนบล็อกสิ้น ( \e[4~) ทำงานด้วยbindแต่ไม่ได้อยู่ในของฉัน~/.inputrc? แก้ไข: สิ่งทั้งหมดนั้นซับซ้อนมากขึ้นตอนนี้ฉันรู้แล้วว่ามัน\e\C-jใช้ได้กับ Gnome Terminial เท่านั้น (หรืออาจจะเป็น xterm ก็ได้เช่นกันใครจะรู้ ... ) สำหรับ TTY ของฉันมันจะต้องมี "\e\C-m": "\e[1~_quiet \e[4~\n" ดังนั้น VT ต่าง ๆ มีการใช้งานที่แตกต่างกันของวิธีตีความคีย์หรืออะไร

2
มีวิธีการใช้ ctrl-r หลังจากพิมพ์ส่วนหนึ่งของคำสั่งในทุบตี?
ในทุบตีCtrl+ rคำสั่งจะเป็นประโยชน์มากผมพิมพ์Ctrl+ r whateverและมัน searchs whateverประวัติของฉันสำหรับคำสั่งที่มีคำว่า แต่ถ้าฉันพิมพ์whateverและรู้ว่าฉันต้องการค้นหาคำนั้นและกดCtrl+ rไม่มีอะไรเกิดขึ้น มีวิธีการกดปุ่มและมันทำงานอย่างไรถ้าฉันพิมพ์Ctrl+ r whateverแทนที่จะเป็นwhatever Ctrl+ r? ฉันมีดังต่อไปนี้ในของฉัน.inputrc: "\C-p": history-search-backward แต่จะใช้งานได้ก็ต่อเมื่อจุดเริ่มต้นของบรรทัดเหมือนกัน

2
ปัญหาเคอร์เซอร์ประวัติเทอร์มินัล Mac / iTerm
บ่อยครั้งที่ฉันรันคำสั่งใน Terminal.app หรือ iTerm กดลูกศรขึ้นเพื่อกลับไปแก้ไขและเคอร์เซอร์จะกระโดดไปที่บรรทัดด้านบนหรือที่อื่นในตำแหน่งที่ไม่ถูกต้อง มันเกิดขึ้นโดยเฉพาะอย่างยิ่งเมื่อคำสั่งยาวจนมันล้อมรอบไปยังบรรทัดถัดไป บางครั้งคำสั่งแบบยาวเหล่านี้ทั้งหมดปรากฏในหนึ่งบรรทัดและบางครั้งคำสั่งเหล่านั้นแสดงอย่างถูกต้องในหลายบรรทัด สิ่งนี้เกิดขึ้นทั้งใน iTerm และ Terminal.app ยังเกิดขึ้นในโหมดทั้ง vi และ emac ทำให้ไม่สามารถใช้งานได้ ความคิดใด ๆ ขอบคุณ!

2
Ctrl-e และ Ctrl-a ไม่ทำงานบน Ubuntu Hardy หรือไม่
ฉันใช้ Mac ดังนั้นฉันจึงไม่มีHomeและEndแป้นบนแป้นพิมพ์ ฉันยัง SSH เซิร์ฟเวอร์ Linux ค่อนข้างน้อย ฉันพบว่าเมื่อฉัน SSH ไปยังเซิร์ฟเวอร์ Ubuntu Linux ที่ใช้ Jaunty ฉันสามารถใช้การโยงคีย์ - การผูกCtrl- aและCtrl- eเพื่อเลื่อนเคอร์เซอร์ไปที่จุดเริ่มต้นหรือจุดสิ้นสุดของบรรทัด แต่มีเซิร์ฟเวอร์ Hardy สองสามตัวที่ฉันมักจะ SSH ไปยังและการเชื่อมโยงคีย์เหล่านั้นไม่ทำงานเมื่อเชื่อมต่อกับพวกเขา ฉันได้ลองเชื่อมต่อกับพวกเขาจากกล่อง Linux แทนในกรณีที่มันเป็นสิ่งที่ต้องทำเกี่ยวกับวิธีการกำหนดค่า Mac Terminal ของฉันและฉันเห็นผลลัพธ์เดียวกัน ไม่มีใครมีความคิดว่าทำไมและวิธีการแก้ไขปัญหานี้หรือไม่
13 linux  bash  shell  readline 

3
PowerShell: การปรับปรุงประวัติ (readline)
บางสิ่งที่ฉันชอบใน Bash และชอบที่จะรู้ว่าต้องทำอย่างไรใน PowerShell: ใน Bash ฉันมีการตั้งค่าการเลื่อนประวัติเพื่อให้เลื่อนเฉพาะคำสั่งที่ขึ้นต้นด้วยคำนำหน้าเดียวกับบรรทัดปัจจุบัน หากฉันต้องการเห็นการกระทำล่าสุดของฉัน (เช่นเพื่อนำส่วนหนึ่งของความคิดเห็นกลับมาใช้ใหม่) ฉันเขียน 'git' แล้ว ↑ . ที่เกี่ยวข้องแน่นอนว่าการค้นหาประวัติด้วย Ctrl + R เพื่อหาสิ่งอื่นฉันเขียน: h | grep foo ใน PowerShell ฉันใช้: h -c 1000 | where {$_.commandline.contains("foo")} (เห็นได้ชัดว่าฉันเป็นมือใหม่ต้องมีวิธีที่สั้นกว่า) สิ่งที่ชอบ: mv file.txt{,.bak} หรือ mv file.txt !#$.bak พื้นที่เวทย์มนตร์ (ที่ขยาย !$ อินไลน์) PowerShell มีทางเลือกอะไรบ้าง?

4
มีวิธีบันทึกแมโครแป้นพิมพ์ในทุบตีหรือไม่
ผมอยากจะถาวรบันทึกแมโครแป้นพิมพ์ที่ผมเคยบันทึกโดยใช้และC-x ( C-x )มีวิธีง่าย ๆ ในการ "ดูแหล่งที่มา" สำหรับแมโครที่บันทึกใหม่ของฉันหรือไม่เพื่อให้ฉันสามารถผูกกับแป้นพิมพ์ลัดใน ~ / .inputrc ได้หรือไม่ ฉันคิดว่าdump-macrosจะทำ แต่ดูเหมือนจะไม่ ...

1
แป้นพิมพ์แปลก ๆ เมื่อใช้ sqlite shell บน linux
ฉันใช้กล่องลินุกซ์ที่เชื่อมต่อรางน้ำฉาบ ใช้งานกับทุบตีแป้นพิมพ์ของฉันทำงานได้ดี แต่เมื่อฉันใช้ sqlite shell (โปรแกรม sqlite3) กุญแจของฉันมันบ้า: del=^[[3~ up=^[[A left=^[[D right=^[[C down=^[[B นี่คือ env ของฉัน (ส่วนที่เกี่ยวข้อง): TERM=linux SHELL=/bin/bash SHLVL=1 INPUTRC=/etc/inputrc ฉันต้องการใช้กุญแจของฉันตามปกติบน sqlite เช่นเดียวกับฉันบน windows อินพุตของฉัน: # do not bell on tab-completion #set bell-style none set meta-flag on set input-meta on set convert-meta off set output-meta on # Completed names …
9 linux  putty  readline 

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