Bash: imlecin önündeki sözcüğü sil


76

^ 'Nin imleç konumunu gösterdiği aşağıdaki bash komut satırını dikkate alın:

svn commit -m very/long/path/to/some/file "[bug 123456] Fix the pixel issue"
              ^

Aynı mesajla farklı bir dosya işlemek istiyorum. Geçerli sözcüğü imleç konumundan bir sonraki boşluğa nasıl silebilirim? Ayrıca geriye doğru silmek için bir kısayol var mı, imleci geriye doğru ilk boşluğa mı yönlendiriyor?

Güncelleme: ctrl + wgeriye doğru siler ama hangi kısayol ileri bir kelimeyi siler?


2
Ctrl ubaşlangıcına imleç konumundan silme için bir seçenek ... olduğunu
işe yatkın yaklaşık çatlak

23
alt + dEmacs düzenleme modu ayarlandığında, bu yararlı olabilir deneyin .

@Mik nasıl emacs modunu etkinleştirirsiniz?
Adam Matan

@AdamMatan set -o emacsbunu sağlar, ancak genellikle varsayılandır; değilse, bu satırı .bashrcveya içine koyabilir .bash_aliases, ardından dosyayı kaynaklayabilir veya terminali yeniden yükleyebilirsiniz. Bununla birlikte, vi modunda kullanabileceğiniz kısayollar kullanılamayacak, ancak ctrl + c gibi olanlar Bash kısayolları olmadığından olacaktır.

Yanıtlar:


56

Benzer bir soruyu unix.stackexchange.com'da da cevapladım :

Bash, varsayılan olarak bağlı olmayan okuma satırı komutlarına sahiptir. Bunları referansta bulabilirsiniz: http://www.gnu.org/software/bash/manual/html_node/Bindable-Readline-Commands.html#Bindable-Readline-Commands

Aradığınız komuta "kabuk-geri-öldür-kelimesi" denir. Önce kısayolu seçmelisiniz. Crtl + p tuşlarını kullanalım, çünkü "önceki komut" - yukarı ok ile aynı.

bind '"\C-p": shell-backward-kill-word'

Tek fark, ileriye doğru silmek istediğinizden bunun yerine "shell-kill-word" komutunu kullanmanız gerektiğidir.

Ayrıca Meta+ dkısayollu bir "kill-word" komutu da vardır ( Meta anahtarınız yoksa Esc+ deneyin d). Aynı anda yolun sadece bir bölümünü silecektir.


31
Alt-d benim için çalışıyor
ricab,

8
Genel olarak, Meta'nın bulunmadığı klavyeler dünyasında, Alt = Meta.
Nate CK

Çok farklı klavyelere sahip olduğunuz dünya, kullanışlı ve oldukça kullanışlı bir gerçek: Esc'in bir önek olarak Meta olarak da hareket etmesi.
üçlü

1
Kısacası, örneğin bunu $ HOME / .inputrc dosyasına ekleyin:, "\ew": shell-kill-word bu, Alt-w'nin bir sözcüğü silmesini sağlar, tıpkı CTRL-w'nin geriye doğru silmesi gibi bir kelimeyi siler (ve Alt-d'den farklı olarak, silmeyi önler ancak örn. a / veya - ve diğer karakterler)
user964970

7

Her iki test edilmiştir esc+ dve alt/ opt+ dOSX Mavericks ve onlar da orada çalışmak.


12
Option + dOSX hakkında bana gives verir
Ivan Balashov

4
-1 OSX Ubuntu değil. Yorum eklemek için çekinmeyin, ancak bu bir cevap değil.
wjandrea

önce terminal tercihlerinde (profilleri -> klavye sekmesi -> onay kutusu)
nils petersohn 23.01.2012

control + dmac Sierra
mfink

2
@IvanBalashov kullanıyorsanız iterm kullanıyorsanız let opt ​​anahtarınızı esc + olarak ayarlayın. Profiller altında> tuşlar
tessie
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.