Kod nie powinien tylko działać, powinien być także czytelny – zmienne wyrównane wg znaku przypisania, komentarze wyrównane, etc. Bardzo pracochłonne jest wykonanie tego ręcznie. Wtedy z pomocą przychodzi Align.
Skrypt tygodnia: Align
Nazwa: Align
Autor: Charles E. Campbell, Jr. ( NdrOchip AT ScampbellPfamily.AbizM )
Opisywana wersja: 24/28
Wstęp
Kod nie powinien tylko działać, powinien być także czytelny – zmienne wyrównane wg znaku przypisania, komentarze wyrównane, etc. Bardzo pracochłonne jest wykonanie tego ręcznie. Wtedy z pomocą przychodzi Align.
Skrypt pozwala na automatyczne wyrównywanie w rozmaity sposób wielu różnych typów tekstu. Możliwe jest nawet proste przerobienie deklaracji zmiennych. Align jest bardzo rozbudowanym skryptem o bardzo rozbudowanych możliwościach, dlatego w tym wypadku szczególnie zachęcam do przestudiowania dokumentacji gdyż w niniejszym tekście możliwe jest tylko zasygnalizowanie części funkcjonalności.
Wymagania
Instalacja
Skopiuj plik archiwum do katalogu ~/.vim i tam go rozpakuj tar jxvf Align.tar.bz2. Następnie uruchom Vima i wydaj polecenie :helptags ~/.vim/doc aby zainstalować dokumentację.
Konfiguracja
(omawiam tutaj tylko najważniejsze opcje, pełna lista w dokumentacji skryptu, wspomniane tutaj opcje mogą być istotne dla polskiego użytkownika, lub wymagane do poprawnego działania skryptu)
Klawiszologia
Align ma bardzo dużą liczbę skrótów klawiszowych, dokładne opisywanie ich wszystkich nie ma większego sensu – zwłaszcza że są one w dokumentacji dokładnie objaśnione z jasnymi przykładami. Wybrałem tylko najciekawsze – zarówno pokazujące możliwości jak i najbardziej przydatne (w przykładach oznacza tak naprawdę
- a<
- Wyrównuje wg <<:
cin << x; cin << y; cout << "this is x=" << x; cout << "but y=" << y << "is not";
Zaznacz tekst V i aplikuj skrót:
cin << x; cin << y; cout << "this is x=" << x; cout << "but y=" << y << "is not";
- abox
- Zamyka wybrany tekst w komentarzu:
This is some plain text which will soon be surrounded by a comment box.
Zaznacz tekst V i aplikuj skrót:
/*************************** * This is some plain text * * which will * * soon be surrounded by a * * comment box. * ***************************/
- acom
- Wyrównuje komentarze:
if(itworks) { /* this */ then= dothis; /* is a */ } /* set of three comments */
Zaznacz tekst V i aplikuj skrót:
if(itworks) { /* this */ then= dothis; /* is a */ } /* set of three comments */
- anum
- Wyrównuje kolumny liczb (rozpoznaje zarówno . jak i ,):
-1.234 .5678 -.901e-4 1.234 5.678 9.01e-4 12.34 56.78 90.1e-4 123.4 567.8 901.e-4
Uwaga, tutaj trzeba w pierwszej linii wykonać ma, przejść do ostatniej i dopiero wtedy wykonać skrót - nie poprzez tryb Visual:
-1.234 .5678 -.901e-4 1.234 5.678 9.01e-4 12.34 56.78 90.1e-4 123.4 567.8 901.e-4
- tt
- Fragment tabelki w LaTeXu:
one&two&three\ hline four&five&six\ seven&eight&nine\
Zaznacz tekst V i aplikuj skrót:
one & two & three \ hline four & five & six \ seven & eight & nine \
To były najciekawsze przykłady, a praktycznych możliwości jest więcej.
Używanie
Align udostępnia 2 podstawowe polecenia :Align i :AlignCtrl. Można je podsumować tak - AlignCtrl służy do szybkiego kontrolowania opcji tak by nie trzeba było przedefiniowywać mnóstwa zmiennych, Align zaś wykonuje samo wyrównywanie.
Weźmy dwie tabelki z dokumentacji pokazujące możliwości AlignCtrl:
+-------------+------------------+---------------------+----------------------+ | Oryginalne | AlignCtrl = = + -| AlignCtrl = = | AlignCtrl C = + - | +-------------+------------------+---------------------+----------------------+ |a = b + c - d|a = b + c - d |a = b + c - d |a = b + c - d | |x = y = z + 2|x = y = z + 2 |x = y = z + 2|x = y = z + 2 | |w = s - t = 0|w = s - t = 0 |w = s - t = 0 |w = s - t = 0 | +-------------+------------------+---------------------+----------------------+
+------------+-------------------+-------------------+-------------------+ | Oryginalne | AlignCtrl l | AlignCtrl r | AlignCtrl lr | +------------+-------------------+-------------------+-------------------+ | a=bb=ccc=1 |a = bb = ccc = 1| a = bb = ccc = 1|a = bb = ccc = 1| | ccc=a=bb=2 |ccc = a = bb = 2|ccc = a = bb = 2|ccc = a = bb = 2| | dd=eee=f=3 |dd = eee = f = 3| dd = eee = f = 3|dd = eee = f = 3| +------------+-------------------+-------------------+-------------------+ | Wyrównanie |l l l l| r r r r|l r l r| +------------+-------------------+-------------------+-------------------+
Po ustawieniu AlignCtrl samo przeformatowanie wykonuje się poprzez zaznaczenie wybranego fragmentu i wydanie polecenia Align: :'<,'>Align.
Podsumowanie
Skrypt o dużych możliwościach, bardzo wspomagający utrzymywanie kodu w czytelnym stanie.
Archiwalny news dodany przez użytkownika: mikmach.
Kliknij tutaj by zobaczyć archiwalne komentarze.