Apa artinya (arg: n) dalam command prompt?

10

Pada Codecademy ini Command Line Course , ketika mencoba untuk menggunakan cara pintas keyboard Alt+Shift+#(yang seharusnya komentar baris saat ini) di command prompt, itu beralih prompt dari $ke (arg: 3)bukannya menambahkan tanda hubung di awal baris. Alt+Shift+@akan membuatnya ditampilkan (arg: 2)sebagai gantinya, dll. Lihat baris terakhir pada tangkapan layar di bawah ini. Sebelum saya memukul Alt+Shift+#itu adil $.

tangkapan layar

Pintasan berfungsi dengan baik di mesin saya.

  1. Benda apa ini (arg: n)?
  2. Apa yang bergantung pada cara pintas keyboard untuk bekerja? Tata letak keyboard? Distro OS? Terminal emulator? CLI default? Apa?
pengguna331380
sumber

Jawaban:

15

Ini adalah prompt pustaka readline ketika Anda memasukkan argumen numerik. Dengan mengetik AltShift@di papan ketik, Anda tampaknya memasukkan Alt2peta ke M-2mana, yang berjalan digit-argumentdi readline secara default, dan mulai memasukkan argumen numerik. Jika Anda kemudian tekan Alt3( AltShift#peta yang mana dalam kasus Anda) Anda akan melihat perubahan prompt ke (arg: 23); Anda dapat melanjutkan dengan Altkombinasi -digit.

Argumen ini digunakan untuk fungsi readline tertentu, misalnya yank-nth-arg. Untuk melihat ini dalam tindakan, jalankan

echo Hello my friend

lalu tekan Alt2diikuti oleh CtrlAltY; Anda akan melihat (arg: 2)prompt muncul, lalu menghilang, dan argumen kedua dari perintah sebelumnya ("saya") akan ditambahkan ke baris perintah Anda saat ini.

Lihat dokumentasi tertaut di atas untuk detailnya. Bash menggunakan readline untuk menangani inputnya; kerang lain tidak akan menunjukkan perilaku yang sama.

Beberapa emulator terminal menggunakan beberapa kombinasi kunci ini untuk tujuan mereka sendiri; misalnya di Terminal GNOME, Alt-digit beralih ke tab ke- n . Anda harus menonaktifkan kombinasi ini untuk menggunakan fungsi readline.

Dalam kasus Anda, emulator terminal berbasis web Codecademy tampaknya tidak menangani AltShiftkombinasi dengan sangat baik. Jika Anda tidak memerlukan pintasan argumen numerik, Anda bisa menggunakan ulang dengan menjalankan

bind Meta-3:insert-comment

Secara teori Anda harus dapat menyimpan ini secara permanen dengan menambahkan

Meta-3: insert-comment

ke ~/.inputrcfile, tapi saya tidak bisa mendapatkan itu berfungsi pada Codecademy.

Stephen Kitt
sumber
1
Terima kasih. Bagaimana cara menonaktifkan readline atau menggunakan pintasan keyboard untuk mengomentari baris perintah saat ini?
user331380
Emulator terminal apa yang Anda gunakan?
Stephen Kitt
Saya ingin tahu bagaimana melakukannya di Codecademy, saya tidak punya cara untuk mengklik kanan dan mencari tahu. ps -o 'cmd=' -p $(ps -o 'ppid=' -p $$)output /usr/local/bin/ein -service-port 4006 -http-port 4007. Apakah ini membantu?
user331380
1
@ user331380 Kemungkinan Anda menggunakan bashshell di Codeacademy di sana. Di shell interaktif, Anda bisa memulai instance baru dengan bash --noediting. Itu akan menonaktifkan readline, tetapi perlu diingat bahwa readlineperpustakaan bertanggung jawab untuk banyak fitur pengeditan baris, yang dapat membuat penggunaan interaktif shell sedikit lebih tidak nyaman
Sergiy Kolodyazhnyy
Mungkin perlu disebutkan bahwa hal itu juga terjadi pada pengikatan tombol-vi ketika Anda cukup mengetik angka dalam mode normal untuk mewakili argumen numerik ke perintah mode normal berikutnya yang Anda ketik.
JoL