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 ESC→ DEL, 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.