Моему .vimrc уже больше восьми лет. Он помнит времена PentiumII, Debian Potato и gcc настолько древнего, что я уже и не помню его версии. Он развивался с пятой версии Vim, приобретал полезные фрагменты и избавлялся от ненужных. И вот внезапно захотелось поделиться с вами его содержимым. Весь файл я показывать пока не буду, лишь пройдусь по некоторым, на мой взгляд, интересным моментам.
Последнее время я храню его в svn на одном из своих хостов. На нужной мне машине я просто достаю его из репозитория и работаю:
Настроим кол-во символов пробелов, которые будут заменять \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

Сохранность и доступность
Последнее время я храню его в 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
