Di baris perintah Windows (PowerShell dan CMD), ketika Anda menekan Esctombol saat berada di jalur, apa pun yang Anda ketikkan pada prompt dihapus.
Saya menemukan bahwa menekan Esc
tombol di bash prompt tidak melakukan apa-apa. Menekan Esc
dan kemudian backspace
menghapus kata, tetapi ini harus dilakukan untuk setiap kata.
Saya belajar Bash secara bertahap dan terkadang mengetik sesuatu yang bodoh di tengah baris dan merasa bahwa lebih baik mengetik dari awal lagi. Untuk melakukan ini, menekan backspace
adalah satu-satunya cara yang saya temukan sampai sekarang.
Apa yang kamu kerjakan?
Saya mengetahui clear
perintah dan Ctrl-Ljalan pintas, tetapi saya tidak berbicara tentang membersihkan seluruh terminal. Hanya garis.
bash
command-line
Animesh
sumber
sumber
Jawaban:
Anda ingin
kill-whole-line
, tetapi ini tidak terikat secara default di bash.backward-kill-line
( CtrlX Backspace) danunix-line-discard
( CtrlU) keduanya menghapus dari titik saat ini ke awal baris, jadi pergi saja ke akhir baris dan gunakan keduanya.sumber
bind -P
. Saya kiraCtrl-U
dan kemudianCtrl-Y
adalah satu-satunya pilihan.Anda bisa menggunakan Ctrl+ Cuntuk mengabaikan apa pun yang Anda ketikkan dan mendapatkan baris perintah baru yang kosong, lihat Apakah CTRL + C salah digunakan untuk kembali ke baris perintah? .
sumber
Ctrl+apergi ke awal baris dan Ctrl+kmenghapus ke akhir baris
sumber
^U
dulu, di sebagian besar implementasi mode pengeditan baris perintah Emacs sudah menghapus baris penuh. Di tempat yang hanya dihapusnya yang tersisa dari kursor (GNU readline, misalnya), tekan^K
sesudahnya.Untuk memperluas jawaban Ignacio Vazquez-Abrams kecil, Anda bisa mendapatkan (hampir) Windows seperti perilaku dari Esckunci di bash dengan mengikat
kill-whole-line
untuk Escdengan perintah berikutJika Anda menambahkan baris ke
~/.inputrc
file Anda , ikatan akan tetap ada di antara sesi.Perhatikan, bagaimanapun, bahwa ini sangat non-standar, karena bash benar-benar menggunakan Esckunci tersebut sebagai kunci modifikasi lain (seperti Alt atau Ctrl yang tidak persisten). Jika Anda melihat daftar binding kunci yang ada (dengan
bind -P
), Anda mungkin akan melihat beberapa perintah terikat pada kombinasi kunci yang dimulai dengan "\ e" (mis.yang mengatur kombinasi Esc+ Buntuk memindahkan kursor kembali ke awal kata yang paling baru - agak seperti Ctrl+ ←, kecuali bahwa Anda harus terus melepaskan Esc(dan B, tentu saja) jika Anda ingin melakukannya lebih dari satu kali berturut-turut ).
Dan itu menjelaskan mengapa saya mengatakan bahwa perilaku yang Anda dapatkan hampir seperti Windows: ketika Anda menekan Esc, periksa bash untuk melihat apakah Anda menggunakannya dalam kombinasi dengan tombol lain; jadi, jika Anda mengikatnya
kill-whole-line
, ada sedikit penundaan antara menekan (atau lebih tepatnya, melepaskan) Escdan bash membersihkan garis untuk Anda.Namun, jika Anda tidak mempedulikan semua itu, dan lebih suka hidup dengan penundaan daripada melatih diri Anda sendiri dengan penekanan tombol yang berbeda, itu bisa dilakukan.
(Catatan: banyak informasi di sini yang saya dapatkan sebagai hasil dari membaca - dan mengikuti tautan di - jawaban ini .)
sumber
[19;
atau kode melarikan diri yang serupa. Pada akhirnya saya menemukan pemetaan"\e\e"
kekill-whole-line
(yaitu, ketuk Esc dua kali untuk menghapus garis) kompromi yang bagus.Esc
beberapa kali, jadi saya bisa mencobanya. Saya saat ini memilikinya terikat keCtrl
+Del
tetapi saya tidak pernah ingat itu.