narzędzia |
Vim
Vim według oficjalnej interpretacji oznacza vi improved. Jest to najpopularniejszy, najbardziej rozbudowany, wieloplatformowy klon edytora tekstu vi, napisany przez Brama Moolenaara, holenderskiego programistę. Vim należy do grupy wolnego oprogramowania o otwartym kodzie źródłowym. Pierwsza wersja została wydana w 1991 roku. Vim wydawany jest na własnej licencji typu charityware, kompatybilnej z GPL. Oznacza to, iż użytkownik Vim-a, otrzymując go nieodpłatnie, jest zachęcany przez autora do dokonywania wpłat na cele charytatywne — tutaj na pomoc ofiarom AIDS w Ugandzie. Vim w ostatnich latach był kilkukrotnie wybierany na najpopularniejszy edytor tekstowy wśród czytelników Linux Journal, wyprzedzając m.in. Emacsa.
Tryby pracyVim jest przede wszystkim edytorem modalnym tzn. mającym więcej niż jeden tryb pracy. Zależnie od sposobu liczenia, Vim ma od trzech trybów "elementarnych" (NORMAL, INSERT i COMMAND-LINE/EX) do jedenastu. Według twórcy Vim-a można wyróżnić aż 6 trybów podstawowych (basic modes) i 5 dodatkowych (additional modes). Ich opis znajduje się w bardzo obszernej dokumentacji podręcznej, dostępnej z poziomu Vim-a. Wprowadzenie w terminologię i specyfikę trybów uzyskuje się po wpisaniu :help vim-modes w tzw. trybie Ex. Przejście w tryb Ex zawsze zaczyna się od dwukropka (poprzedzonego wciśnięciem klawisza Esc w przypadku trybu wyjściowego innego niż NORMAL). Zmiana trybuDalszy opis skupia się na trybach NORMAL, VISUAL i REPLACE. Tryb INSERT jest dość oczywisty i nie wymaga osobnego opisu jako wspólny wszystkim edytorom pełnoekranowym. Domyślnie edytor Vim wita użytkownika trybem NORMAL. Zmiana trybu NORMAL na VISUAL wymaga wpisania małej litery v (należy zwracać uwagę na stan klawisza Caps Lock). Z kolei zmiana na tryb REPLACE możliwa jest z dwóch trybów: z trybu NORMAL przez wpisanie dużego R oraz z trybu INSERT po wciśnięciu klawisza Insert. Wizualna edycja w trybie REPLACEProsty przykład edycjiNietypowe (niespotykane gdzie indziej) zasady edycji w edytorze Vim zostaną zademonstrowane na przykładzie trybu REPLACE, formalnie będącego rozszerzeniem trybu INSERT. Najpierw proste zastępowanie (ang. replace) kolejnych, pojedynczych znaków innymi znakami: jest to zadanie stosunkowo intuicyjne, ponieważ po przejściu w tryb REPLACE każdy wpisany znak nadpisuje inny znak. Tak aż do naciśnięcia klawisza Esc czyli opuszczenia trybu. Trudniejszy przykład edycjiSzybka podmiana dłuższego fragmentu tekstu bez zmiany liczby znaków w pliku wynikowym jest mniej trywialna. Przynajmniej z punktu widzenia użytkownika przyzwyczajonego do pozornej intuicyjności edytorów nie-modalnych.
Uwaga: w przypadku potrzeby odwołania się do innej pozycji w rejestrze trzeba podać przyporządkowaną tej pozycji literę alfabetu. Lista wszystkich rejestrów pamięci wraz z ich zawartością dostępna jest w 2. identycznych poleceniach trybu Ex: :registers (krótko :reg) oraz :display (:di). Wklejanie w wierszu poleceńKombinacja CTRL-R + litera (a-z) jest pomocna także przy wklejaniu skopiowanego tekstu w wiersz poleceń (COMMAND-LINE/Ex) edytora Vim. Pozwala to skutecznie uniknąć prozaicznych błędów wynikających ze żmudnego przepisywania fraz, a co za tym idzie przyspieszyć i uczynić przyjemniejszą pracę nad tekstem. Przykład polecenia w trybie ExTypowy przykład najczęściej używanego polecenia trybu Ex: :%s/wyrażenie regularne lub tekst docelowy/tekst dotychczasowy/gc Znak procentu wyznacza cały plik jako zakres działania dla polecenia zamiany tekstu. Ukośniki separują poszczególne części polecenia. Przedostatnie g (od global) nakazuje wykonać polecenie maksymalną liczbę razy (domyślnie tylko raz dla każdego z wierszy). Końcowe, opcjonalne c wymusza interaktywność - potwierdzanie wykonania polecenia w przypadku odnalezienia ciągu spełniającego podane kryterium. KonfigurowalnośćVim jest edytorem dającym się w dużym stopniu konfigurować. W efekcie Vim może być surowy i nieprzyjazny jak jego protoplasta lub przeciwnie: cieszyć intelekt i oko bogactwem funkcji czy kolorów. Informacja o bieżącym trybie pracy wyświetlana jest w ostatniej linii ekranu. Można ją włączyć specjalną zmienną. Odpowiednie polecenie wydaje się w trybie Ex :set showmode (lub krócej: :se smd) - zobacz :h smd). Powyższe polecenie, jak i większość innych, można dopisać do pliku konfiguracyjnego wczytywanego w czasie inicjalizacji. W systemach klasy GNU/Linux i Unix plik .vimrc znajduje się w katalogu domowym użytkownika. W systemach MS-DOS i Win32 odpowiada mu _vimrc (zob. :h vimrc). Ograniczenia edytoraMimo swoich imponujących możliwości - zwłaszcza w zakresie automatycznego przetwarzania tekstu - Vim standardowo oferuje dość ograniczone wsparcie dla operacji na pionowych blokach. Przy czym o ile skopiowanie pionowego bloku tekstu nie jest żadnym problemem (w trybie VISUAL BLOCK, włączanym kombinacją Ctrl-V względnie Ctrl-Q w trybie symulowania klawiszy edytorów firmy Microsoft), to już zastąpienie takim blokiem w trybie REPLACE innego bloku z reguły nie przynosi spodziewanego rezultatu. Wynika to z faktu, że Vim w swej istocie pozostał edytorem wierszowym - silnym, ale nadającym się głównie do pisania kodu, więc niepraktycznym do zabawy np. grafiką ASCII (gdzie swobodne manipulacje na pionowych blokach tekstu wymagają traktowania ekranu raczej jak matrycy znaków niż zbioru wierszy). Z tego samego powodu nie należy do szczególnie wygodnych poruszanie się w pionie po długich, zawiniętych wierszach. Chyba że ustawimy to w pliku konfiguracyjnym. Należy umieścić poniższe linie: map <Down> g<Down> map <Up> g<Up> nmap j gj nmap k gk vmap j gj vmap k gk Jednakże ogromna konfigurowalność edytora i możliwość stworzenia skryptów zwiększających jego funkcjonalność powodują, że powyższe ograniczenia mogą być zlikwidowane. W vi klawiszom ruchu w kierunku pionowym odpowiadają litery: k (góra) oraz j (dół). Tak też jest w Vim-ie, co weteranom trybu tekstowego pozwala zachować np. w GNU/Linuksie przynajmniej część przyzwyczajeń nabytych przy pracy z vi na systemie Unix. Przykłady poleceńPodstawowe polecenia są identyczne jak w vi. Vim jednak nie byłby tym, czym jest, gdyby nie miał setek nowych. Poniżej przykłady tych najciekawszych i najbardziej użytecznych (w wersjach najkrótszych, co oznacza: najpraktyczniejszych). Ich pełnobrzmiące nazwy można poznać wpisując :h nazwa_polecenia Tryb NORMAL
Tryb ex
A oto para poleceń pomocna przy edycji Wikipedii na konsoli o zestawie znaków innym niż unikod (np. ISO-8859-2):
Vim, a viVim został wyposażony w wielokrotne cofanie dokonanych zmian (tzw. undo) - domyślnie aż tysiąckrotne, podczas gdy vi pozostał przy jednokrotnym. Możliwe stało się wreszcie przewijanie ekranu w poziomie, przydatne przy edycji wierszy dłuższych niż szerokość ekranu. Brak też jest obecnie ograniczeń (odczuwalnych) na długość wierszy, ich liczbę czy rozmiar pliku. Polecenia Vim-a i ich składnia są w pełni zgodne z vi, więc Vim oprócz tego samego przypisania klawiszy ma również system rejestrów (schowków) przeznaczonych do przechowywania fragmentów tekstu; tekst można kopiować do 26 rejestrów nazwanych dowolną literą alfabetu. Tak jak w vi, "wysoki" zakres A-Z służy do kopiowania tekstu między plikami. W Vim-ie jest to jednak znacznie wygodniejsze dzięki możliwości edycji pliku/plików w osobnych oknach (tzw. buforach). Vim potrafi znacznie więcej, oferując na przykład podświetlanie składni (prócz kilkuset "języków" programowania także dla HTML i CSS) oraz wsparcie dla narzędzi programistycznych takich jak ctags, make, CVS czy GCC. Z pozostałych usprawnień wymienić można między innymi: przeglądanie katalogów (w osobnym oknie także na konsoli tekstowej i bez opuszczania edytowanego pliku), dostęp do historii wiersza poleceń trybu Ex, budowanie rozszerzeń, makr, zmianę w przypisaniach klawiszy, zapisywanie/otwieranie pliku w postaci zaszyfrowanej oraz obsługa rozszerzonych wyrażeń regularnych. To ostatnie w stopniu zbliżonym do wyspecjalizowanych, uniksowych narzędzi. Chociaż Vim jest zasadniczo edytorem konsolowym, to istnieje wersja pod nazwą gvim, działająca w środowisku graficznym (również w systemach firmy Microsoft) W odróżnieniu od vi, Vim może pracować zarówno w sposób modalny jak i w trybie ciągłej edycji. Zobacz teżLinki zewnętrzne
|
|||||||||||||||||||||