Bir yaparak, vim olmadan akabilir (sadece ekleme modunda onları devre dışı istediğimi varsayarsak.) ham modda tty'den okuyan ve backspace ve DEL dahil olmak üzere çoğu kontrol karakterine izin vermeyen kabuk komut dosyaları ve ikişer ikişer yankılanır: doğrudan bir kez terminale ve bir kez standart çıkışa, böylece işinizi bir dosyaya yönlendirebilirsiniz.
#!/bin/sh
saved_tty=$(stty -g < /dev/tty)
bail()
{
stty $saved_tty < /dev/tty
exit $?
}
trap bail EXIT INT
stty raw -echo < /dev/tty
while true ; do
ch=$(dd bs=1 count=1 < /dev/tty 2> /dev/null)
code=$(printf "%d" "'$ch")
if [ $code -eq 4 ] ; then
printf "\r\n" > /dev/tty
printf "\n"
break
elif [ $code -eq 13 -o $code -eq 10 ] ; then
printf "\r\n" > /dev/tty
printf "\n"
elif [ $code -ge 32 -a $code -lt 127 ] ; then
printf "%s" "$ch" > /dev/tty
printf "%s" "$ch"
fi
done
kaydet bu flow
, chmod a+x flow
ve tıpkı:
$ flow > file.txt
Backspace and del not allowed
here just type and type.
Then hit Ctrl-D when you're done; no Enter
required.
$ flow
ffoorrggoott ttoo rreeddiirreecctt!!
boş bir ekran gerektiriyorsa, clear
birinci veya komut dosyasına ekran temizlenmesini ekleyin.
Engellenmiş bir arka alan "dikkat dağıtıcı" yazmayı nasıl destekliyor? Sadece yazım hataları yap ve onları bırak, çünkü kendini düzeltmek için dikkat dağıtıcı mı? Bazı arka plan gerekçeleri bu soruyu artıracaktır. – Kaz
@Kaz Akışla ilgili. Düzyazı yazarken, yazmayı ve yaptığınız her kelimeyi veya hatayı düşünmemek için iyi bir fikirdir. Amaç akan şeylerden kurtulmak ve kafanızdan fikir akışını, yol boyunca durmadan, metne taşımaktır. Kod yazmak için hiç denemedim, ama aynı "akışa gir" -deyin de doğru olabilir. – mcbetz