Vim – podstawowa konfiguracja
Opis najbardziej potrzebnych ustawień Vima, jak również kilku bardziej zaawansowanych. Jeśli właśnie się przesiadasz na Vima i jeszcze nie wiesz jak skonfigurować, to trafiłeś na właściwą stronę.
Spis treści
Co to jest ten Vim?
Jedni uważają, że to najdziwniejszy i najmniej przyjazny edytor jaki powstał. Dla innych jest najwygodniejszy i najszybszy – wystarczy „tylko” zapoznać się z dostępnymi skrótami, ustawieniami i być może pluginami.
Dla mnie jest to zdecydowanie najlepszy edytor, natomiast bez poprawnej jego konfiguracji staje się rzeczywiście niewygodny :) Dlatego właśnie przedstawiam konfiguracje, która sprawi że zdecydowanie łatwiej będzie go używać.
Gdzie jest trzymana konfiguracja?
W systemach Unix-owych konfiguracja jest trzymana w katalogu domowym użytkownika, w pliku ~/.vimrc
(przy domyślnych ustawieniach). W systemie Windows, w pliku C:\Program Files\Vim\_vimrc
(również przy domyślnych ustawieniach podczas instalacji).
W Unixo-wych systemach, dodatkowo globalna konfiguracja jest trzymana w pliku /usr/share/vim/vimrc
(może zależeć od instalacji Vim-a).
Ustawienia, bez których nie da się obejść
Podstawowe ustawienia dotyczące używanego zestawu znaków, interpretacji znaków tabulacji:
" Aby wstawić komentarz w pliku konfiguracyjnym, zacznij linijkę od znaku "
syntax on
set autoindent
set ts=4
set sts=4
set sw=4
set expandtab
set encoding=utf-8
set fileencodings=usc-bom,utf-8,latin2
set termencoding=utf-8
set mouse=a
A teraz opis co jest co:
- syntax on – ustawia automatyczne podświetlanie składni na podstawie typu pliku
- autoindent – przy nowej linii używaj tego samego wcięcia co w obecnej
- tabstop (ts) – na ile spacji powinien być wyświetlany znak tabulacji
- softtabstop (sts) – ile spacji wstawiać zamiast tabulatora (patrz: expandtab)
- shiftwidth (sw) – o ile pozycji przesuwać wcięcie bloku
- expandtab (et) – po ustawieniu, przy wciśnięciu znaku tabulacji w trybie insert,zamiast znaku tabulacji będzie wstawiona odpowiednia ilość spacji (patrz: softtabstop); jeśli po ustawieniu chcesz wstawić znak tabulacji, należy użyć
ctrl+v<Tab>
- encoding – kodowanie (zestaw znaków, ang. charset) wewnętrzne edytora; najlepiej ustawić na utf-8, nawet jak termencoding jest np. iso-8859-2
- fileencodings – lista zestawów znaków, jakie będą sprawdzane przy wczytaniu pliku; jeśli na liście znajduje się latin2 i cp1250, to tylko pierwsze z nich będzie miało znaczenie
- termencoding – jeśli konsola jest poprawnie skonfigurowana, tego lepiej nie ustawiać; jeśli niepoprawnie – należy ustawić na takie kodowanie, w jakim znaki są wyświetlane
- mouse – ustawione na „a” – w trybach normal mode, insert mode, visual mode i command mode, będzie działać obaługa myszy, czyli klikanie i scrollowanie
Jak widać nie ma ich zbyt wiele, a ich ustawienie przydaje się codziennie. Na szczególną uwagę zasługuje fileencodings
. Dzięki takiemu ustawieniu, przy wczytaniu zostanie automatycznie wykryte, czy plik ma znaki w kodowaniu utf-8 czy iso-8859-2 (jeśli używasz Vima pod Windowsem, to zapewne warto ustawić usc-bom,utf-8,cp1250
Opcje mniej niezbędne, ale przydatne
W poprzednim punkcie przedstawione zostały tylko te opcje, które są niezbędne do podstawowej pracy w edytorze Vim. Oprócz tych podstawowych istnieje również wiele innych, z których kilka przedstawiam poniżej
set ruler
set rulerformat=%40(%y/%{&fenc}/%{&ff}%=%l,%c%V%5(%P%)%)
set number
set incsearch
set ignorecase
set smartcase
set list
set listchars=trail:_,tab:>-
set backspace=2
set synmaxcol=316
set history=1000
set backup
set wildmenu
autocmd BufReadPost * if line("'\"") && line("'\"") <= line("$") |
\ exe "normal `\"" | endif
- ruler – ustawienie linii z informacjami o otwartym pliku
- rulerformat – ustawienie danych wyświetlanych w tej linii
- set number – włączenie numerowania linijek
- incsearch – wyświetlaj wyniki wyszukiwania w trakcie wpisywania
- ignorecase – przy wyszukiwaniu ignoruj wielkość liter
- smartcase – nie ignoruj wielkości liter po ustawieniu
ignorecase
, jeśli została użyta przynajmniej jedna wielka litera - set list – ustawienie pokazywania znaków tabulacji oraz spacji na końcu linijki; przydatne do wspomagania przy utrzymywaniu czystego kodu
- set listchars=trail:_,tab:>- – ustawienie znaków, które będą wyświetlane zamiast spacji i znaku tabulacji
- set backspace=2 – ustawienie sposobu traktowania klawiszy Backspace, Delete, oraz skrótów Ctrl+W, Ctrl+U
- set synmaxcol=316 – określenie ile znaków będzie podświetlanych zgodnie ze składnią pliku; pomaga przy edycji plików z długimi liniami (np. XML/HTML jednolinijkowy)
- set history=1000 – ile komend wywoływanych w trybie komend (command mode) będzie pamiętanych
- set backup – ustawienie tworzenia kopii pliku przed jego zapisem
- set wildmenu – włączenie podpowiedzi dla komend systemowych i dopełnień nazw plików (np. przy komendach :sp)
- autocmd BufReadPost… – te dwie linie spowodują, że Vim zapamięta pozycję w pliku gdzie był ustawiony kursor przy ostatniej edycji, dzięki czemu po ponownym otwarciu, automatycznie przejdzie do tej pozycji
Gdzie szukać informacji o ustawieniach edytora Vim
W zasadzie wszystkie informacje są w pomocy edytora. Wystarczy w trybie komend wpisać help <komenda>
lub help <'opcja'>
, np. help 'backspace'
. Zostanie otworzone okienko dzielące biężące okno na pół, w którym wyświetli się pomoc. Po przeczytaniu wystarczy wpisać :q
i znów jesteśmy przy edycji pliku.
Jeśli zaczynasz pracę z Vimem, warto przejść przez kurs podstawowych skrótów, czyli vimtutor. W systemie Linux wystarczy uruchomić w konsoli vimtutor
, w systemie Windows przez menu Start/Uruchom, należy wpisać również vimtutor
i dać OK. W ten sposób łatwo nauczysz się podstatowych skrótów klawiszowych do poruszania się, kopiowania, wycinania i wklejania, szukania i zamieniania fraz na inne oraz to, co osobom korzystającym z Vima poraz pierwszy, sprawia największe trudności – wychodzeniu ;)