joanna.ludmila@googlemail.com :
Już prawie dwa lata minęło odkąd kupiłam mojego PowerBooka i przesiadłam się na Mac OS X-a. Przez cały ten czas wypróbowałam co najmniej kilka, jak nie kilkanaście różnych edytorów, głównie w celu LaTeXowania. Żaden nie spełnił moich oczekiwań. Może jestem wybredna, albo za długo pracowałam z innymi edytorami, żeby łatwo się przesiąść.
No i wygląda na to, że znalazłam edytor dla siebie. Nazywa się TextMate. Obsługuje w tej chwili bardzo wiele różnych języków programowania i samych programów (np. nieoceniona współpraca z Subversion!), a każdy może dowolnie rozszerzyć jego funkcjonalność pisząc krótkie programy w dowolnym języku skryptowym (shell-script, Perl, Python...).
Ponieważ godzina jest późna, a ja od początku tygodnia (=semestru) wstaję codziennie o 7 rano (ostatnie 3 miesiące to raczej była 9-10), nie mam siły teraz opisywać wielu możliwości i szczegółach, w których tkwi diabeł (!). Ogólnie pochwalić mogę tylko niemal dowolną dopasowywalność do własnych potrzeb i przyzwyczajeń i baardzo wiele możliwości pomocy przy pisaniu kodu (code folding, uzupełnianie kodu, TODOs, sprawdzanie pisowni z ominięciem poleceń itp. itd.). To, co dla mnie jest osobiście ważne, to ogromne wsparcie dla LaTeX-a (w tym synchronizacja z PDF-em oraz wyświetlanie błędów w dodatkowym oknie, kolorowanie składni pliku log i jego automatyczne odświeżanie). Wiele można dowiedzieć się ze screencastów, które dostępne są na stronie TextMate (link patrz wyżej).
Ja od kilku miesięcy używałam wersji Trial, odinstalowując ją i instalując od nowa, ponieważ nie było łatwo od razu zdecydować się na wydanie prawie 50€ (39€+podatek, o którym dowiedziałam się dopiero przy potwierdzaniu transakcji), żeby kupić licencję. Ale po tych kilku miesiącach niezbyt intensywnego użytkowania (bo akurat nie było okazji, a ja też nie miałam czasu, żeby się wgłębiać w możliwości tego edytora) podjęłam ostateczną decyzję i dziś właśnie dostałam już moją licencję.
TextMate określiłabym trochę jako takiego bardzo ładnego i bardziej przyjaznego w użyciu Emacsa, Można w nim prawie wszystko, a na pewno wszystko można zaprogramować (choć nie wiem, czy zrobienie jajecznicy nie wymagało by patelni na USB), do wszystkiego są lub mogą zostać przypisane skróty... no po prostu bosko.
Uprzedzając pytania: TextMate jest i będzie dostępny wyłącznie na Maca. Autor pisze na blogu, że nie zamierza portować edytora na Windowsa, choć mógłby zarobić na tym wielką kasę, bo dla niego znacznie ważniejszy jest fun przy pracy, a Windows is not fun. Przy czym Autor TextMate zamierza wprowadzić akcję (którą już rozpoczął, ale zawiesił z przyczyn technicznych): przesiądź się na Maca, a TextMate dostaniesz gratis.
Jeśli zaintrygował lub zainteresował Was TextMate, warto obejrzeć stronę jemu poświęconą, jest tam Manual, Wiki oraz kilka Screencastów (pliki mov, czyli QuickTime), które robią naprawdę ogromne wrażenie.
Dzisiaj znowu miałam „nockę”. Pracowałam nad wspomnianą bazą danych i interfacem do niej – w PHP. Była to już powoli b. pilna praca, a mnie denerwowało, że nie widać końca, więc się zawzięłam i przetrwałam kryzys i o 6 rano, kiedy to wysłałam gotową listę adresową do zarządu i dyrygenta do zatwierdzenia, poszłam spać.
Ale o czym ja właściwie chciałam napisać: byłam tak zmęczona intensywną pracą w PHP, że chcąc nastawić budzik zaczęłam się zastanawiać, do której zmiennej podstawić godzinę pobudki, zasnęłam zanim nastawiłam budzik.
Mam pewien pomysł na usprawnienie pracy z LaTeX-em na moim Maku, niestety nie do końca potrafię go zrealizować! Może ktoś z Was będzie miał jakieś rozwiązanie. Jak znajdę więcej czasu to może i sama coś znajdę, ale teraz właściwie powinnam pisać pracę domową ;)
Wygląda to tak, że można w TeXShopie ustawić używanie zewnętrznego edytora. Czyli kompilację wykonuje się w TeXShopie, wyświetlanie pdf-a również, a sama edycja w jakimś innym programie, np. Smultronie (mój obecnie ulubiony edytor, niestety najnowsza wersja 3.0 nie nadaje się do użytku z powodu ogromnej ilości bugów[*]). Edytor dostarczany z TeXShopem jest raczej marny.
Niestety wymaga to dużej ilości kliknięć, żeby zachować plik w Smultronie, przełączyć okno do TeXShopa i uruchomić kompilowanie.
Z tego, co mi wiadomo, TeXShop zawiera jakieś przygotowane AppleSkrypty, ale nie wiem, jak się do nich dobrać.
Myślałam też, żeby wykorzystać tzw. Folder Actions, niestety nie ma dla nich opcji wykonania skryptu, gdy np. pewien określony plik zmieni się (np. będzie miał nową datę), a tylko przy dodawaniu, usuwaniu plików.
Idealnym rozwiązaniem byłoby: <jabłko> + S w Moim Ulubionym Edytorze wywoływałoby odpowiedni skrypt, np. latex/bibtex/latex/latex, po czym okienko podglądu by się odświeżało, na tej stronie, która była ostatnio otwarta. W przypadku błędu otwierałaby się również konsola z outputem
Jestem pewna, że to rozwiązanie jest możliwe i jestem pewna, że jest nawet więcej dróg, żeby je osiągnąć (np. kompilować można z TeXShopa albo wywołując polecenie shellowe
Następnym punktem do rozważenia jest, jak to zrobić, żeby działał pdfsync. Nigdy nie używałam tego narzędzia wcześniej, ale skoro istnieje, czemu by nie! Czasem może być przydatne. Służy do przełączanie między źródłem a podglądem, przy czym przeskakuje się zawsze do miejsca, które wskaże kursor. Podobno jest jakiś problem tutaj z TeXShopem/zewnętrznym edytorem.
Oczywiście musiałaby istnieć możliwość dopasowania, czy ma to być [pdf|xe|]latex.
[*] np. numery linii pojawiły mi się od końca do początku i... w lustrzanym odbiciu!
Obecny stan wiedzy:
z TextWranglerem się da tak:
tell application "TextWrangler"
set fileName to (file of text window 1) as text
end tell
set unixname to POSIX path of fileName
set oldDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to "/"
-- pull the path out as a string and strip off the filename
set pathText to unixname
set pathList to (text items of pathText)
set docName to last item of pathList
set AppleScript's text item delimiters to oldDelimiters
tell application "TextWrangler"
save text document docName
end tell
tell application "TeXShop"
activate
open fileName
end tell
tell document docName of application "TeXShop"
activate
typesetinteractive
end tell
Skrypt powoduje, że w TeXShopie otwiera się aktualnie edytowany w TextWranglerze plik, kompiluje się i odświeża/otwiera podgląd. Tylko niech mi ktoś jeszcze powie, jak ten skrypt wywołać przy zapisywaniu pliku to już będę szczęśliwa. Niech będzie i TextWrangler, choć może zadziała i z Smultronem. Aha, skrypt oryginalnie odnosił się do BBEdita, którego nie posiadam, ale to są dwie wersje tego samego edytora, jeśli się nie mylę (jedna platna druga nie), więc nie ma problemu.
Znalazłam ciekawą funkcję w TextWranglerze: dowiązanie skryptu do dowolnego elementu Menu. Działa to tak, że skrypt musi być nazwany jak element menu, np. File•Save (• rozdziela poziomy) i zapisany w katalogu ~/Library/Application Support/TextWrangler/Menu Scripts. Można wykonać skrypt przed i/lub po wykonaniu funkcji z Menu.
Mój skrypt wygląda następująco:
on menuselect(menuName, itemName)
return false
end menuselect
on postmenuselect(menuName, itemName)
tell application "TextWrangler"
set fileName to (file of text window 1) as text
end tell
set unixname to POSIX path of fileName
set oldDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to "/"
-- pull the path out as a string and strip off the filename
set pathText to unixname
set pathList to (text items of pathText)
set docName to last item of pathList
set AppleScript's text item delimiters to oldDelimiters
tell application "TextWrangler"
save text document docName
end tell
tell application "TeXShop"
activate
open fileName
end tell
tell document docName of application "TeXShop"
activate
typesetinteractive
end tell
end postmenuselect
i działa dokładnie tak, jak sobie wymarzyłam: po zapisaniu pliku włącza się odpowiedni engine techowy i otwiera się/odświeża się podgląd w TeXShopie. Proste i genialne!
Wygląda na to, że na razie rezygnuję z pięknego i prostegu Smultrona. Chyba, że ktoś mi powie, jak zrobić w nim to samo.
www.flickr.com
|