Spis treści

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

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.