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ę.

Konfiguracja Vima

Spis treści

  1. Co to jest ten Vim?
  2. Gdzie jest trzymana konfiguracja?
  3. Ustawienia, bez których nie da się obejść
  4. Opcje mniej niezbędne, ale przydatne
  5. Gdzie szukać informacji o ustawieniach edytora Vim

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:

 

  1. syntax on – ustawia automatyczne podświetlanie składni na podstawie typu pliku
  2. autoindent – przy nowej linii używaj tego samego wcięcia co w obecnej
  3. tabstop (ts) – na ile spacji powinien być wyświetlany znak tabulacji
  4. softtabstop (sts) – ile spacji wstawiać zamiast tabulatora (patrz: expandtab)
  5. shiftwidth (sw) – o ile pozycji przesuwać wcięcie bloku
  6. 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>
  7. encoding – kodowanie (zestaw znaków, ang. charset) wewnętrzne edytora; najlepiej ustawić na utf-8, nawet jak termencoding jest np. iso-8859-2
  8. 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
  9. 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
  10. 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
  1. ruler – ustawienie linii z informacjami o otwartym pliku
  2. rulerformat – ustawienie danych wyświetlanych w tej linii
  3. set number – włączenie numerowania linijek
  4. incsearch – wyświetlaj wyniki wyszukiwania w trakcie wpisywania
  5. ignorecase – przy wyszukiwaniu ignoruj wielkość liter
  6. smartcase – nie ignoruj wielkości liter po ustawieniu ignorecase, jeśli została użyta przynajmniej jedna wielka litera
  7. set list – ustawienie pokazywania znaków tabulacji oraz spacji na końcu linijki; przydatne do wspomagania przy utrzymywaniu czystego kodu
  8. set listchars=trail:_,tab:>- – ustawienie znaków, które będą wyświetlane zamiast spacji i znaku tabulacji
  9. set backspace=2 – ustawienie sposobu traktowania klawiszy Backspace, Delete, oraz skrótów Ctrl+W, Ctrl+U
  10. 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)
  11. set history=1000 – ile komend wywoływanych w trybie komend (command mode) będzie pamiętanych
  12. set backup – ustawienie tworzenia kopii pliku przed jego zapisem
  13. set wildmenu – włączenie podpowiedzi dla komend systemowych i dopełnień nazw plików (np. przy komendach :sp)
  14. 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 ;)