Bu , komutun çıktısında sonlandırılmamış satırları açıkça görmenize olanak tanıyan özel bir özelliktir zsh
(ve şimdi fish
de).
Geleneksel kabuklarda, bir komut son satırsonu karakterinden sonra bir miktar veri verirse veya başka bir deyişle, terminal imlecini satırın başında bırakmazsa , kabuk tarafından bir sonraki komut satırı son sonlandırılmamış satırın sonuna eklenir de olduğu gibi:
bash-4.4$ printf XXX
XXXbash-4.4$
Bu istemi düzenler ve XXX
özellikle de böyle bir meraklısı varsa, bunu özlemek kolaydır . Ayrıca, imleci hareket ettirdiğinizde ekran hatalarına neden olan imleç konumlandırmayı da etkiler.
zsh
çıktıda, %
kalın ve ters videoda bir karaktere sahip sonlandırılmamış bir çizgi olduğunu göstererek ve bir sonraki satırın başında bir sonraki bilgi istemi yayınlayarak şöyle çalışır:
zsh-5.1.1$ printf XXX
XXX%
zsh-5.1.1$
Bu komutun tersi videoyu her komutun %
sonunda ( her komut isteminden önce), ardından 79 boşluk (80 karakter genişliğinde bir terminal varsayarsak) çıkartarak bir CR karakteri (imlecin ilke geri dönmesine neden olan) yapar. sütun) ve satırın sonuna kadar silinecek sıralama (ve ardından bilgi istemi).
Bu şekilde, sonlandırılmamış bir çizgi varsa, imleç birinci konumda olmadığından, bu 80 karakter imleci bir sonraki satıra taşır (ve %
kalır). Aksi takdirde, o %
ve bu 79 boşluk, daha sonra silinecek olan tek bir satırda olacaktır.
Şimdi, bu yalnızca terminal satırları sardığında çalışır (örneğin, sonra düzgün çalışmaz tput rmam
). Yavaş bir terminaliniz varsa (9600 baud seri hattında olduğu gibi), gerçekte %
görüntülenip her komuttan sonra çıkanları görebilirsiniz , bu nedenle zsh
bu özelliği devre dışı bırakmanıza izin verir:
unsetopt prompt_cr prompt_sp
Bu şekilde, zsh
daha çok geleneksel kabukları gibi davranır.
Bu işareti $PROMPT_EOL_MARK
değişkenle de değiştirebilirsiniz .
print -n "this is a test"
o zamanprint "this is a test"