txt:terminal

Praca z tekstem w terminalu

Np. gdy łączymy się z odległym kompem i pracujemy przez PuTTy.

Różne użyteczne knyfy tu.

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.

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

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.

  • txt/terminal.txt
  • ostatnio zmienione: 2022/05/28 20:25
  • przez flamenco108