понедельник, 5 марта 2007 г.

vim config


Vim это наше все. Сравнивать его с Visual studio будет не в пользу последней. Подсветка синтаксиса, окна, табы, буферы, метки, стеки, автодополнение, интеграция с svn и и тп и тд..

Впрочем хвалить его не собираюсь, кто пользовался уже знает, приведу просто свой конфиг мало ли кому поможет

На скриншоте открыт всего файл С для редактирования, подсвечен последний поиск (tmp), слева со списком функций, и я нажал cntrl-space для автодополнения функции, пока я бегаю курсором выбирая нужную сверху открылось мальнткое окошко показывающее информацию о функции, когда я закончу набор выбора функции - исчезнет само.

На втором скриншоте - так выглядит сравнение файла с предыдущей ревизией в svn. Показывает различия визуально.

Ну и самое приятное что работает это из любой консоли, на любой платформе и тд.

файл .vimrc
set ru
set si # - smart insert типа автоматом отступы в зависимости от типа файла и текущего синтаксиса
set softtabstop=3
set shiftwidth=3
set tabstop=3
set sta
set acd # Авто смена каталога
set ch=2
set ls=2
syntax on
colorscheme zellner
set incsearch # инкруметный поиск по мере набора поисковой фразы regexp included!
map :tabprevious # это для табов
map :tabnext
map :tabnew
map :tabclose
map :mksession! ~/.vim/customSession.vim # замапили сохранение ссесии
set tabstop=3
autocmd VimLeavePre * silent mksession! ~/.vim/lastSession.vim # На всякий случай автосохранение сессии в другой файл
map :nohlsearch # вкл.выкл подсвеченные слова с последнего поиска
noremap :set hlsearch!
noremap :Tlist # плагин Tlist показывает дерево функций кода
:map :set si! si? # Быстрое отключение smartinsert на случай вставить из буфера большой текст - что б форматирование не съехало
set completeopt+=longest # эти опции для автодополнения функций перменных по cntrl-space + создается маленькое окошко сверху для показа определения функции посл набора завершающейся скобки оно закрывается.
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplModSelTarget = 1
imap

func CloseScratch()
if bufname("%")==""
:exe ":bdelete ".bufnr("%")
endif
endfunc

inoremap ) :windo exe ":call CloseScratch()"a)