Ctrl-w (kelime sil) yapılandırmak mümkün mü?


40

Normalde Ctrl+ W, en son beyaz boşluğa geri döner.

Bu gibi ek karakterler kullanacak şekilde yapılandırmak mümkün mü /?

Düzenleme: Daha net olmak için: Anahtarını yapılandırmak istemiyorum, silme işleminin de durmasını istiyorum /.

Örnek:

vim /foo/bar^W
vim /foo/

Yanıtlar:


29

Benim için çalıştı benim .bashrc aşağıdaki satırları eklemek oldu

stty werase undef
bind '\C-w:unix-filename-rubout'

Undef satırına ihtiyacınız varsa bash yeni bağlantınızı yoksayar C-w


3
stty werase undefHerhangi bir programda Cw kullanmanızı engelleyeceğinize dikkat edin (bağlama,
— okuma satırında

24

Eğik çizgilerle ayrılmış sözcükleri silmek için Esc'yi, ardından geri almayı kullanabilmelisiniz.

Bunu içine koyarak bunu değiştirebilirsiniz.

bind '\C-f:unix-filename-rubout'

Şimdi Ctrl+f ne istersen onu yap.


1
teşekkürler, bu komut çalışan. Cw komutunun üzerine yazmak için bir yolu var mı? Bunu değiştirirsem C-w:..., bir sonraki boşluğa silme varsayılan davranışı yine de devreye girer. İyi çalışıyorsa, farklı bir tuşta (F gibi).
— SkaveRat

Ctrl-w'nin sadece kabuk tarafından yönetildiğini sanmıyorum. Ayrıca tty tarafından da yönetilebilir. Tty ayarınız ile gösterilenler stty -anelerdir? werase için varsayılan karakter olarak control-w'niz var mı? Bu ayarı tty'den kaldırırsanız, komut ile stty werase undefbash beklendiği gibi çalışıyor mu?
— saat

23

Bu özel sorun için ayrıca şunları da kullanabilirsiniz:

Alt + Backspace

$ cd /home/me/test/a_dir/    # Alt + Backspace
$ cd /home/me/test/          # Alt + Backspace
$ cd /home/me/               # ...

İyi referans: bash kelimesinin sildiği maceralar


2
Müthiş! Diğer cevapların çoğu, yeniden bağlama Ctrl+wveya Ctrl + b veya başka bir şeyi önerir unix-filename-rubout, ancak yerleşik bir bağlamanın olması çok daha iyidir: M-backspace (Alt + backspace veya Esc backspace)
— Colin D Bennett

Benim için işe yaramadı
— ethanjyx

@ ethanjyx oh. GNU bash üzerinde çalışıyorum. Siz de bu lezzette misiniz?
— fedorqui

7

Bash ile ~ / .bashrc dosyasına aşağıdakileri koyarak istediğiniz efekti elde edebilirsiniz:

bind '"\C-w":backward-kill-word'

Hit CTRL+Vve tuş kombinasyonu sizin terminal emülatörü için neye benzediğini görmek için. Örneğin CTRL+bksp, farklı terminallerde farklı yorumlanabilir, örneğin ^Hveya ^?. ^Karakter aynıdır CTRL.


Sanırım sorumla yeterince açık değildim. /Silme-komutu-komutunu başka bir tuşa bağlamak için bir yol değil, ek bir durma karakteri yapmak istedim . Sorumu düzenlenebilir
— SkaveRat

\ Cw'ye bağlanmış geriye doğru-kill-kelimesini kullanarak, bir kelimede mevcutsa, verilen son eğik çizgiden geriye doğru siler ve boşlukla sınırlandırılmış kelimeleri siler. İstediğin bu değil miydi?

Sistemim kullanıyor ^F- ancak "\^F"yukarıdaki komut dosyasında çalışmak işe yaramıyor
— SkaveRat

1
CtrlKarakter yazılır \Ckomut değil \^.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.