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.


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 .


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.


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.


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

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.