Praca z tekstem w terminalu
Np. gdy łączymy się z odległym kompem i pracujemy przez PuTTy.
Różne użyteczne knyfy tu.
Formatowanie pliku
Jeżeli nie jest to programowanie, tylko pisanie tekstu (co się przecież zdarza), najprostszym edytorem pozostaje nano. Dobrze go wtedy trochę poustawiać w /etc/nanorc
lub ~/.nanorc
. O czym niżej.
Zawijanie wierszy
We wszystkich edytorach terminalowych można zrobić text wrap
lub podobnie, czy to wywołując jako parametr przy starcie, czy w ustawieniach rc
. Ale w przypadku tekstu bieżącego nie załatwia to problemu, gdyż kursor będzie skakał pomiędzy wierszami rzeczywistymi, nie zaś ekranowymi. Zatem jeżeli pojawi się długi akapit (który w wypadku plików tekstowych jest po prostu wierszem tekstu rozdzielonym wierszem pustym), będzie trudno go edytować. Należy wtedy „zawinąć” wiersz w pliku:
fold -w 80 -s text.txt
w
ustala szerokość wiersza w liczbie znaków (standard ekranowy to 80)s
każe łamać linię na spacjach, nie byle gdzie
Tekst zostanie na stałe zawinięty!
Więcej podpowiedzi tu
Odwijanie wierszy
Zapytałem się na stackoverflow:
http://stackoverflow.com/questions/32985844/unfolding-text-file-on-linux-preserve-double-newlines
ale skasowali, bo uznali, że jest niskiej jakości lub coś.
Ale znalazłem takie:
cat file.txt | awk '{printf "%s ",$0} /^$/{print ""} END{print ""}' > unfolded_file.txt
albo z sed:
cat file.txt | sed ':a;N;$!{/\n$/!ba}; s/[[:blank:]]*\n[[:blank:]]*/ /g' > unfolded_file.txt
Ale obie powyższe metody po prostu kasują pojedyncze oznaczenie nowej linii (czyli zostawiają jedno z dwóch oznaczeń) - i zamiast jednoliniowego odstępu między akapitami mamy tylko bezliniowy odstęp - a to już kiepsko. Trzeba znaleźć lepsze rozwiązanie.