vi(1) to standardowy Unix'owy edytor tekstów. W dzisiejszych czasach opanowanie go nie jest już tak istotne jak niegdyś. Warto jednak się z nim zapoznać gdyż ma on wielkie możliwości. Istnieje kilka wersji (lub jak kto woli klonów) vi. Są nimi: elvis, vile, oraz vim. Przynajmniej jeden z nich jest dostępny na chyba wszystkich rodzajach Unix'a i oczywiście Linux'a. Każda z wymienionych wersji edytora zawiera podstawowy zestaw komend, więc wystarczy zapoznać się z jednym z nich a opanowanie kolejnego nie powinno sprawić problemów. Różnorodność edytorów dostarczanych w dzisiejszych czasach z dystrybucjami Linux'a i Unix'a spowodowała znaczny spadek zainteresowania programem vi. Wciąż jednak pozostaje on najbardziej uniwersalnym edytorem na platformach Unix'owych.
vi zawiera znaczną liczbę udogodnień włączając w to podświetlanie składni, formatowanie kodu, bardzo rozbudowany mechanizm znajdź-i-zamień, makra i wiele wiele więcej. Wszystko to czyni go szczególnie atrakcyjnym dla programistów, webmasterów itp. Dla administratorów istotna jest możliwość integracji z powłoką.
W Slackware domyślną wersją vi jest elvis. Inne klony tj. vim oraz gvim są również dostępne po instalacji odpowiednich pakietów. gvim to X'owa wersja vim'a z paskiem menu i okienkami dialogowymi.
Edytor vi może być uruchomiony z lini poleceń na kilka sposobów. Najprostszy z nich to:
% vi |
W ten sposób zostanie uruchomiony vi z pustym buforem. Edytor w tym momencie jest w trybie wydawania poleceń (“command mode”). Więcej na temat trybów dowiesz się w Sekcja 16.2. Aby opuścić vi należy wpisać:
:q |
Zakładając, że nie dokonano żadnych zmian w pliku nastąpi zakończenie pracy i wyjście. Gdyby jednak plik został zmodyfikowany, edytor wyświetli ostrzeżenie i podpowie jak zlekceważyć wprowadzone zmiany. Wykonuje się to zwykle poprzez dodanie wykrzyknika po “q”:
:q! |
Wykrzyknik oznacza w większości przypadków wymuszenie akcji. Ta i inne kombinacje klawiszy zostaną omówione szczegółowo w dalszej części rozdziału.
vi można uruchomić również z już istniejącym plikiem. Na przykład aby otworzyć /etc/resolv.conf należy wywołać:
% vi /etc/resolv.conf |
Edytor może być również otwarty na konkretnej linijce istniejącego pliku. Jest to szczególnie użyteczne dla programistów. W informacji o błędzie często podany jest numer linii, na której program poległ. Na przykład można wystartować vi na linii 47 pliku /usr/src/linux/init/main.c:
% vi +47 /usr/src/linux/init/main.c |
vi wyświetli podany plik i umieści kursor na pożądanej linijce. W przypadku gdy podana zostanie linijka spoza końca pliku edytor umieści kursor na ostatniej istniejącej. Jak wspomniano jest to szczególnie przydatne dla programistów, którzy unikają w ten sposób konieczności przeszukiwania pliku.