Menggunakan Ctrl atau Alt AND backspace untuk menghapus kata terakhir di Bash

17

Di Linux saya terbiasa menekan Ctrl- Backspaceuntuk menghapus kata terakhir tetapi saya tidak tahu bagaimana melakukannya di terminal Bash.

Dalam OS XI gunakan Alt- Backspaceuntuk melakukan hal yang sama.

Apakah ada cara untuk membuat Bash mengenali kombinasi Ctrl- atau Alt- Backspacekunci untuk menghapus kata terakhir?

Di Linux saya gunakan terminatorsebagai terminal emulator, di OSX saya gunakan iTerm2.

licorna
sumber
1
Alt-⌫ alias Alt- ← alias Alt-Backspace bekerja dengan baik untuk saya. Saya menggunakan Terminator 0.93.
Teddy

Jawaban:

31

Anda selalu dapat menggunakan Ctrl- W. Ini menghapus kata sebelum kursor dan bekerja di setiap Bash.

Lihat di sini untuk daftar cara pintas keyboard Bash .

slhck
sumber
1
Wow ini mungkin telah mengubah cara saya menggunakan terminal selamanya. Terima kasih!
David
3
Ini tidak menjawab pertanyaan
Sel
5

Anda hanya perlu mengatur Opsi sebagai kunci Meta di preferensi iTerm ( Profil »Kunci ).

backward-kill-wordterikat Meta-Rubout(yaitu Opt-Backspace) secara default.

Opsi yang sama ada (meskipun kurang fleksibel) di Terminal.app Apple.

Daniel Beck
sumber
2
Sebenarnya, Anda harus menggunakan pengaturan "+ Esc". Hanya dengan menyetelnya ke "bertindak sebagai: Meta", hasilnya ?dicetak bukan kata yang dihapus.
slhck
Sslhck Bukan untuk saya. Tetapi karena pengembang tetap merekomendasikannya, itu tidak bisa menjadi hal yang buruk.
Daniel Beck
2

Di terminator Anda dapat menggunakan " plugin " berikut , bersama dengan

[keybindings]
    kill_word = <Control>BackSpace

dalam file konfigurasi Anda. Ini akan memetakan Ctrl- Backspaceke ESCDEL, shorcut lain untuk menghapus kata terakhir.

OlivierBlanvillain
sumber
Sayangnya ini berhenti bekerja di terminator 1.9. Bisakah Anda memberikan perbaikan secara kebetulan?
Sel
1
Maaf, berhenti menggunakan terminator sejak lama ...
OlivierBlanvillain
2

Anda dapat membuat file .inputrcdi direktori home Anda dan menambahkan konten ini di dalam:

"\C-h": backward-kill-word
Sel
sumber
1
Perhatikan bahwa ini dan C-wjawaban yang diterima berbeda dengan apa yang dianggap sebagai "kata". C-wakan menghapus dari posisi kursor sampai bertemu karakter non-spasi dan kemudian spasi (yaitu, di "this is a/se=weird |test"mana |menandai posisi kursor akan menghasilkan "this is test"). Sebaliknya, C-hikatan di sini (yang dapat diikat menggunakan bind '"\C-h": backward-kill-word"a .bashrc) akan menghasilkan "this is a/se= test", karena pada dasarnya membatasi kata-kata tentang apa yang akan dilakukan oleh variabel bash, bukan hanya spasi.
jeremysprofile
0

Anda bisa menggunakan Alt- DELbukan yang normal Strg- DEL.

Luca Steeb
sumber