Dalam mode bash emacs, apakah ada cara menghapus sampai karakter slash sebelumnya? Sebagai contoh jika saya memasukkan perintah cp /usr/local/bin/reallylongincorrectfolder /home/myname/reallylong_and_correct_path
dan ingin menghapus saja. reallylongincorrectfolder
Apakah ada jalan pintas? Ini adalah skenario yang sangat comman bagi saya di bash. Sesuatu seperti dF<char>
di vi?
15
~/.inputrc
, menambahkan baris seperti ini ke file yang:"\C-b": unix-filename-rubout
. Untuk melihat efeknya, Anda harus memulai shell bash baru (atau menjalankan beberapa program lain yang menggunakan pustaka readline GNU).Alt- Backspacedan Ctrl- wumumnya dipetakan ke
backward-kill-word
, yang melakukan itu. Jika Anda ingin mengetahui apa yang dipetakan pada sistem Anda (jika ada), jalankanbind -P | grep '^backward-kill-word'
.Seperti yang dijelaskan oleh @Barmar , ini berbeda dari
unix-word-rubout
, yang menghilangkan batas ruang sebelumnya.sumber
unix-word-rubout
: Bunuh kata di belakang titik, menggunakan spasi putih sebagai batas kata.unix-filename-rubout
sedikit lebih baik, karena itu akan berhenti di white space dan slash.Masukkan ini di Anda
.inputrc
dan mulai shell baru:C-b:unix-filename-rubout
Ctrl- bsekarang menghapus mundur ke tebasan berikutnya.
Nirvana!
Jangan lupa Ctrl- XCtrl- Eakan meluncurkan editor Anda sehingga Anda dapat mengedit baris perintah yang rumit dengan nyaman.
sumber