Bash'te Windows kabuğu Escape tuşu (tüm satırı sil) eşdeğeri


13

Windows komut satırında (powershell ve cmd), bir satırdayken Esctuşa bastığınızda , istemde yazdığınız her şey kaldırılır.

EscBash isteminde tuşa basmanın hiçbir şey yapmadığını buldum . Basmak Escve daha sonra backspacebir kelime siler, ancak bu her kelime için yapılmalıdır.

Bash'i aşamalı olarak öğreniyorum ve bazen çizginin ortasına aptalca bir şeyler yazıyorum ve tekrar sıfırdan yazmanın daha iyi olduğunu hissediyorum. Bunu yapmak için backspaceşimdiye kadar bulduğum tek yol basmak .

Ne yaparsın?

clearKomutun ve Ctrl-Lkısayolun farkındayım , ancak tüm terminali temizlemekten bahsetmiyorum. Sadece çizgi.


1
Bir süre önce süper kullanıcı üzerinde kullanışlı readline klavye kısayollarının bir listesini yayınladım . Bunları da faydalı bulabilirsiniz. (Readline,
bash'ın

hey jw013, güzel bir düzenleme için teşekkür ederim. :-)
Animesh

Yanıtlar:


15

İstersiniz kill-whole-line, ancak bash'da bu varsayılan olarak bağlayıcı değildir. backward-kill-line( CtrlX Backspace) ve unix-line-discard( CtrlU) her ikisi de geçerli noktadan satırın başına kadar siler, bu nedenle satırın sonuna gidin ve ikisini de kullanın.


Haklısın, hiçbir şeye bağlı değil. Bunu kullanarak öğrendim bind -P. Sanırım Ctrl-Uve sonra Ctrl-Ytek seçenek o zaman.
Animesh

Bazı varsayılan ciltlemelerin Emacs düzenleyicisindeki anahtar dizilerden türetildiğini ve bu ciltlemelerin başka yerlerde de göründüğünü göreceksiniz.
Blrfl

@Blrfl yorumunuzu genişletmek için, bu tuş bağlantılarının çoğu, çok sayıda komut satırı programının kullandığı ve hepsinin benzer satır düzenleme anahtarlarına sahip olduğu readline kütüphanesine soyutlanmıştır .
jw013


6

Ctrl+asatırın başına gider ve satırın Ctrl+ksonuna kadar siler


^UÖnce deneyin , çoğu Emacs komut satırı düzenleme modu uygulamalarında tam satırı zaten siler. Yalnızca imleçten geriye kalanları (örneğin GNU readline) silindikten ^Ksonra düğmesine basın .
mirabilos

3

Ignacio Vazquez-Abrams cevap biraz genişletmek için alabileceğiniz (neredeyse) Windows benzeri dan davranış Escbağlanarak bash anahtarına kill-whole-lineiçin Escaşağıdaki komutla

bind '"\e":kill-whole-line'

Satırı ~/.inputrcdosyanıza eklerseniz, bağlanma oturumlar arasında devam eder.

Bununla birlikte, bash anahtarı başka bir değiştirme anahtarı olarak (kalıcı olmayan Alt veya Ctrl gibi) kullandığından, bunun çok standart olmadığını unutmayın Esc. Mevcut tuş bağları listesine (ile bind -P) bakarsanız, büyük olasılıkla "\ e" ile başlayan tuş kombinasyonlarına bağlı birkaç komut görürsünüz (ör.

"\eb": backward-word

birleşimini hangi setleri Esc+ Bimleç geri çekmeme en son kelime başlayan - ziyade gibi Ctrl+ , sen bırakmadan tutmak zorunda olması dışında Esc(yanı sıra B, tabii ki) arka arkaya birden fazla kez yapmak istiyorsanız ).

Ve bu, aldığınız davranışın neredeyse Windows benzeri olduğunu neden söylediğimi açıklıyor : bastığınızda Escbash, başka bir anahtarla birlikte kullanıp kullanmadığınızı kontrol eder; bu nedenle, eğer bağlarsanız kill-whole-line, basmak (veya daha doğrusu serbest bırakmak) Escve bash sizin için hattı temizlemek arasında biraz gecikme olur .

Ancak, bunlardan herhangi birini umursamıyorsanız ve kendinizi farklı bir tuşa yeniden eğitmekten ziyade gecikme ile yaşamayı tercih ederseniz, yapılabilir.

(Not: Bu cevabı okuduğum ve bu bağlantıları takip ettiğim için elde ettiğim bilgilerin çoğu .


1
Bu çok yardımcı oldu, teşekkürler ve reklamı olarak az ya da çok çalışıyor. Ama bir satırın sonunda DEL tuşuna basmak gibi diğer komutlar "geçersiz" yürütüldüğünde bazı can sıkıcı davranışlar üretti buldum: Bu satır temiz ve yerine [19;veya benzer görünümlü bir kaçış kodu yerine. Sonunda güzel bir uzlaşma "\e\e"için eşleme buldum kill-whole-line(yani, Esc iki kez dokunun) bulundu.
j_random_hacker

@j_random_hacker: Hm, beğendim. EscZaten sık sık birkaç kez vurdum , bu yüzden deneyebilirim. Şu anda Ctrl+ ' ya bağlıyım Delama bunu asla hatırlamıyorum.
Wilson F
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.