Bagaimana Anda bisa membalik arah alt-periode di Bash?

10

Di Bash, Anda dapat menekan Alt- .untuk menyisipkan argumen terakhir dari perintah sebelumnya. Jika Anda menekannya berkali-kali, itu akan mengulangi argumen terakhir dari semua perintah dalam riwayat Anda. Namun, kadang-kadang saya menekannya terlalu sering, dan saya ingin membalikkan arah bersepeda, maka maju. Apakah ini mungkin?

(yaitu jika Anda membalik-i-search dengan Ctrl- r, Anda dapat mengubah arah dengan Ctrl- s. Untuk apa analog Alt- .?)

Sparhawk
sumber

Jawaban:

11

Jika Anda memberikan argumen negatif ke Alt- ., itu membalikkan arah. Cara termudah untuk melakukan itu (dengan gantungan kunci standar) adalah Alt- -(setara dengan argumen -1).

Jadi, setelah satu atau lebih Alt- .menekan tombol, menekan Alt- -akan menyebabkan berikutnya Alt- .untuk pergi ke arah sebaliknya. (Abaikan saja dialog argumen yang muncul saat Anda menekan Alt- -.)

rici
sumber
1
Saya tidak yakin apa maksud Anda sebenarnya. Menekan Alt+ -menghapus prompt baris perintah dan memasukkannya (arg: -1)sebagai gantinya. Perintah itu sendiri tidak berubah.
Sparhawk
1
Kemudian alt-. (dengan -1 arg) akan maju.
rici
Itu keren! Saya telah mengedit jawaban untuk membuatnya sedikit lebih jelas. Apa yang sebenarnya dilakukan alt+ -?
Sparhawk
1
@Sparhawk: seperti yang saya katakan, alt -menghasilkan argumen -1untuk perintah readline selanjutnya. Atau, lebih tepatnya, ia memulai argumen negatif, jadi alt -, alt` 2akan menghasilkan argumen -2. Dalam kasus alt ., hanya tanda dari argumen yang penting, dan hanya jika itu negatif, maka alt -sudah cukup. (Yang pertama alt .menangani argumennya secara berbeda. Lihat manual bash.)
rici
Terima kasih. Saya sering menemukan man bashsedikit buram untuk situasi seperti itu, tetapi saya pikir itu sedikit menjelaskan di sini.
Sparhawk