Pull to refresh

.vimrc, который всегда со мной

Reading time2 min
Views63K
Моему .vimrc уже больше восьми лет. Он помнит времена PentiumII, Debian Potato и gcc настолько древнего, что я уже и не помню его версии. Он развивался с пятой версии Vim, приобретал полезные фрагменты и избавлялся от ненужных. И вот внезапно захотелось поделиться с вами его содержимым. Весь файл я показывать пока не буду, лишь пройдусь по некоторым, на мой взгляд, интересным моментам.

Сохранность и доступность

Последнее время я храню его в svn на одном из своих хостов. На нужной мне машине я просто достаю его из репозитория и работаю:
$ cd ~
$ svn ls svn+ssh://svn.example.com/var/svn/repo/trunk/profile ./
.vimrc
vimrc
$ svn co svn+ssh://svn.example.com/var/svn/repo/trunk/profile ./

Раз и навсегда добавляем удобных настроек

Настроим кол-во символов пробелов, которые будут заменять \t
set tabstop=4
set shiftwidth=4
set smarttab

set et — включим автозамену по умолчанию

set wrap — попросим Vim переносить длинные строки

set ai — включим автоотступы для новых строк
set cin — включим отступы в стиле Си

Далее настроим поиск и подсветку результатов поиска и совпадения скобок
set showmatch
set hlsearch
set incsearch
set ignorecase


set lz — ленивая перерисовка экрана при выполнении скриптов

Показываем табы в начале строки точками
set listchars=tab:··
set list


Порядок применения кодировок и формата файлов

set ffs=unix,dos,mac
set fencs=utf-8,cp1251,koi8-r,ucs-2,cp866


Взаимодействие и элементы интерфейса

Я часто выделяю мышкой содержимое экрана в Putty, но перехват мышки в Vim мне иногда мешает. Отключаем функционал вне графического режима:
if !has('gui_running')
set mouse=
endif


Избавляемся от меню и тулбара:
set guioptions-=T
set guioptions-=m

В разных графических системах используем разные шрифты:
if has('gui')
colorscheme darkblue
if has('win32')
set guifont=Lucida_Console:h12:cRUSSIAN::
else
set guifont=Terminus\ 14
endif
endif


Пытаемся занять максимально большое пространство на экране. Как водится, по-разному на разных системах:
if has('gui')
if has('win32')
au GUIEnter * call libcallnr('maximize', 'Maximize', 1)
elseif has('gui_gtk2')
au GUIEnter * :set lines=99999 columns=99999
endif
endif


Опять же, системы сборки для разных платформ могут быть переопределены:
if has('win32')
set makeprg=nmake
compiler msvc
else
set makeprg=make
compiler gcc
endif


:wq
Tags:
Hubs:
+59
Comments70

Articles