Tekan alt + numerik di bash dan Anda mendapatkan (arg [numeric]) apa itu?

101

Tekan alt + numerik di bash dan Anda mendapatkan (arg [numeric]) apa itu?

(Jenis pertanyaan ini lebih cocok untuk ditanyakan pada manusia, daripada mencoba "menebak" terminologi yang tepat untuk mencari di dokumentasi melalui internet).

dreftymac.dll
sumber
Jika Anda sudah set keymap vimasuk ~/.inputrc, maka menekan akan Esc + Digitmembawa Anda ke mode yang sama, seolah-olah mempersiapkan pengulangan perintah vi (tetapi Anda tidak dapat menggunakan vi binding dari mereka, hanya emacs yang jelek :-()
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
Frase pencarian saya adalah terminal nomor alt linux , alt + 1-9 terminal dan akhirnya shell alt + 1 yang membawa saya ke sini.
sshow

Jawaban:

62

Istilah yang Anda inginkan untuk google adalah:

"readline arguments"

Ini akan mengarah ke, misalnya, bab ini dari manual referensi bash :

Anda bisa meneruskan argumen numerik ke perintah Readline. Kadang-kadang argumen berfungsi sebagai hitungan berulang , di lain waktu itu adalah tanda argumen yang signifikan. Jika Anda menyampaikan argumen negatif ke perintah yang biasanya bertindak ke arah depan, perintah itu akan bertindak ke arah belakang. Misalnya, untuk mematikan teks kembali ke awal baris, Anda dapat mengetik 'M-- C-k'.

Cara umum untuk meneruskan argumen numerik ke sebuah perintah adalah dengan mengetikkan digit meta sebelum perintah tersebut. Jika 'digit' pertama yang diketik adalah tanda minus ('-'), maka tanda argumen bernilai negatif. Setelah Anda mengetik satu digit meta untuk memulai argumen, Anda dapat mengetik sisa digit, lalu perintah. Misalnya, untuk memberi perintah Cd argumen 10, Anda bisa mengetik 'M-1 0 C-d', yang akan menghapus sepuluh karakter berikutnya pada baris masukan.

Agar bisa berfungsi, Anda harus tahu di mana kunci Meta dipetakan: terkadang Alt, terkadang Esc, komputer keren memiliki kunci Meta khusus;)

Bagi mereka yang tidak terbiasa dengan sintaks, 'M-- Ck' setara dengan Meta_key+ - Ctrl+ k. "M" adalah singkatan dari tombol Meta, yang, seperti disebutkan, bervariasi menurut sistem, "C" adalah singkatan dari tombol Ctrl. "-" setelah karakter (seperti "M-") bukanlah sesuatu yang Anda ketik, ini adalah cara untuk menunjukkan penekanan tombol secara bersamaan.

Komunitas
sumber
2
Apakah ada cara untuk mengulang karakter numerik menggunakan argumen numerik? Sebagai contoh, katakanlah saya ingin menulis 128 nol ('0'), saya akan berpikir saya bisa menulis Alt + 128 lalu 0, tapi itu memberi saya (arg: 1280(meskipun saya melepaskan tombol Alt). Bagaimana saya mengulangi angka menggunakan mekanisme ini?
Victor Zamanian
1
@Victor: pertanyaan menarik. saya tidak bisa memikirkan cara untuk melakukannya dengan readline. Anda mungkin lebih baik menggunakan sesuatu seperti$(perl -e 'print "0" x 128')
1
@VictorZamanian melihat jawaban lain dalam pertanyaan ini
TTT
28

Untuk mengulang karakter numerik - misalnya 128 angka nol, tekan yang berikut ini:

Meta-key + 1 2 8 Ctrl + v 0

guv '
sumber
Ohhhh, itu seperti vim(mungkin emacs juga, saya tidak ingat).
Sridhar Sarnobat
12

Coba ini. Ketik Alt 4, lalu ketik T, lalu tekanEnter .

Diedit untuk menggunakan HTML yang lebih keren.

Sean Bright
sumber
9
Apa yang terjadi padamu Saya tidak mendapatkan apa-apa.
Mortimer McMire
1
Empat tkarakter disisipkan.
Wesley Baugh
4
Di versi Bash saya (4.4) tidak perlu menekan ENTER.
luca76
9

Ini mengulangi perintah berikutnya yang diberikan berkali-kali, sama seperti di Emacs. Misalnya M-1-0 C-pmemindahkan kembali 10 item sejarah. M-4 C-hspasi mundur empat karakter, M-3 M-tmemajukan kata sebelumnya tiga kali, dan seterusnya. Di sini saya menggunakan M-arti "meta" untuk tombol Alt, seperti kebiasaan di Bash.

Nietzche-jou
sumber
9

Saya tahu ini sudah menjadi jawaban yang diterima namun saya menemukan beberapa contoh berguna yang juga menunjukkan penggunaan tambahan selain dari pengulangan karakter yang sederhana. Argumen digit dapat berlaku untuk segala macam hal. Misalnya urutan "Alt + 3, Escape, Backspace" akan menghapus mundur 3 kata.

stsquad
sumber
4

Saya tidak tahu, tetapi ketika Anda melakukan alt + numerik dan kemudian Anda menekan karakter, Anda akan mendapatkan karakter nomor: (arg: 123) + a -> 123 kali "a"

Giancarlo
sumber
8
kamu tidak tahu, kamu belum tahu? % - |