CTRL-r neden OS X'te garip davranıyor (bir komutun yalnızca bir kısmını gösteriyor)


10

Ctrl+ r, .bash_historydaha önce çalıştırdığınız komutları aramak için harika bir küçük araçtır .

Ancak, OS X Terminal.app içinde kullandığımda garip davranışlar görüyorum ve başka birinin aynı şeyi görüp görmediğini veya nasıl düzeltileceğini bildiğini merak ediyordum.

  1. Ctrl+r
  2. gibi bir şey yaz find
  3. Ah güzel, bak ... istediğim komut bu find . -exec grep -q "hello world" '{}' \; -print
  4. Bu komutu çalıştırmak istiyorum ama merhaba dünyayı başka bir şeye dönüştürmek istiyorum.
  5. Bu yüzden vurdum ya da
  6. Şimdi komut komut satırında SORTA ama her zaman komutun kesilmiş bazı sürümüne benziyor, şu şekilde: -q "blog_posts_by" '{}' \; -printtüm komutun orada olduğu ve satırda hareket etmek için imleç tuşlarını kullanabilirim, ancak hepsi değil yazdırılır. Çizgide gösterilen ile terminalin gerçekten düzenlediğimi düşündüğü şey arasında bir kopukluk var.

Bunun neden olabileceğine dair bir ipucu var mı? Web'leri aramak kolay bir fenomen değildir.


Bu yalnızca terim pencere genişliğinizden daha uzun satırlarda mı oluyor?
Essobi

BTW'yi hangi Terminal.App/OSX sürümü çalıştırıyorsunuz? Bash sürümü? Bize .bashrc'nizi de gösterebilir misiniz?
Essobi

Yanıtlar:


14

Muhtemelen isteminizdeki renkler için uygun şekilde sınırlanmamış kaçış dizileri vardır. Onlar içine alınması gerekir \[ve \].

PS1='\[\033[1;36m\]\u\[\033[0m\]@\[\033[1;34m\]\h\[\033[0m\]\$ `

Yazdırılmayan karakter dizilerinin uzunluğu, bu şekilde kapatıldıklarında istemin uzunluğuna dahil edilmez ve önceki komutların konumunun, sarıldıklarında düzgün görüntüleme için hesaplanması gerekir.


Tamam, bu StackOverflow iş parçacığında cevap veren tarafından çözülmüş birkaç sorun daha vardı - stackoverflow.com/questions/35563/…
bryan kennedy

Bu , bilgi istemindeki yeni satırlar için de geçerlidir . Ben bir hicolor kontrol dizisi düştü çünkü başında PS1, ama içinde newline char sonra tekrar değil.
Mart'ta Walf

0

Bunun nedeni, çıkış anahtarlarının Terminal'inizde yapılandırılma biçiminden kaynaklanıyor olabilir, normalde yaptığım şey, hemen geri dönme hayranı olmadığım için iTerm veya Terminal.app üzerinde sol veya sağ oku kullanmaktır, bu sizin için çalışır ?


0

Bu sorunun bir başka olası nedeni yanlış TERMdeğere sahip olmaktır . Mesela, PS1'imde renkler kullanırken bu başıma geldi, ama TERMayarlandım xterm. Bunu olarak değiştirdim xterm-256colorve CTRL-r tekrar doğru çalışmaya başladı.

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.