ตั้งใจใช้ ctrl + T ในทุบตี?


47

ฉันสังเกตว่าทุบตีมีการตัดสั้น ๆ สำหรับctrl+ Tซึ่งสลับอักขระสองตัวสุดท้ายก่อนเคอร์เซอร์

ฉันสงสัยว่าเพราะเหตุใดวิศวกรจึงตัดสินใจรวมสิ่งนี้

  • มันสืบทอดมาจากการประชุมครั้งก่อนหรือไม่?
  • หรือมีวัตถุประสงค์ในทางปฏิบัติที่ใช้กันทั่วไปสำหรับ?

13
ไม่ใช่คำตอบ แต่นี่ไม่ใช่bashเช่นนั้น แต่readline(ซึ่ง bash ใช้สำหรับการป้อนข้อมูลที่พร้อมท์) bash ของคุณกำลังใช้emacsการเชื่อมโยงคีย์ คุณสามารถเปลี่ยนเป็นปุ่มลัด vi หากผู้ร่วมงาน Editor Wars ของคุณ;) sanctum.geek.nz/arabesque/vi-mode-in-bashมี "cheat-sheets" สองรายการสำหรับreadlineที่นี่: readline.kablamo.org/emacs .htmlและreadline.kablamo.org/vi.html
John N

13
ประวัติศาสตร์ Emacs แบบบรรทัดคำสั่งคุณสมบัติการแก้ไขที่ถูกพัฒนาขึ้นครั้งแรกในทุบตีแล้วกลายเป็นห้องสมุดที่แยกจากกัน - แต่ที่เกิดขึ้นก่อนที่จะเปิดตัวครั้งแรกในปี 1989 รายการแรกในคำแนะนำนี้ ดังนั้นทางลัดจึงถูกจัดการใน Bash เองแม้ว่าจะเป็นช่วงสั้น ๆ ก่อนที่จะถูกดึงออกมา- แต่ทางลัดนั้นมาจาก Bash จาก Emacs (ฉันไม่รู้ว่ามันถูกประดิษฐ์ใน Emacs หรือมาจากที่อื่น) readline ChangeLogreadline
Stephen Kitt

คำตอบ:


27

นี่คือการสืบทอด (โดย readline) จาก GNU Emacs ซึ่งใช้control- Tสำหรับการย้ายอักขระ:

https://www.gnu.org/software/emacs/manual/html_node/emacs/Transpose.html

โปรดทราบว่าตัวแก้ไขบรรทัดของ bash จะใช้ค่าเริ่มต้นเป็นโหมด Emacs แต่คุณสามารถเปลี่ยนเป็นโหมด vi ได้หากต้องการ


63

มันมีประโยชน์มากในการแก้ไขข้อผิดพลาดอย่างรวดเร็ว:

sl

กลายเป็น

ls

CtrlTมีเพียงหนึ่งเดียว

คุณสามารถใช้AltTสลับคำได้เช่นกัน ( เช่นเมื่อสลับระหว่างserviceและsystemctl... )

การพูดในอดีตCtrlTคุณลักษณะมาถึง Bash จาก Emacs ในทุกโอกาส อาจถูกคัดลอกไปยัง Emacs จากโปรแกรมแก้ไขอื่น ๆ มันมีอยู่ในบรรณาธิการ E ของ Stanford (ดูEssential Eหน้า 13) ในปี 1980 และ E มีผลกระทบอย่างมากต่อ Richard Stallman (ตามที่อธิบายในFree as in Freedom ) มันถูกนำมาใช้ในเวอร์ชันแรก ๆ ของ Bash ก่อนที่จะเปิดตัวครั้งแรกในปี 1989 เมื่อมันถูกดึงเข้าไปในreadlineห้องสมุดที่มีชีวิตอยู่ในปัจจุบัน (รายการแรกในreadline ChangeLogคำแนะนำนี้)


2
การแลกเปลี่ยนคำเป็นสิ่งใหม่และมีประโยชน์มาก
Mongrel

การระบุอาร์กิวเมนต์ตัวเลขให้ Alt + T สลับคำที่ (หรือก่อนหน้า) เคอร์เซอร์ด้วยคำที่n -th หน้าคำนั้น เช่น: Alt + 2 Alt + T จะปรับเปลี่ยนword1 word2 word3ไปถ้าดำเนินการที่word3 word2 word1 word3
crw

@crw ที่จะดี แต่ alt + T ไม่สลับคำใน terminal ของฉัน ฉันเพิ่งเปิดรายการเมนู 'ชื่อชุด'
Philip Kirkbride

@PhilipKirkbride นั่นเป็นความอัปยศเทอร์มินัลอีมูเลเตอร์ของคุณกำลังพรากคุณจากทางลัดที่มีประโยชน์มาก ...
Stephen Kitt

@PhilipKirkbride ควรจะมีตัวเลือกในการจำลอง terminal เพื่อการเข้าถึงปุ่มเมนูปิดการใช้งาน
Joril

15

การผสมคีย์นี้เป็นการรวมที่สืบทอดจากemacsเอดิเตอร์ทำให้อักขระ 2 ตัวสุดท้ายพิมพ์เป็นสลับที่ท้ายบรรทัดใช้กลางบรรทัดมันสลับอักขระที่ด้านซ้ายของเคอร์เซอร์และอันใต้ เคอร์เซอร์.

มันอาจดูไร้สาระที่จะมีผลผูกพันกับคุณลักษณะที่ใช้บ่อยซึ่งทำได้อย่างง่ายดายด้วยการกดปุ่มอีกสองสามครั้ง ตัวจับเวลาเก่าเช่นฉันใช้บ่อยและมันใช้เพื่อประหยัดเวลาการส่งกลับในวันที่ 300 baud โมเด็มในปลายยุค 70 โดยเฉพาะอย่างยิ่งในช่วงกลางของสายยาว

คำสั่งที่คล้ายกันและมีประโยชน์มากกว่าผูกกับAlt+ เพื่อTสลับคำทางซ้ายและทางขวาของเคอร์เซอร์

Tได้รับเลือกเพราะมันเป็นอักษรตัวแรกของtranspose การผูกอื่น ๆ ที่มีต้นกำเนิดที่คล้ายกันรวมถึง:

  • Ctrl+ Bสำหรับย้อนหลังเลื่อนเคอร์เซอร์ไปที่ตำแหน่งเดียว
    • Alt+ Bเลื่อนเคอร์เซอร์ไปทางซ้ายหนึ่งคำ
  • Ctrl+ Fสำหรับเลื่อนไปข้างหน้าเลื่อนเคอร์เซอร์ไปทางขวาหนึ่งตำแหน่ง
    • Alt+ Fเลื่อนเคอร์เซอร์ไปทางขวาหนึ่งคำ
  • Ctrl+ AสำหรับAnfangหรือanteให้เลื่อนเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัด
  • Ctrl+ Eสำหรับจุดสิ้นสุดเลื่อนเคอร์เซอร์ไปที่ท้ายบรรทัด
  • Ctrl+ Nสำหรับถัดไปดึงบรรทัดถัดไป
  • Ctrl+ Pสำหรับก่อนหน้านี้จะดึงบรรทัดถัดไป
  • Ctrl+ Dสำหรับลบลบอักขระใต้เคอร์เซอร์
    • Alt+ Dลบคำใต้เคอร์เซอร์
  • Ctrl+ Kสำหรับฆ่าลดปลายแถว
  • Ctrl+ Yสำหรับงัดวางเนื้อหาของคลิปบอร์ด

การโยงเหล่านี้ซึ่งถูกนำมาใช้ในแพ็คเกจ Readline ของ GNU จึงมีอยู่ในทุกโปรแกรมที่ใช้สำหรับการป้อนข้อมูลของผู้ใช้เช่นbashแต่ยังgdb , bc , ...

บางส่วนยังมีอยู่ในสภาพแวดล้อมอื่น ๆ : บรรทัดอินพุตของ Firefox URL, ช่องป้อนข้อความในอินเทอร์เฟซกราฟิก OS / X และตัวจัดการหน้าต่างที่ใช้ X หลายตัว

ผู้ใช้ที่เป็นกลุ่มสามารถเลือกการเชื่อมโยงที่สอดคล้องกันผ่านตัวแปรสภาพแวดล้อม


ใช่มันยอดเยี่ยมมากสำหรับคนอย่างเราที่บางครั้งเราลืมพิมพ์เทอร์มินัลมากกว่า Emacs ฉันยังหลงทางเมื่อใช้วิดเจ็ต textarea ของ Firefox (เช่นนี้ตอนนี้) ซึ่งขาดการเชื่อมโยงที่สำคัญเหล่านี้ :-(
Toby Speight

มีวิธีที่คุณสามารถจับคู่อักขระและเวอร์ชันของคำสั่งที่เกี่ยวข้องในคำอธิบายของคุณหรือไม่ มันช่วยหน่วยความจำได้จริง ๆ เมื่อคุณรู้ว่าAltและCtrlการกดแป้นเหล่านั้นมีความสัมพันธ์กันอย่างสอดคล้องกัน
Toby Speight

@TobySpeight GTK + รองรับธีมปุ่มลัดแบบ Emacs เพื่อให้คุณสามารถใช้ปุ่มลัดเหล่านี้ใน Firefox ได้ C-tอย่างไรก็ตามดูเหมือนว่าจะไม่ทำอะไรเลย wiki.archlinux.org/index.php/GTK%2B#Emacs_keybindings
Candy Gumdrop

@TobySpeight คุณเคยลองมันเป็นข้อความทั้งหมด! ? จะช่วยให้คุณแก้ไขเนื้อหาของ textareas ในตัวแก้ไขที่คุณเลือก
Stephen Kitt

ขอบคุณ @Stephen - ฉันเคยได้ยินมาแล้ว แต่ยังไม่ได้ลอง (ยัง) ฉันจะติดตามเรื่องนี้ ...
Toby Speight

10

มันเป็นสิ่งที่ใช้สำหรับ corretcing smiple tpyos wehre yuo haev อุบัติเหตุ piars trasnposed ของ piars

(มี RSI ที่รุนแรงในข้อมือทั้งสองฉันลงเอยด้วยการใช้มันเยอะมากเป็นการส่วนตัว ... )


2
ตาของฉันมีเลือดออก
พื้นฐาน

4

แก้ไขความผิดพลาดอย่างรวดเร็ว ผลกระทบบล็อก 2 Corrector ทันทีก่อนที่เคอร์เซอร์

หากคุณพิมพ์ls-และต้องการเว้นวรรคระหว่างls& ขีดกลางคุณสามารถใช้Ctrl+T

ใช้งานได้หากคุณมีช่องว่างหลังจากยัติภังค์แล้วจึงCtrl+T

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