Setara / Alternatif untuk Alt + Dot di Mac

36

Satu hal yang saya lewatkan dari shell Linux adalah Alt + Dot shortcut. Apa yang dilakukannya adalah menyisipkan argumen terakhir dari perintah sebelumnya. Tampaknya menjadi teknik yang sepele, tetapi itu sangat berguna.

yaitu jika Anda mengetik ini:

$ ls /Applications/MAMP/conf/apache/

Lain kali Anda hanya perlu mengetikkan perintah + pintas dan argumen akan selesai untuk Anda.

$ cd 'alt+dot'

Di Mac saya tahu 2 alternatif; menekan Esc + Dot atau mengetik ! $ , ! * dengan pengaturan ruang sihir .

Namun sementara kedua alternatif memasukkan argumen terakhir yang Anda gunakan, mereka tidak dapat menggulir kembali dalam sejarah perintah seperti mengetik Alt + Dot berulang kali.

Saya dapat hidup dengan opsi ini untuk saat ini, tetapi saya ingin tahu jika seseorang tahu cara yang lebih baik untuk melakukannya.

pablasso
sumber

Jawaban:

21

Anda dapat menekan Esc-dot berkali-kali, itu melakukan hal yang sama yaitu alt-dot. Tapi, seperti Anda, saya merasa lebih sulit untuk mengetik untuk mengetik daripada alt-dot.

simonp
sumber
3
Saya dapat menekannya berkali-kali, tetapi hanya berfungsi pertama kali
pablasso
2
Tidak apa-apa, kamu benar. Anda hanya perlu melepaskan esc untuk menekannya lagi, Kemudian berfungsi seperti yang diharapkan bergulir melalui sejarah. Menjadi yang memperlakukan kunci opsi sebagai meta mengacaukan beberapa cara pintas lainnya, ini adalah solusi terbersih.
pablasso
1
Cara termudah untuk melakukan ini adalah dengan memeriksa "Gunakan Kunci Opsi sebagai Meta" di preferensi Terminal, seperti yang dijelaskan dalam jawaban Richard Hoskins.
Nocturne
32

Di Terminal.app, Preferensi-> Pengaturan, pilih tab Keyboard. Pastikan "Gunakan Kunci Opsi sebagai Meta" dicentang.

Richard Hoskins
sumber
3
btw, saya harus menyebutkan bahwa sementara ini memecahkan masalah alt + dot, itu mengacaukan kombinasi keyboard lain seperti],} atau |. Keyboard saya (spanyol) menggunakan opsi + somekey untuk mengetiknya. Anda tidak bisa memiliki semuanya.
pablasso
7
Untuk iTerm, buka Preferensi, Profil> Tombol, Pilih tindakan opsi seperti +Escdi bagian bawah.
Ivan Chau
5

Gunakan option+.

Perhatikan bahwa ini adalah fitur bash dan bukan linux. Mac juga memiliki bash pada mereka. Alt-. adalah jalan pintas untuk fungsi bash bawaan insert-last-argument. Baca bagian READLINE dari halaman bash man untuk bagaimana Anda dapat mengikat ini ke kombinasi tombol yang berbeda.


Menempelkan beberapa bagian yang relevan:

   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.
Doug Harris
sumber
1
Terima kasih, saya tahu adalah fitur bash tetapi pintasan tidak diaktifkan secara default, setidaknya tidak di Terminal.app karena tidak ada kunci meta secara default. Lihat jawaban Richard.
pablasso
2

Jika Anda membuka Terminal.app dan memasukkan preferensi, dan pergi ke Pengaturan> Keyboard dan centang "Gunakan opsi sebagai kunci meta", Anda dapat menggunakan pintasan bash yang menggunakan alt, misalnya:

Alt+ B: Lewati kata mundur

Alt+ F: Lewati kata ke depan

Sumber

Alain
sumber
1
Selamat Datang di Pengguna Super! Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi. Untuk saat ini, saya mengedit jawaban untuk Anda.
Der Hochstapler