Terminaldeki geçerli satırı nasıl silebilirim / silebilirim?


795

Terminal kullanıyorsanız ve bir komut için bir metin satırı yazıyorsam, bir kısayol tuşu veya bu satırı silmenin / silmenin herhangi bir yolu var mı?

Örneğin, benim geçerli satır / komut gerçekten uzun bir şey ise:

> git log --graph --all --blah..uh oh i want to cancel and clear this line <cursor is here now>

Yukarıdan gitmek için bir kısayol tuşu veya komut var mı:

>

?

Genellikle tuşa basarım ve mevcut satırım tarihte yepyeni biriyse, bu onu temizler. Ancak komut geçmişimi anahtar üzerinden geçiriyor ve bu komutları düzenlemeye veya kullanmaya başlıyorsam , bilgi istemini yalnızca tarihin bir sonraki en yeni komutuna değiştirir, bu yüzden birden fazla kez basmadıkça burada çalışmaz .




Yanıtlar:


1492

Başlangıcına kadar temizlemek için Ctrl+ tuşunu kullanabilirsiniz U.

Sadece bir kelimeyi silmek için Ctrl+ tuşunu kullanabilirsiniz W.

İptal etmek için Ctrl+ tuşunu da kullanabilirsiniz C.

Geçmişi korumak istiyorsanız, yorum yapmak için Alt+ Shift+ ' #yı kullanabilirsiniz .


Bash Emacs Düzenleme Modu Hile Sayfası


231
Ctrl-U tarafından silinen satır da Ctrl-Y ile yeniden doldurulabilir.
keks

65
Wut? Çok güzel teşekkürler keks & kev, ⌃ + U İmleçten önce hepsini sil, ⌃ + K İmleçten sonra tümünü sil, ⌃ + A satırın başına gitmek. Teknik olarak ⌃ + C, Soru için en iyi çözümdür
Binarian

3
Alt-Shift- # çalışmıyor? diğerlerinin yaptığını düşündüm. Alt-Shift- # terminalde bir> karakter yazdırır
tgkprog

49
Bana <kbd>...</kbd>SO göstermek tuşları göstermek için öğretildi .
Samveen

11
@ LưuVĩnhPhúc ESC, bash'ta kendi değiştirici anahtarıdır. Bu geçmişte gezinmeyi (iptal gibi şeyler için kullanılan CTRL+ r) veya imleç (arkasında son iki kelimeyi takas ESC+ t).
17'de noobish

578

Tüm cevapları özetlemek gerekirse:

  • Çizgiyi temizleme: Başlangıcına kadar temizlemek için Ctrl+ tuşunu kullanabilirsiniz U.
  • Hattı temizleyin : Ctrl+ E Ctrl+ Uterminaldeki mevcut hattı silmek için
  • Hattı temizleyin : Ctrl+ A Ctrl+ Kterminaldeki mevcut hattı silmek için
  • Geçerli komutu / satırı iptal et: Ctrl+ C.
  • Silinen komutu geri çağırın: Ctrl+ Y(sonra Alt+ Y)
  • Satırın başına git: Ctrl+A
  • Satırın sonuna git: Ctrl+E
  • Komutun ortasındaysanız, örneğin ileri kelimeleri kaldırın: Ctrl+K
  • Soldaki karakterleri sözcüğün başına kadar kaldırın: Ctrl+W
  • Komut isteminizin tamamını temizlemek için: Ctrl+L
  • Satırın başlangıcı ile mevcut imleç konumu arasında geçiş yap: Ctrl+XX

6
note ctrl-k, imleç ile satır sonu arasındaki her şeyi siler.
Peter Berg

6
Sonraki kelimeyi kaldır:Alt + D
cnlevy

1
Alt+ D bu yüzden ben dahil etmedim bu çalışmıyor :(
J4cK

1
CTRL + Lekranı temizler, ancak geçerli komut satırına yazılanları korur.
Aziraphale

1
Ctrl + Alt + >geçmişte aramayı iptal etmek istediğinizde mükemmel olan giriş geçmişinin sonuna gider.
astasiak

165

Tam kısayol listesi var:

  1. Ctrl+ a İmleci satır başına götür
  2. Ctrl+ e İmleci satır sonuna taşıma
  3. Ctrl+ b Bir karakter geri git
  4. Alt+ b Bir kelime geri git
  5. Ctrl+ f Bir karakter ileri git
  6. Alt+ f Bir kelime ileri git
  7. Ctrl+ d Geçerli karakteri sil
  8. Ctrl+ w Son kelimeyi kes
  9. Ctrl+ k İmleçten sonra her şeyi kes
  10. Alt+ d İmleçten sonra kelimeyi kes
  11. Alt+ w İmlecin önündeki kelimeyi kes
  12. Ctrl+ y Son silinen komutu yapıştır
  13. Ctrl+ _ Geri al
  14. Ctrl+ u İmleçten önce her şeyi kes
  15. Ctrl+ xxİlk ve geçerli konum arasında geçiş yapma
  16. Ctrl+ l Terminali temizle
  17. Ctrl+ c Komutu iptal et
  18. Ctrl+ r Geçmişteki arama komutu - arama terimini yazın
  19. Ctrl+ j Mevcut geçmiş girişinde aramayı bitir
  20. Ctrl+ g Aramayı iptal et ve orijinal satırı geri yükle
  21. Ctrl+ n Geçmişten sonraki komut
  22. Ctrl+ p Geçmiş'ten önceki komut

5
Üzgünüz, Ama 7,8,9,10,11,14,16,17 gereksinimine göre kullanabileceğimiz açık / sil kısa yol tuşları olan tüm yararlı kısayol tuşlarını sağladım.
tharunkumar

2
Şunu da belirtmek gerekir CTRL+ L(16) akım komut hattı içeriği korur.
Aziraphale

pencerelerde satırın başlangıcına gitmek için Ctrl + Shift + A kullanmanız gerekiyor gibi görünüyor
Gandalf458

3
Eksik Ctrl+ h: imleçten önceki karakteri sil
peflorencio

22

Ctrl+ A, Ctrl+ Kterminaldeki geçerli satırı silmek için. Daha sonra, gerekirse Ctrl+ ile geri çağırabilirsiniz Y.


16

senin vi modunu kullanarak veya eğer, hit Escardındancc

yeni sildiğiniz şeyi geri almak için Escve sonra p:)


5
Vi modunu ile etkinleştirebilirsiniz echo 'set editing-mode vi' >> ~/.inputrc. Ayrıca python yorumlayıcı istemleri ve bazı SQL istemcileri gibi yerlerde çalışır
dwurf

11

Onu sevip sevmediğinden emin değilim ama Ctrl+ A(çizginin başlangıcına gitmek için) ve Ctrl+ K(çizgiyi silmek için) kullanıyorum.



6
  • Ctrl+ u: satırınızın başına kadar bir halka arabelleğine gitme
  • Ctrl+ k: Taşımak bir halka tampon için satırın sonuna kadar
  • Ctrl+ w: Hareket bir halka tampon için imleci sola karakter ve (birden) kelimeler

  • Ctrl+ y: halka arabelleğinizden son girişi ekleyin ve ardından halka arabelleğinizde döndürmek için Alt+ kullanabilirsiniz y. Halka tamponundaki "önceki" girişe devam etmek için birkaç kez basın.


4

CTRL+ Rve geçmişte önceki komutları aramak için yazmaya başlayın. Tam satırları gösterecektir.
CTRL+ Rtekrar döngüye.



2

Listeye ekle:

Emacs modunda, tuşuna basın Escve ardından Rtüm satırı siler.

Nedenini bilmiyorum, sadece onu bulur. Belki satır silme için kullanılmaz ancak aynı etkiye sahiptir. Birisi bilirse, lütfen söyle, teşekkürler :)

Bash'de çalışıyor, ancak Fish'te çalışmıyor.


1
O var revert-line"Bu satırda yapılan geri alma tüm değişiklikler": taleb komutu. Varsayılan olarak, M-rhem Alt-R hem de Esc R olabilen (Meta-R) ile sınırlıdır. Bu, satırı gerçekten silmediği anlamına gelir; komut geçmişinize geri dönüp bir komutu değiştirirseniz, sorunu çıkarırsanız revert-line, orijinal komutuna geri döner ve satırı silmez.
Benjamin

2

İmlecin nerede olduğu önemli değil, tüm satırı silmek için kill-whole-linekomutu kullanabilirsiniz , ancak varsayılan olarak bağlanmamıştır. Örneğin, Ctrl+ Alt+ Keklenerek bağlanabilir

"\e\C-k": kill-whole-line

Readline başlangıç ​​dosyanıza (geleneksel olarak) ~/.inputrc ) .

Çeşitli açıklamalar:

  • Başka bir şey için kullanımda olan bir tuş dizisini yanlışlıkla yeniden atamaktan kaçınmak için, tüm bağlantılarınızı kontrol edebilirsiniz bind -P. Şununla önerilen bağlamayı kontrol edin:

    bind -P | grep '\\e\\C-k'
  • Readline init dosya adı kabuk değişkeninden alınır INPUTRC. Ayarlanmamışsa, varsayılan değer ~/.inputrcveya (yoksa) /etc/inputrc. Eğer varsa ~/.inputrc,/etc/inputrc göz ardı edileceğine .
  • Readline init dosyanızı yeniden yüklemek için Ctrl+ X Ctrl+R .
  • İlgili manuel bölümlere bağlantılar:

2

Tüm çizgiyi temizlemek için (2 farklı yol):

  • Home, Ctrl+K
  • End, Ctrl+U

0

Alt+ #geçerli satırı yorumlar. Gerekirse tarihte mevcut olacak.

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.