Neden bazı (genellikle uzun) komutlar bash ve zsh'de bozulur?


10

Birçok kez bash veya zsh'de uzun bir komut girdiğimde (bunlar bunu gördüğüm pozitif olan tek iki kabuktur) imleç girdiğim dizenin ortasında bir yere çarpıyor, herkes bunun neden olduğunu açıklayabilir, ve bu konuda bir şey yapılabilirse?

Uzun bir girişle karşılaştığımda, kabuğumun geçmişine (ok tuşlarını kullanarak) göz attığımda bunun sıklıkla meydana geldiğini fark ettim, uzun, yeni giriş önceki metni karıştırarak metni karıştıracak.

Ben sadece fark kısa dizeleri ile bir örnek var:

Tarih içeriği:

mkdir sune1
mkdir sune2

Ben giderseniz mkdir sune1, ve ardından mkdir sune2, benim komut satırı olması beklenir mkdir sune2(bu şimdi gittikten budur beri) - ama bunun yerine almak mkdir1sune2.

Bunu yıllardır sık ​​sık fark ettim, ama beni çok fazla rahatsız etmesine asla izin vermeyin, ama değişim zamanı geldiğini anlıyorum! Peki, herhangi bir fikir?

Yanıtlar:


8

Bilgi istem dizeniz muhtemelen yanlış yazdırılmayan karakterlerden kaçtı. İsteminizde renk değişiklikleri gibi bir şey varsa , terminal kaçış dizilerini koymanız \[ve \]etrafına koymanız gerekir, böylece bash ekranda yer kaplamadıklarını söyleyebilir - aksi takdirde gerçek komutun nerede olduğunu yanlış hesaplar ve günceller yanlış yerde. TLDP'den bu bölüme bakın . Zsh olarak, koyun %{ve %}çevresinde dizileri kaçış.


Gerçekten istemimde renkler var, onları kaçmayı deneyeceğim ya da kaldıracağım ve bunun işe yarayıp yaramadığını görün. Teşekkürler!
Jonatan

Zsh'ın renk modülünü kullanmayı düşünün. Hatalardan kaçınmalıdır stackoverflow.com/questions/6159856/…
Francisco
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.