====== Vim ====== {{ https://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Vimlogo.svg/544px-Vimlogo.svg.png?128}} Jeden z najpopularniejszych edytorów tekstu w systemach [[unix|Unixowych]]. Vim jest [[edytor modalny|edytorem modalnym]], tzn. ma kilka trybów pracy. Najważniejsze z nich to NORMAL, VISUAL, INSERT, REPLACE. ===== Zmiana trybu pracy ===== Po uruchomieniu Vim zawsze znajduje się w trybie NORMAL. * ''ESC'' - przejście z dowolnego trybu do trybu NORMAL * '':'' - tryb Ex * ''R'' - tryb REPLACE * ''v'' - tryb VISUAL - w tym trybie można zaznaczać, kopiować, duplikować i wklejać tekst * ''i'' - tryb INSERT - w tym trybie można wprowadzać tekst. Do trybu INSERT przechodzimy także po wykonaniu poleceń takich jak ''o'' (nowa linia), ''a'' (append). ===== Rozpoczynanie pracy ===== {{ http://www.viemu.com/vi-vim-cheat-sheet.gif?256}} * ''vi nazwa_pliku.txt'' - otwarcie/założenie pliku * ''vi +5 nazwa_pliku.txt'' - otwarcie pliku z kursorem ustawionym w 5-tej linii * ''vi +/tekst nazwa_pliku.txt'' - otwarcie pliku z kursorem ustawionym w linii zawierającej "tekst" ===== Tryb poleceń (Ex) ===== * '':w'' - zapisanie zmian w pliku * '':q'' - wyjście z programu * '':vi nazwa_pliku'' - otwarcie pliku do edycji * '':view nazwa_pliku'' - otwarcie pliku w trybie tylko do odczytu * ''/xxx'' - wyszukanie ciągu liter w tekście, gdzie xxx to szukany napis; ''n'' - przejście do kolejnego wystąpienia ===== Tryb VISUAL ===== Do trybu VISUAL wchodzimy z trybu NORMAL naciskając klawisz ''v''. Teraz za pomocą strzałek możemy zaznaczać tekst. Jeżeli zamiast ''v'' naciśniemy ''Ctrl+v'' będziemy w trybie zaznaczania kolumnowego. * ''y'' - skopiowanie zaznaczonego tekstu * ''p'' - wklejenie zaznaczonego tekstu ===== Edycja tekstu ===== W trybie NORMAL naciskamy klawisz: * ''i'' - insert (wstawianie przed kursorem) * ''a'' - append (wstawianie za kursorem) * ''I'' - insert na początku wiersza * ''A'' - append na końcu wiersza * ''o'' - nowy wiersz pod kursorem * ''O'' - nowy wiersz nad kursorem * ''x'' - usunięcie znaku pod kursorem * ''X'' - usunięcie znaku przed kursorem * ''dd'' - usunięcie wiersza * ''D'' lub ''$d'' - usunięcie tekstu od kursora do końca linii * ''dG'' - usunięcie tekstu od bieżącej linii do końca pliku * ''dg'' - usunięcie tekstu od bieżącej linii do początku pliku * ''u'' - cofnięcie ostatniej zmiany ===== Poruszanie się po tekście ===== W trybie NORMAL (ten po naciśnięciu ) naciskamy klawisz: * ''h'' - przejście w lewo o 1 znak * ''j'' - przejście w dół o 1 linijkę * ''k'' - przejście w górę o 1 linijkę * ''l'' - przejście w prawo o 1 znak * ''w'' - przejście do następnego słowa (word) (1 słowo w prawo) * ''b'' - przejście do poprzedniego słowa (word) (1 słowo w lewo) * ''e'' - przejście do końca tego słowa (word) w prawo * ''W'' - przejście do następnego SŁOWA (WORD) (1 SŁOWO w prawo) * ''B'' - przejście do poprzedniego SŁOWA (WORD) (1 SŁOWO w lewo) * ''E'' - przejście do końca tego SŁOWA (WORD) w prawo * ''/szukana_fraza'' - wyszukanie i przejście do szukanej frazy Przykład różnicy między słowo (word) a SŁOWO (WORD)\\ * Na zasadzie kolejnych pozycji kursora przy klikaniu ''w'':\\ ''m''am ''k''ota''-''''i''''-''''p''sa'','' ''l''alala\\ * Na zasadzie kolejnych pozycji kursora przy klikaniu ''W'':\\ ''m''am ''k''ota-i-psa, ''l''alala\\ \\ ===== Okna ===== W trybie NORMAL (ten po naciśnięciu ) wciskamy klawisz(e): * ''+s'' - dzielimy okno do układu 2x1 (wiersze x kolumny) * ''+v'' - dzielimy okno do układu 1x2 (wiersze x kolumny) \\ Okna domyślnie wyświetlają ten sam plik.\\ Można teraz np. w 1 oknie iść na górę pliku (''gg'') i sprawdzić zdefiniowane stałe (const-y)\\ tak aby móc je poprawnie wpisać w oknie nr 2 (tu kursor wciąż stoi na swoim poprzednim miejscu). \\ * '':q'' zamykanie danego okna * ''+h'' - przejście kursorem do okna po lewej * ''+l'' - przejście kursorem do okna po prawej * ''+j'' - przejście kursorem do okna poniżej * ''+k'' - przejście kursorem do okna powyżej ===== Kopiowanie tekstu ===== * ''yy'' - skopiowanie całego wiersza do schowka * ''p'' - wklejenie linii pod kursorem * ''yw'' - skopiowanie słowa ===== Łączenie poleceń ===== Naciskając sekwencję klawiszy, można utworzyć bardziej złożone polecenie. Oto przykłady. * ''y3w'' - skopiowanie trzech słów * ''10y'' - skopiowanie dziesiątej linii * ''d2w'' - usunięcie dwóch słów * ''7p'' - wklejenie skopiowanego tekstu siedem razy * ''5dd'' - usunięcie pięciu linii * ''10G'' - przeniesienie kursora do dziesiątego wiersza