ปรับปรุงฟังก์ชั่นเติมข้อความอัตโนมัติให้สมบูรณ์ของ Terminal (คล้ายกับ Matlab's)


18

หากคุณเคยใช้ Matlab คุณอาจสังเกตเห็นฟังก์ชันการทำงานของหน้าต่างคำสั่งในโปรแกรมนั้น ฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะเปิดใช้งานฟังก์ชั่นเดียวกันใน Mac Terminal

ใช้งานได้เช่นนี้: สมมติว่าคุณใช้สองคำสั่งก่อนหน้านี้ในเซสชันเทอร์มินัลนี้ ก่อนอื่นคุณใช้ a cd ~และ a ls -la.

ในทุก ๆ เทอร์มินัล * nix รวมถึง Mac หากคุณกดปุ่มUp Arrowมันจะแสดงls -laคำสั่งก่อนและถ้าคุณกดสองครั้งcd ~คำสั่งนั้น มันเยี่ยมมาก แต่ใน Matlab ถ้าคุณแรกพิมพ์ตัวอักษรcและจากนั้นกดUp Arrowก็จะไม่แสดงแต่แทนที่จะไปls cd ~สิ่งนี้ช่วยประหยัดเวลาได้มากเมื่อคุณมีคำสั่งขนาดใหญ่และรายการคำสั่งที่ใช้มานาน

เป็นไปได้ไหม?

คำตอบ:


27

ใน Bash shell คุณสามารถกดControl+ Rเพื่อค้นหาอัจฉริยะย้อนกลับได้ในประวัติศาสตร์ เริ่มพิมพ์คำสั่งและเชลล์จะเติมข้อความอัตโนมัติด้วยคำสั่งที่ป้อนไว้ก่อนหน้านี้

จากนั้นคุณสามารถกดEnterเพื่อดำเนินการคำสั่งอีกครั้งใช้ปุ่มลูกศรซ้ายหรือขวาเพื่อแก้ไขคำสั่งหรือกดControl+ Rเพื่อหมุนเวียนไปสู่ความสำเร็จอื่น ๆ ที่เป็นไปได้

ย้อนกลับการค้นหาอัจฉริยะ


9

บันทึกสิ่งนี้เป็น ~ / .inputrc:

# make the up and down arrows cycle through commands that match the start of a line
"\e[A": history-search-backward
"\e[B": history-search-forward

ตัวเลือกขึ้นจะเป็นและการควบคุม-P\e\e[A \C-pคุณสามารถดูลำดับการหลบหนีของชุดคีย์อื่น ๆ ได้โดยกด control-v


1
สำหรับผู้ใช้ที่ยังไม่มี~/.inputrcให้สร้างขึ้นใหม่
การพนัน Sibbs

ควรเป็นคำตอบที่ได้รับการยอมรับ
ripper234

1
"\ e [A": ไม่พบคำสั่ง
Louis

2

อีกสิ่งที่คุณสามารถทำได้คือพิมพ์!แล้วตามด้วยตัวอักษรตัวแรกและมันจะค้นหาตัวล่าสุด IE: cd ~สามารถเข้าถึงได้ด้วย!c


1

นี่คือคุณสมบัติของเชลล์ Control-R จะทำสิ่งที่คุณอธิบาย แต่การเปลี่ยนเป็นกระสุนที่ทันสมัยกว่าจะทำให้คุณได้มากขึ้น ลองดูที่ Z-shell (zsh) มีช่วงของการเรียนรู้เล็กน้อย แต่มันทรงพลังมาก


ฉันคิดว่าคุณหมายถึง Control-R
jmk

1

zsh จะทำคำสั่งให้สมบูรณ์เหมือนในตัวอย่างของคุณ คุณไม่ต้องทำอะไรนอกจากใช้สำหรับเปลือกของคุณ


0

เพิ่มสิ่งเหล่านี้ไปยัง. cshrc ของคุณ (ถ้าคุณใช้ tcsh) -

  bindkey -k up history-search-backward
  bindkey -k down history-search-forward

จากนั้นทำ source ~ / .cshrc เพื่อรับฟังก์ชั่นการทำงานที่คุณอธิบาย

ฉันไม่รู้ว่ามี. profile ที่เทียบเท่าหรือไม่

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