Kiedy jestem w vim
środku, mogę zmienić rozmiar tabulatora za pomocą następującego polecenia:
:set ts=4
Czy można również ustawić rozmiar tabulacji dla cat
danych wyjściowych polecenia?
cat
indentation
Meysam
źródło
źródło
expand
(z pakietu coreutils) itabs
(z pakietu ncurses), (2). a znaczenie ts to [ T ] ab [ S ] topWystarczy użyć następującego kodu:
Gdzie n jest liczbą spacji, które również mają być zgodne z tabulatorami. W celu nie trzeba robić to przy każdym uruchomieniu powłoki, wystarczy zmienić swój
.bash_profile
in~/
i dodać powyższy wiersz na końcu pliku.Aby uzyskać więcej informacji na temat polecenia tabs, patrz:
źródło
ls
out put może wyglądać nieprawidłowo wyrównany).Nie ma pojęcia o tabulatorach ani o ogranicznikach tabulacji
cat
; program po prostu wprowadza dane wejściowe do wyjścia i traktuje tabulatory jak każdy inny znak. Jeśli urządzeniem wyjściowym jest terminal, karty będą obsługiwane zgodnie z tym, jakie zachowanie skonfigurowano w terminalu.Systemy implementujące POSIX.1 mają wywołane polecenie
tabs(1)
, które dostosuje koncepcję terminala, w jaki sposób powinny być wyświetlane tabulatory. W zależności od konkretnego układu zakładek nie jest to dobry pomysł, ponieważ ktoś może wysłać plik na inne urządzenie, takie jak drukarka, która nie zrobi tego, co zamierzałeś.Podczas regulacji
ts
wvim
(lub zwykłyvi
), wszystko co robisz jest dostosowanie w jaki sposób interpretuje Editor tabulatorów kiedy wyświetlany. Nie ma to wpływu na to, co znajdzie się w pliku.źródło
W oparciu o powyższe odpowiedzi i przykłady wydaje się, że faktyczne polecenie, jakiego chciał PO, to ...
cat somefile | expand -t4
Działa to dla mnie w Red Hat 6.4.
źródło
Aby rozwinąć już udzielone odpowiedzi,
expand
możesz również wziąć listę pozycji tabulacji. Jest to przydatne, jeśli długości treści różnych kolumn są bardzo różne.Przekonałem się o tym dzisiaj, kiedy chciałem, aby dane wyjściowe były
openssl ciphers
bardziej czytelne:Użycie tylko
expand -t31
zwiększyłoby szerokość wydruku z około 100 znaków do ponad 160 znaków.źródło
column
:openssl ciphers -v 'HIGH' | column -t
Wiele terminali obsługuje ustawianie zmiennych tabulatorów. Te, które są w wersji vt100, linux i lub obsługują standard EMCA-48, większość terminów na temat ustawień tabulatora obsługuje obsługę linuxa: xterm i rodzina (uxterm, urxvt) xfce4-terminal, luit, Terminal, SecureTTY, między innymi.
Napisałem więc skrypt kilka lat temu, aby ustawić moje zakładki przy logowaniu na każde 2 spacje - kiedyś użyłem 4, potem 3 przez krótki czas, a teraz o 2 ....
Więc teraz, jeśli „przechwycę” plik, zakładki w pliku rozwiną się do ustawień mojego terminala.
Jeśli przeszedłem przez vima lub więcej, robią oni własne tabulatory, ale wiele narzędzi używa tabulatorów.
Zawiera skrypt w celach informacyjnych i / lub do użytku osobistego:
Mam nadzieję, że to pomoże...
źródło
Według strony, kot nie może tego zrobić sam. Ale możesz np. Uruchomić dane wyjściowe z cat przez
tr
filtr, aby zastąpić tabulatory dowolną liczbą spacji:zastąpi znak tabulacji dwoma spacjami.
Aktualizacja: jak wskazano w komentarzach do tego postu, tak naprawdę to nie działa. Niemniej jednak zachowuję odpowiedź jako przykład tego, jak tego nie robić.
źródło
'\t'
go tylko jedna spacja, bez względu na to, ile spacji znajduje się między drugą parą cudzysłowów' '
tr
nie działa w ten sposób .. każdy bajt arg 1 jest zastępowany przez każdy odpowiadający bajt arg 2 ..... Dlategoprintf '\t' |tr '\t' 'ळ'
wypisuje pojedynczy bajt, którego wartość szesnastkowa to\xE0
.., który jest pierwszym bajtem z trzech UTF-8 zakodowane bajty, które składają się na znakळ
(którego wartość Unicode CodePoint to U + 0933)