เทียบเท่า / ทางเลือกสำหรับ Alt + Dot ใน Mac


36

สิ่งหนึ่งที่ฉันพลาดจากเชลล์ลินุกซ์คือทางลัดAlt + Dot มันทำอะไรคือใส่อาร์กิวเมนต์สุดท้ายของคำสั่งก่อนหน้า ดูเหมือนจะเป็นเทคนิคเล็กน้อย แต่มีประโยชน์จริงๆ

เช่นถ้าคุณพิมพ์สิ่งนี้:

$ ls /Applications/MAMP/conf/apache/

ครั้งต่อไปที่คุณต้องพิมพ์คำสั่ง + ทางลัดและอาร์กิวเมนต์จะเสร็จสมบูรณ์สำหรับคุณ

$ cd 'alt+dot'

บน Mac ฉันรู้ 2 ทางเลือก; กดปุ่มEsc + Dotหรือพิมพ์! $ , *กับการตั้งค่าพื้นที่มายากล

อย่างไรก็ตามในขณะที่ทางเลือกทั้งสองแทรกอาร์กิวเมนต์สุดท้ายที่คุณใช้พวกเขาไม่สามารถเลื่อนย้อนกลับไปในประวัติคำสั่งเช่นพิมพ์Alt + Dotซ้ำ ๆ

ตอนนี้ฉันสามารถอยู่กับตัวเลือกนี้ได้ แต่ฉันอยากรู้ว่ามีใครรู้วิธีที่ดีกว่าในการทำสิ่งนี้

คำตอบ:


21

คุณสามารถกด Esc-dot ได้หลายครั้งเหมือนกันกับ alt-dot แต่เช่นเดียวกับคุณฉันคิดว่ามันยุ่งยากกว่าที่จะพิมพ์ให้มากกว่า alt-dot


3
ผมสามารถกดได้หลายครั้ง แต่ก็ทำงานเป็นครั้งแรก
pablasso

2
ไม่เป็นไรคุณพูดถูก คุณเพียงแค่ต้องปล่อย esc เพื่อกดอีกครั้งจากนั้นจะทำงานตามที่คาดไว้ในการเลื่อนดูประวัติ เนื่องจากการรักษาปุ่มตัวเลือกเป็นเมตาทำให้เกิดทางลัดอื่น ๆ นี่เป็นวิธีที่สะอาดที่สุด
pablasso

1
วิธีที่ง่ายที่สุดในการทำเช่นนี้คือตรวจสอบ "ใช้คีย์ตัวเลือกเป็น Meta" ในการตั้งค่าเทอร์มินัลตามที่อธิบายไว้ในคำตอบของ Richard Hoskins
Nocturne

32

ใน Terminal.app, Preferences-> Settings, เลือกแท็บ Keyboard ตรวจสอบให้แน่ใจว่าได้เลือก "ใช้ตัวเลือกคีย์เป็นเมตาดาต้า"


3
btw ฉันควรพูดถึงว่าในขณะนี้แก้ปัญหา alt + dot มันเลอะแป้นพิมพ์ชุดอื่นเช่น],} หรือ | แป้นพิมพ์ของฉัน (สเปน) ใช้ตัวเลือก + แป้นเพื่อพิมพ์ คุณไม่สามารถมีได้ทั้งหมด
pablasso

7
สำหรับ iTerm ให้เปิดการกำหนดค่าตามความชอบโปรไฟล์> ปุ่มเลือกปุ่มตัวเลือกทำหน้าที่+Escด้านล่าง
Ivan Chau

5

ใช้option+.

โปรดทราบว่านี่เป็นคุณลักษณะของ bash ไม่ใช่ linux แม็คก็ทุบตีพวกเขาเช่นกัน Alt- insert-last-argumentเป็นทางลัดสำหรับฟังก์ชั่นในตัวทุบตี อ่านส่วนREADLINEของหน้าbash manเพื่อดูว่าคุณสามารถผูกสิ่งนี้กับคีย์ผสมอื่นได้อย่างไร


การวางส่วนที่เกี่ยวข้องบางส่วน:

   Readline Initialization
       Readline  is customized by putting commands in an initialization file (the
       inputrc file).
       The  default key-bindings may be changed with an inputrc file.  Other pro-
       grams that use this library may add their own commands and bindings.

       For example, placing

              M-Control-u: universal-argument
       or
              C-Meta-u: universal-argument
       into the inputrc would make M-C-u execute  the  readline  command  univer-
       sal-argument.

   Readline Key Bindings
       The  syntax  for  controlling  key bindings in the inputrc file is simple.
       All that is required is the name of the command or the text of a macro and
       a  key  sequence to which it should be bound. The name may be specified in
       one of two ways: as a symbolic key name, possibly with Meta-  or  Control-
       prefixes, or as a key sequence.

       When using the form keyname:function-name or macro, keyname is the name of
       a key spelled out in English.  For example:

              Control-u: universal-argument
              Meta-Rubout: backward-kill-word
              Control-o: "> output"

       In the above example, C-u is bound  to  the  function  universal-argument,
       M-DEL is bound to the function backward-kill-word, and C-o is bound to run
       the macro expressed on the right hand side (that is, to  insert  the  text
       ``> output'' into the line).

       In  the  second form, "keyseq":function-name or macro, keyseq differs from
       keyname above in that strings denoting an entire key sequence may be spec-
       ified  by placing the sequence within double quotes.  Some GNU Emacs style
       key escapes can be used, as in the following  example,  but  the  symbolic
       character names are not recognized.

              "\C-u": universal-argument
              "\C-x\C-r": re-read-init-file
              "\e[11~": "Function Key 1"


   Commands for Manipulating the History
       insert-last-argument (M-., M-_)
              A synonym for yank-last-arg.

1
ขอบคุณฉันรู้ว่าเป็นคุณสมบัติทุบตี แต่ทางลัดไม่ได้เปิดใช้งานโดยค่าเริ่มต้นอย่างน้อยไม่ได้อยู่ใน Terminal.app เนื่องจากไม่มีคีย์เมตาตามค่าเริ่มต้น ดูคำตอบของ Richard
pablasso

2

หากคุณเปิด Terminal.app และป้อนการตั้งค่าและไปที่การตั้งค่า> แป้นพิมพ์และทำเครื่องหมาย“ ใช้ตัวเลือกเป็นเมตาคีย์” คุณสามารถใช้ช็อตคัตทางลัดที่ใช้ alt เช่น:

Alt+ B: ข้ามคำไปด้านหลัง

Alt+ F: ข้ามคำไปข้างหน้า

แหล่ง


1
ยินดีต้อนรับสู่ Super User! ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนที่สำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง สำหรับตอนนี้ฉันแก้ไขคำตอบของคุณ
Der Hochstapler
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.