Решил выложить свои настройки vim'а, возможно кому то будет интересно.
Примечание: данный конфиг не является актуальным, свежий можете посмотреть здесь.
" ==============================================================================
" vim: fdm=marker fdc=2 foldlevelstart=0 sts=4 sw=4 tw=64 fileencoding=utf-8:
" Файл пользовательских настроек vim (7.3)
" Maintrainer: clericJ
"Text/Code Navigation
" F1 Help
" F2 Code Explorer
" F3 Find Next
" F4
"Explore Buffers and Files
" F5 Execute buffer
" F6 Buffer Explorer
" F7 List of Files in Directory
" F8 File Explorer
"Manipulate Windows and Buffers
" F9 Restore Last Session
" F10 Toggle Fullscreen
" F11 Close Current Window
" F12 Delete Current Buffer
" ==============================================================================
" Установленные плагины и их зависимости {{{1
" "taglist" просмотр списка тегов/навигатор по коду
" ( http://www.vim.org/scripts/script.php?script_id=273 )
" util: ctags.exe
"
" "themes"
" дополнительные темы
"
" "matrix"
" для входа в матрицу ввести команду :Matrix
" ( http://www.vim.org/scripts/script.php?script_id=1189 )
"
" "fencview"
" работа с кодировками/авто-определение кодировок
" ( http://www.vim.org/scripts/script.php?script_id=1708 )
" util: iconv.dll
"
" "NERD_commenter"
" работа с комментариями в коде
" ( http://www.vim.org/scripts/script.php?script_id=1218 )
"
" "NERD_Tree"
" просмотр файловой системы
" ( http://www.vim.org/scripts/script.php?script_id=1658 )
"
" "matchit"
" расширенная команда % для HTML, LaTX, ...
" ( http://www.vim.org/scripts/script.php?script_id=39 )
"
" "mru"
" показ последних открытых файлов
" ( http://www.vim.org/scripts/script.php?script_id=521 )
"
" "sessionman"
" удобное управление сессиями
" ( http://www.vim.org/scripts/script.php?script_id=2010 )
"
" "pyflakes"
" подсветка ошибок в коде на python на 'лету'
" ( http://www.vim.org/scripts/script.php?script_id=2441 )
" requires: python+
"
" "calendar"
" удобный календарь
" ( http://www.vim.org/scripts/script.php?script_id=52 )
"
" "fuzzyfinder"
" быстрый доступ к многим возможностям
" ( http://www.vim.org/scripts/script.php?script_id=1984 )
"
" "neocomplcache"
" улучшенное авто-завершение,
" авто-открытие списка авто-завершения, TextMate-like сниппеты
" ( http://www.vim.org/scripts/script.php?script_id=2620 )
" util: ctags.exe
"
" "ropevim"
" утилита для рефакторинга кода на python
" так-же включающая функции Code assist
" ( http://rope.sourceforge.net/ropevim.html )
" requires: python+
"
" "vcscommand"
" интеграция с системами контроля версий
" ( http://www.vim.org/scripts/script.php?script_id=90 )
"
" "css_color"
" Предпросмотр цветов в css файлах
" ( http://www.vim.org/scripts/script.php?script_id=2150 )
"
" "Mark"
" Подсветка всех слов в файле, которые совпадают с словом под курсором
" ( http://www.vim.org/scripts/script.php?script_id=2666 )
"
" "visualmark"
" Визуальная подсветка отметок в файле
" ( http://www.vim.org/scripts/script.php?script_id=1026 )
"
" "prettyprint"
" Печать переменных vim в более презентативном виде
" ( http://www.vim.org/scripts/script.php?script_id=2860 )
"
" "easytags"
" Автоматическая генерация и поддержание в актуальном состоянии
" файла с тэгами для ctags
" ( http://www.vim.org/scripts/script.php?script_id=3114 )
"
" "vimshell"
" Лучшая интеграция vim с системой (полноэкранный режим,
" открытие URL, фоновое выполнение системных команд)
" ( http://www.vim.org/scripts/script.php?script_id=3123 )
" }}}
" Замены стандартных файлов {{{
" syntax/python.vim заменен
"}}}
" Изменения стандартных файлов {{{
" "plugin/sourceExplorer.vim"
" - В нескольких местах в функции SrcExpl_UpdateTags изменён формат команды exe,
" вызывающий g:SrcExpl_updateTagsCmd:
" было
" exe "!" . g:SrcExpl_updateTagsCmd
" стало
" exe "silent!" . g:SrcExpl_updateTagsCmd
" Изменение нужно для того чтобы команда выполнялась без
" открытия окна терминала и не требовала нажатий Enter после
" выполнения, т.е. выполнялась в silent режиме
" - В функции SrcExpl_ColorExpr заменена строка:
" hi link SrcExpl_HighLight term=bold guifg=Black guibg=Magenta ctermfg=Black ctermbg=Magenta
" на
" hi link SrcExpl_HighLight Search
" замена нужна для нормального отображения подсвечиваемого
" слова в окне SourceExplorer
"
" "syntax/css.vim"
" В файл добавлен код плагина css_color
" ( http://www.vim.org/scripts/script.php?script_id=2150 )
" ==============================================================================
" "Primary" Приоритетные настройки {{{1
" ==============================================================================
let s:iswin = has('win32') || has('win64')
let s:lastsession_file = '~/lastsession.vim'
" Отключение совместимости с vi
set nocompatible
" Использовать англоязычное меню
set langmenu=en
if !has('python')
" Не загружать плагин, если в системе не установлен python
python << EOF
import vim
try:
import os
except ImportError:
vim.command('let let g:loaded_PyInteractive = 1')
EOF
endif
" ==============================================================================
" "Quick" Быстрые настройки {{{1
" ==============================================================================
" (0 - откл. 1 - вкл.)
" us - USer option
let s:us_folding = 0 " Свертывание участков кода
let s:us_autosaveses = 1 " Авто-сохранение сессий (загрузка посл. F6)
let s:us_linewrap = 1 " Перенос длинных строк
let s:us_scratch_buffer = 0 " Сделать из безымянного буфера scratch буфер
" ==============================================================================
" "Includes" Подключение доп.файлов настроек {{{1
" ==============================================================================
source $VIMRUNTIME/mswin.vim " Windows-like настройки
behave mswin
" ==============================================================================
" "Basic" Базовые настройки {{{1
" ==============================================================================
" Включение подсветки синтаксиса
syntax on
" Включение определения типов файлов
filetype on
filetype plugin on
filetype indent on
" Отключение оповещения морганием и звуком
set novisualbell
set t_vb=
set helplang=en,ru
" Переход на предыдущую/следующую строку
set backspace=indent,eol,start
" Перемещать курсор на следующую строку при нажатии на клавиши вправо-влево и пр.
set whichwrap+=<,>,[,]
" История команд
set history=150
" Максимальное количество изменений, которые могут быть отменены
set undolevels=5000
" Не создавать резервные копии файлов
set nobackup
" Кодировка по умолчанию
set encoding=utf-8
set fileencoding=utf-8
set fileencodings=utf-8,cp1251,cp866,koi8-r
set fileformat=unix " Формат файла по умолчанию
set fileformats=unix,dos,mac
" Не выгружать буфер, при переключении на другой
" Это позволяет редактировать несколько файлов в один и тот же момент без
" необходимости сохранения каждый раз когда переключаешься между ними
set hidden
set autoread " Включение автоматического перечтения файла при изменении
set autochdir " Автоматически устанавливать текущей, директорию отрытого файла
set browsedir=buffer " Начинать обзор с каталога текущего буфера
set confirm " Включение диалогов с запросами
" Опции авто-дополнения
set completeopt=longest,menuone
" Показывать все возможные кандидаты при авто-завершении команд
"set nowildmenu
set wildmode=list:longest,full
" Включение проверки орфографии, для русского и английского
set spelllang=ru_yo,en_us
"set spell
" Раскладка по умолчанию - английская
set iminsert=0
" Не перерисовывать окно при работе макросов
set lazyredraw
" ==============================================================================
" "View" Вид {{{1
" ==============================================================================
set ruler " Включение отображения позиции курсора (всё время)
set mouse=a " Подключение мыши
set mousehide " Прятать указатель во время набора текста
set cursorline " Включить подсветку текущей позиции курсора
set mousemodel=popup
if has('gui_running')
" Шрифт по умолчанию
if s:iswin
set gfn=DejaVu_Sans_Mono:h10:cRUSSIAN,consolas:h11
elseif has("gui_gtk2")
set gfn=DejaVu\ Sans\ Mono\ 10
endif
" Цветовая схема по умолчанию
colorscheme lucius
elseif s:iswin
colorscheme desert
else
colorscheme wombat256
endif
if s:iswin
" Установка высоты и ширины окна
winsize 90 30
endif
set guioptions+=b " Включение горизонтального скролл-бара
set guioptions-=T " Убрать toolbar
"set guioptions+=c " Отключение графических диалогов
"set guioptions-=e " Замена графических табов, текстовыми
set number " Включение отображения номеров строк
set shortmess+=I " Отключение приветственного сообщения
set showtabline=2 " Показывать по умлочанию строку со вкладками
set wildmenu " Показывать меню в командной строке
" для выбора вариантов авто-дополнения
set showmatch " Довсвечивать совпадающую скобку
set list " Подсвечивать некоторые символы
" Установка символов для подсветки
set list listchars=tab:▹·,trail:·,extends:»,precedes:«,nbsp:×
" ==============================================================================
" "Statusline" Статусная строка {{{1
" ==============================================================================
" Включение отображения незавершенных команд в статусной строке
set showcmd
" Всегда отображать статусную строку
set laststatus=2
hi StatusLineBufferNumber guifg=fg guibg=bg gui=bold
" Формат статусной строки
set stl+=\ %#StatusLineBufferNumber#
set stl+=[%n] " Номер буфера
set stl+=%*\
set stl+=%<
set stl+=%f " Имя файла загруженного в буфер
set stl+=%*\
set stl+=[%{&ft} " Тип файла, загруженного в буфер, например [cpp]
set stl+=\ \|\
set stl+=%{&fileencoding} " Кодировка файла
set stl+=\ \|\
set stl+=%{&ff}] " Формат файла
set stl+=%= " Выравнивание по правому краю
set stl+=\
set stl+=Line:
set stl+=\ %l/ " Номер строки
set stl+=%L " Количество строк в буфере
set stl+=\
set stl+=Col:
set stl+=\ %3v " Номер колонки
set stl+=\
set stl+=[%P] " Позиция текста, отображаемого в окне
" по отношению к началу файла в процентах
set stl+=%#error#%m%* " Флаг состояния несохранённых изменений
set stl+=%#warningmsg#%r%* " Флаг состояния 'только для чтения
" Показ нескольких типов предупреждений связанных с некорректной работой с
" отступами:
" "[mixed-indenting]" - В случае если в файле для задания отступов совместно
" используются пробелы и символы табуляции
" "[expandtab-disabled]" - Если опция expandtab отключена, но в файле для
" задания отступов применяются пробелы
" "[expandtab-enabled]" - Если опция expandtab активна, но для задания
" отступов используются символы табуляции
set statusline+=%#error#
set statusline+=%{StatuslineTabWarning()}
set statusline+=%*
" ==============================================================================
" "Indent" Отступы и табуляция {{{1
" ==============================================================================
set autoindent " Наследовать отступы предыдущей строки
"set smartindent " Включить 'умные' отступы
set expandtab " Преобразование таба в пробелы
set shiftwidth=4 " Размер табуляции по умолчанию
set softtabstop=4
set tabstop=4
" ==============================================================================
" "Search" Поиск текста {{{1
" ==============================================================================
set hlsearch " Включение подсветки слов при поиске
set incsearch " Использовать поиск по мере набора
" Использовать регистра-зависимый поиск (для
" регистра-независимого использовать \с в конце строки шаблона)
set noignorecase
" В режиме поиска используется раскладка, заданная по умолчанию
set imsearch=-1
" ==============================================================================
" "Folding" Свертывание блоков текста {{{1
" ==============================================================================
if s:us_folding
" Включение складок
set foldenable
" Ширина колонки
"set foldcolumn=4
" Опция задаёт значение опции 'foldlevel' в начале редактирования нового
" буфера в окне. Её полезно использовать для закрытия всех складок в
" файле в начале редактирования (при значении 0), закрытия некоторых
" складок (при значении от 1) или открывания всех складок (при значении 99)
set foldlevelstart=99
" Опция задаёт метод образования складок для текущего окна.
" Список возможных значений:
" manual Складки создаются вручную.
" indent Складка формируется строками с одинаковыми отступами.
" expr Уровень складки для строки задаётся значением опции 'foldexpr'.
" marker Складки задаются с использованием маркеров.
" syntax Складки задаются в соответствии с правилами подсветки синтаксиса.
" diff В складки помещаются неизменённые фрагменты текста
set foldmethod=indent
" Опция назначает максимальное количество вложений складок для методов
" "indent" и "syntax". Опция позволяет избежать создания слишком
" большого количества складок. Использование значения, большего, чем 20,
" не работает, поскольку встроенное ограничение количества вложений в
" складках соответствует 20
set foldnestmax=3
else
set foldmethod=manual
endif
" ==============================================================================
" "Sessions" Сессии {{{1
" ==============================================================================
" Опции сессий
set sessionoptions=curdir,buffers,folds,tabpages,winpos,help
" Опции помогают переносить файлы сессий с *nix`ов в ms-windows и наоборот
set sessionoptions+=unix,slash
if s:us_autosaveses
" Авто-сохранение сессии при закрытии vim`a (загрузка F6 в норм. режиме)
exec 'autocmd VimLeavePre * silent mksession!' . s:lastsession_file
endif
" ==============================================================================
" "LineWrap" Перенос длинных строк {{{1
" ==============================================================================
if s:us_linewrap
" Задать ширину строки
"set textwidth=79
if v:version >= 703
" Подсвечивать границы
set colorcolumn=80
endif
" Перенос по словам
set linebreak
else
" Запретить перенос строк
set nowrap
" показывать символы > или < если есть, что слева/справа строки
set listchars+=precedes:<,extends:>
endif
" ==============================================================================
" "User Shortcuts" Горячие клавиши {{{1
" ==============================================================================
" Открытие командной строки помощи (plugin-FuzzyFinder)
map <C-F1> :FufHelp<cr>
vmap <C-F1> <esc>:FufHelp<cr>
imap <C-F1> <esc>:FufHelp<cr>
" Список тегов (plugin-taglist)
nmap <F2> <Esc>:TlistToggle<cr>
vmap <F2> <esc>:TlistToggle<cr>
imap <F2> <esc><esc>:TlistToggle<cr>
" Найти следующее соответствие, все остальные так же подсвечиваются
nmap <F3> :set hlsearch<CR>n
vmap <F3> <esc> :set hlsearch<CR>n i
imap <F3> <esc> :set hlsearch<CR>n i
" Отключение подсведки найденных выражений
nmap <C-F3> :nohlsearch<CR>
imap <C-F3> <Esc>:nohlsearch<CR>
vmap <C-F3> <Esc>:nohlsearchi<CR>gv
" Выполнение/Открытие файла
nmap <F5> <esc>:call <SID>OpenFileInDefaultApp()<cr>
vmap <F5> <esc>:call <SID>OpenFileInDefaultApp()<cr>i
imap <F5> <esc><esc>:call <SID>OpenFileInDefaultApp()<cr>i
" Просмотр списка буферов (plugin-fuzzyfinder)
map <F6> :FufBuffer<cr>
vmap <F6> <esc>:FufBuffer<cr>
imap <F6> <esc>:FufBuffer<cr>
" Список файлов в текущей директории (plugin-fuzzyfinder)
nmap <F7> <esc>:FufFile<cr>
vmap <F7> <esc>:FufFile<cr>
imap <F7> <esc>:FufFile<cr>
"" Навигатор по коду (plugin-sourceExplorer)
"map <F8> :SrcExplToggle<cr>
"vmap <F8> <esc>:SrcExplToggle<cr>
"imap <F8> <esc>:SrcExplToggle<cr>
"" Обновление файла тегов для CodeExplorer (plugin-sourceExplorer)
"map <C-F8> :call g:SrcExpl_UpdateTags()<cr>
"vmap <C-F8> <esc>:call g:SrcExpl_UpdateTags()<cr>i
"imap <C-F8> <esc>:call g:SrcExpl_UpdateTags()<cr>i
" Обозреватель файлов (plugin-NERD_Tree)
map <F8> :NERDTreeToggle<cr>
vmap <F8> <esc>:NERDTreeToggle<cr>
imap <F8> <esc>:NERDTreeToggle<cr>
" Загрузка последней сессии (работает если в
" секции "Сессии" определена команда авто-сохранения)
if s:us_autosaveses
exec 'nmap <F9> <esc>:source ' . s:lastsession_file . '<cr>'
exec 'vmap <F9> <esc>:source ' . s:lastsession_file . '<cr>'
exec 'imap <F9> <esc>:source ' . s:lastsession_file . '<cr>i'
endif
" Полноэкранный режим (plugin-vimshell)
inoremap <F10> <C-o>:Fullscreen<CR>
nnoremap <F10> :Fullscreen<CR>
" Закрыть окно
map <F11> :close<cr>
vmap <F11> <esc>:close<cr>i
imap <F11> <esc>:close<cr>i
" Удалить буфер
map <F12> :bdelete<cr>
vmap <F12> <esc>:bdelete<cr>
imap <F12> <esc>:bdelete<cr>
" Создать базу данных для файлов в текущей директории
map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
" CTRL+Space для автозавершения (plugin-neocomplcache)
imap <C-Space> <C-X><C-U>
" Использование rope code assist, вместо omni completion
" для файлов python при нажатии CTRL+Space
" (plugin-ropevim)
""au FileType python imap <buffer> <C-space> <C-R>=RopeCodeAssistInsertMode()<cr>
" Добавление(Ctrl+Tab)/удаление(Ctrl+Shift+Tab) отступов
" работает только если выделить текст
map ]v [[V]]
"map <C-S-tab> [[V]]<
vmap <C-S-tab> <
"map <C-tab> [[V]]>
vmap <C-tab> >
" Раскрыть сниппет/переход по сниппету (plugin-neocomplcache)
imap <silent><C-j> <Plug>(neocomplcache_snippets_expand)
smap <silent><C-j> <Plug>(neocomplcache_snippets_expand)
" Поставить/убрать отметку перейти к следующей/предыдущей
" отметке (plugin-visualmark)
nmap mm <Plug>Vm_toggle_sign
nmap mn <Plug>Vm_goto_next_sign
nmap mp <Plug>Vm_goto_prev_sign
" Пометить/убрать все слова совподающие со словом под курсором (plugin-Mark)
nmap <silent>mw :call mark#MarkCurrentWord()<CR>
" Установка быстрой помощи по K для слова под курсором с помощью pydoc
" для файлов python (plugin-ropevim)
au FileType python nmap <buffer> <S-K> :call RopeShowDoc()<CR>
" Переход к определению для файлов python по gd выполняется с
" помощью rope (Plugin-ropevim)
au FileType python nmap <buffer> gd :call RopeGotoDefinition()<CR>
" Комбинации оставленные по умолчанию:
"
"vis \cc комментирование выделенного участка кода (plugin-NERD_commenter)
"vis \cu разкомментирование выделенного участка кода (plugin-NERD_commenter)
" ==============================================================================
" "Menu" Меню {{{1
" ==============================================================================
" Работа с макросами
menu Tools.Macro.Record<tab>qm qm
imenu Tools.Macro.Record<tab>qm <esc>qm
menu Tools.Macro.Stop<tab>q q
imenu Tools.Macro.Stop<tab>q <esc>q
menu Tools.Macro.Run\ Last<tab>@m <esc>@m
imenu Tools.Macro.Run\ Last<tab>@m <esc>@m
" Открытие файла программой связанной с файлом
menu <silent> Run.Run<tab>\<F5> :call <SID>OpenFileInDefaultApp()<cr>
imenu <silent> Run.Run<tab>\<F5> <esc>:call <SID>OpenFileInDefaultApp()<cr>i
" Получение командной строки
menu <silent> Run.Command\ Line\ Parameters\ \.\.\. :call <SID>GetCmdline()<cr>
imenu <silent> Run.Command\ Line\ Parameters\ \.\.\. <ESC>:call <SID>GetCmdline()<cr>i
"Открытие/закрытие окна taglist (plugin-taglist)
menu <silent> Plugin.Tag\ List<tab><F2> :TlistToggle<cr>
imenu <silent> Plugin.Tag\ List<tab><F2> <ESC>:TlistToggle<cr>i
" Открытие/закрытие окна NERD_Tree (plugin-NERD_Tree)
menu <silent> Plugin.File\ Explorer<tab><F8> :NERDTreeToggle<cr>
imenu <silent> Plugin.File\ Explorer<tab><F8> <ESC>:NERDTreeToggle<cr>
" Меню плагина Fuzzy Finder (plugin-fuzzyFinder)
menu <silent> Plugin.Fuzzy\ Finder.Buffer<tab><F6> <ESC>:FufBuffer<cr>
imenu <silent> Plugin.Fuzzy\ Finder.Buffer<tab><F6> <ESC>:FufBuffer<cr>
menu <silent> Plugin.Fuzzy\ Finder.File<tab><F7> <ESC>:FufFile<cr>
imenu <silent> Plugin.Fuzzy\ Finder.File<tab><F7> <ESC>:FufFile<cr>
menu <silent> Plugin.Fuzzy\ Finder.Dir <esc>:FufDir<cr>
imenu <silent> Plugin.Fuzzy\ Finder.Dir <esc>:FufDir<cr>
menu <silent> Plugin.Fuzzy\ Finder.MRU-File <esc>:FufMruFile<cr>
imenu <silent> Plugin.Fuzzy\ Finder.MRU-File <esc>:FufMruFile<cr>
menu <silent> Plugin.Fuzzy\ Finder.MRU-Command <esc>:FufMruCmd<cr>
imenu <silent> Plugin.Fuzzy\ Finder.MRU-Command <esc>:FufMruCmd<cr>
menu <silent> Plugin.Fuzzy\ Finder.Bookmark <esc>:FufBookmark<cr>
imenu <silent> Plugin.Fuzzy\ Finder.Bookmark <esc>:FufBookmark<cr>
menu <silent> Plugin.Fuzzy\ Finder.Tag <esc>:FufTag<cr>
imenu <silent> Plugin.Fuzzy\ Finder.Tag <esc>:FufTag<cr>
menu <silent> Plugin.Fuzzy\ Finder.Tagged\ File <esc>:FufTaggedFile<cr>
imenu <silent> Plugin.Fuzzy\ Finder.Tagged\ File <esc>:FufTaggedFile<cr>
menu <silent> Plugin.Fuzzy\ Finder.Jump\ List <esc>: FufJumpList<cr>
imenu <silent> Plugin.Fuzzy\ Finder.Jump\ List <esc>: FufJumpList<cr>
menu <silent> Plugin.Fuzzy\ Finder.Change\ List <esc>: FufChangeList<cr>
imenu <silent> Plugin.Fuzzy\ Finder.Change\ List <esc>: FufChangeList<cr>
menu <silent> Plugin.Fuzzy\ Finder.Quickfix <esc>: FufQuickfix<cr>
imenu <silent> Plugin.Fuzzy\ Finder.Quickfix <esc>: FufQuickfix<cr>
menu <silent> Plugin.Fuzzy\ Finder.Line <esc>: FufLine<cr>
imenu <silent> Plugin.Fuzzy\ Finder.Line <esc>: FufLine<cr>
menu <silent> Plugin.Fuzzy\ Finder.Help<tab><Ctrl-F1> <ESC>: FufHelp<cr>
imenu <silent> Plugin.Fuzzy\ Finder.Help<tab><Ctrl-F1> <ESC>: FufHelp<cr>
" Загрузка последней сессии
" (работает если в секции "Сессии" определена команда авто-сохранения)
if s:us_autosaveses
exec 'menu File.Load\ Last\ Session<tab><F6> :source'.s:lastsession_file.'<cr>'
exec 'imenu File.Load\ Last\ Session<tab><F6> :source'.s:lastsession_file.'<cr>'
endif
" Переключение окна календаря (plugin-calendar)
menu .990 Plugin.Calendar <esc>:Calendar<cr>
imenu .990 Plugin.Calendar <esc>:Calendar<cr>
menu .998 Plugin.-usrsep99- :
" Обновление плагинов (plugin-getscript)
amenu .999 Plugin.Check\ Updates <esc>:GetLatestVimScripts<cr>
" Полноэкранный режим (plugin-vimshell)
amenu .998 Window.-usrsep99- :
amenu .999 Window.Toggle\ Fullscreen<tab><F10> <esc>:Fullscreen<cr>
" ==============================================================================
" "Popup-menu" Всплывающее меню {{{1
" ==============================================================================
" ( plugin-vimshell )
vmenu .1 PopUp.Open <esc> :call xolox#shell#open_cmd(GetSelection())<cr>
vmenu .1 PopUp.-Usrsep1- :
amenu PopUp.-Usrsep1- :
" Работа с метками (plugin-visualmark)
nmenu PopUp.Mark.Set\ Mark<tab>mm <esc>mm
" Перемещение по меткам (plugin-visualmark)
nmenu PopUp.Mark.Next\ Mark<tab>mn <esc>mn
nmenu PopUp.Mark.Prev\ Mark<tab>mp <esc>mp
amenu PopUp.Mark.-Usrsep1- :
" Пометить/убрать все слова совподающие со словом под курсором (plugin-Mark)
imenu PopUp.Mark.Mark\ Words<tab>mw <esc>mw
nmenu PopUp.Mark.Mark\ Words<tab>mw <esc>mw
" Перемещение по меткам (plugin-Mark)
nmenu PopUp.Mark.Next\ Word<tab>\\* <esc>\*
imenu PopUp.Mark.Next\ Word<tab>\\* <esc>\*
" Переключение всплывающего меню neocomplcache
" (plugin-neocomplcache)
"nmenu PopUp.Toggle\ Neo\ PopUp\ menu :NeoComplCacheToggle<cr>
"imenu PopUp.Toggle\ Neo\ PopUp\ menu <esc>:NeoComplCacheToggle<cr>i
" Комментирование/раз комментирование участков текста
" (plugin-NERDCommenter)
nmenu PopUp.Source\ Code.Comment :call NERDComment(0, "alignLeft")<CR>
vmenu PopUp.Source\ Code.Comment <ESC>:call NERDComment(1, "alignLeft")<CR>
nmenu PopUp.Source\ Code.Uncomment :call NERDComment(0, "uncomment")<CR>
vmenu PopUp.Source\ Code.Uncomment <ESC>:call NERDComment(1, "uncomment")<CR>
nmenu PopUp.Source\ Code.Toggle :call NERDComment(0, "toggle")<CR>
vmenu PopUp.Source\ Code.Toggle <ESC>:call NERDComment(1, "toggle")<CR>
vmenu PopUp.Source\ Code.-Usrsep1- :
" Добавление/удаление отступов к участкам кода
" (соотв. горячие клавиши клавиши должны быть определенны)
"nmenu <silent> PopUp.Source\ Code.Indent\ Block<tab><Ctrl-Tab> <C-tab>
vmenu <silent> PopUp.Source\ Code.Indent\ Block<tab><C-Tab> <C-tab>
"nmenu <silent> PopUp.Source\ Code.Dedent\ Block<tab><C-S-Tab> <C-S-tab>
vmenu <silent> PopUp.Source\ Code.Dedent\ Block<tab><C-S-Tab> <C-S-tab>
nmenu PopUp.Util.Context\ Help<tab><S-k> <S-k>
vmenu PopUp.Util.Context\ Help<tab><S-k> <esc><S-k>
" Открыть файл, в качестве имени используется слово под курсором
nmenu PopUp.Util.Open\ File\ Under\ Cursor<tab>gf gf
vmenu PopUp.Util.Open\ File\ Under\ Cursor<tab>gf gf
nmenu PopUp.Util.Jump\ Tag\ Under\ Cursor<tab><C-]> g<C-]>
vmenu PopUp.Util.Jump\ Tag\ Under\ Cursor<tab><C-]> g<C-]>
" Удалить лишние пробельные символы
nmenu <silent> PopUp.Util.Clean\ Extra\ Spaces :call <SID>TrimWhiteSpace()<CR>
vmenu PopUp.Util.-Usrsep3- :
" Изменение регистра символов
vmenu PopUp.Util.Upper\ Case<tab>U U
vmenu PopUp.Util.Lower\ Case<tab>u u
vmenu PopUp.Util.Swap\ Case<tab>~ ~
au MenuPopup * call ToggleFTContextMenu("python","menu","PopUp.-Usrsep4-",":")
" Показ документации по объекту python над которым находится курсор
" (plugin-ropevim)
au MenuPopup * call ToggleFTContextMenu("python","nmenu","PopUp.Show\\ Documentation<tab><S-k>","RopeShowDoc()")
au MenuPopup * call ToggleFTContextMenu("python","imenu","PopUp.Show\\ Documentation><S-k>","RopeShowDoc()")
" Поиск места определения объекта под курсором (plugin-ropevim)
au MenuPopup * call ToggleFTContextMenu("python","imenu","PopUp.Goto\\ Definition<tab>gd","RopeGotoDefinition()")
au MenuPopup * call ToggleFTContextMenu("python","nmenu","PopUp.Goto\\ Definition<tab>gd","RopeGotoDefinition()")
" Поиск всех мест где используется объект, находящийся под
" курсором (plugin-ropevim)
au MenuPopup * call ToggleFTContextMenu("python","imenu","PopUp.Find\\ Occurrences","RopeFindOccurrences()")
au MenuPopup * call ToggleFTContextMenu("python","nmenu","PopUp.Find\\ Occurrences","RopeFindOccurrences()")
" Выполнить выделенный код (plugin-pyinteractive)
au MenuPopup * call ToggleFTContextMenu("python","vmenu","PopUp.Evaluate", "pyinteractive#EvaluateSelected(visualmode())")
" ==============================================================================
" "Plugin.TList" {{{1
" ==============================================================================
let g:Tlist_Show_Menu = 0 " Показывать меню (0-выкл/1-вкл)
let g:Tlist_Show_One_File = 1 " Показывать список тегов только из текущего файла
let g:Tlist_Enable_Fold_Column = 0 " Показывать колонку свёртки (folding)
" ==============================================================================
" "Plugin.NERDTree" {{{1
" ==============================================================================
" Установить положение окна NERDTree, "left" или "right"
let NERDTreeWinPos = 'right'
let NERDTreeShowBookmarks = 1
let NERDTreeIgnore = ['\~$', '*.pyc', '*.pyo']
let NERDChristmasTree = 0
" ==============================================================================
" "Plugin.SourceExplorer" {{{1
" ==============================================================================
" Установка ширины окна SourceExplorer
let g:SrcExpl_winHeight = 8
" Интервал в миллисекундах (ms) для следующего обновления окна
let g:SrcExpl_refreshTime = 100
" Установка клавиши отвечающей за переход
" определению, по умолчанию "Enter"
let g:SrcExpl_jumpKey = "<ENTER>"
" Установка клавиши отвечающий за обратный переход от
" определения, назад к коду, по умолчанию "Space"
let g:SrcExpl_gobackKey = "<SPACE>"
" // In order to Avoid conflicts, the Source Explorer should know what plugins
" // are using buffers. And you need add their bufname into the list below
" // according to the command ":buffers!"
let g:SrcExpl_pluginList = [
\ "__Tag_List__",
\ "_NERD_tree_",
\ "Source_Explorer"
\ ]
" // Enable/Disable the local definition searching, and note that this is not
" // guaranteed to work, the Source Explorer doesn't check the syntax for now.
" // It only searches for a match with the keyword according to command 'gd'
let g:SrcExpl_searchLocalDef = 1
" Включение опции обновления файла тегов во время открытия окна
" Source Explorer
let g:SrcExpl_isUpdateTags = 1
" Параметры вызова ctags
let g:SrcExpl_updateTagsCmd = "ctags --sort=foldcase -R ."
" Автоматическое обновление файла тегов, после сохранения текущего файла
autocmd BufWritePost * :execute "silent!" . g:SrcExpl_updateTagsCmd
" ==============================================================================
" "Plugin.MRU" {{{1
" ==============================================================================
" Задание количества отображаемых в меню файлов
let g:MRU_Max_Entries = 10
" ==============================================================================
" "Plugin.GetLastestVimScripts" {{{1
" ==============================================================================
" Отключение авто-инсталляции скачанных скриптов
let g:GetLatestVimScripts_allowautoinstall= 0
" ==============================================================================
" "Plugin.neocomplcache" {{{1
" ==============================================================================
let g:neocomplcache_enable_at_startup = 1
let g:neocomplcache_min_syntax_length = 3
let g:neocomplcache_enable_ignore_case = 0
" Если не выставить эту опцию то вырезание а затем вставка (в insert mode)
" через виндовые хоткеи страшно глючит
let g:neocomplcache_disable_select_mode_mappings = 1
" Включение/отключение автоматики Активация по Ctrl+Space
let g:neocomplcache_disable_auto_complete = 0
" ==============================================================================
" "Plugin.ropevim" {{{1
" ==============================================================================
let g:ropevim_vim_completion = 1
" ==============================================================================
" "Plugin.pythoncyntax" {{{1
" ==============================================================================
" Настройка подсветки синтаксиса для python (работает для
" расширенного syntax файла python)
let g:python_highlight_all = 1
let g:python_highlight_indent_errors = 0
let g:python_highlight_space_errors = 0
let g:python_highlight_doctests = 0
" ==============================================================================
" "Plugin.tohtml" {{{1
" ==============================================================================
let g:html_use_css = 1 " Использовать CSS1
let g:html_number_lines = 0 " При генерации не добавлять номера строк
let g:use_xhtml = 1 " Использовать XHTML
" ==============================================================================
" "Plugin.Calendar" {{{1
" ==============================================================================
let g:calendar_monday = 1 " Неделя начинается с понедельника
" ==============================================================================
" "Plugin.vimshell" {{{1
" ==============================================================================
" Отключение клавиатурных привязок плагина
let g:shell_mappings_enabled = 0
" ==============================================================================
" "Functions" Пользовательские функции {{{1
" ==============================================================================
let s:cmdline = ""
" Открытие файла приложением определённым по умолчанию
function! s:OpenFileInDefaultApp()
if s:cmdline == ""
execute '!"%"'
"execute 'call system(shellescape(expand("<cfile>") ' . s:cmdline . '))'
else
execute '!"% ' . s:cmdline . '"'
endif
endfunction
" Получение от пользователя командной строки с которой будет запускаться
" скрипт
function! <SID>GetCmdline()
let s:cmdline=inputdialog("Enter command line parameters:", s:cmdline, s:cmdline)
endfunction
" Регистрация\удаление контекстного меню для конкретного типа файла
" lang (str) - тип файла (например xml)
" menucommand (str) - команда меню (например imenu)
" menuitem (str) - название пункта меню
" action (str) - функция выполняющая действие при
" активации пункта меню
function! ToggleFTContextMenu(lang, menucommand, menuitem, action)
let command = a:menucommand . " " . a:menuitem . " <ESC>:call " . a:action . "<CR>"
if &filetype == a:lang
execute command
else
execute "silent! aunmenu " . a:menuitem
endif
endfunction
" Удаление лишних пробелов в файле
function! <SID>TrimWhiteSpace()
normal ma
:retab
:%s/\s\+$//eg
normal 'a
endfunction
" Функция возвращает выделенный текст
function! GetSelection()
" "unused"
let l:line = getline("'<")
let l:line = strpart(l:line, col("'<") - 1, col("'>") - col("'<") + 1)
return l:line
endfunction
"recalculate the tab warning flag when idle and after writing
autocmd cursorhold,bufwritepost * unlet! b:statusline_tab_warning
" Функция возвращает "[mixed-indenting]" если для отступов в
" файле совместно используются пробелы и символы табуляции.
" Если же выставлена опция "expandtab" и в файле присутствуют
" символы табуляции то возвращаемое значение будет "[expandtab-enabled]".
" Так же в противоположном случае: если опция "expandtab" не задана
" но в файле для отступов используются пробелы возвращаемым
" значением будет "[expandtab-disabled]". В остальных случаях
" результатом функции будет пустая строка
function! StatuslineTabWarning()
if !exists("b:statusline_tab_warning")
let b:statusline_tab_warning = ''
if !&modifiable
return b:statusline_tab_warning
endif
let tabs = search('^\t', 'nw') != 0
"find spaces that arent used as alignment in the first indent column
let spaces = search('^ \{' . &ts . ',}[^\t]', 'nw') != 0
if tabs && spaces
let b:statusline_tab_warning = '[mixed-indenting]'
elseif (spaces && !&expandtab)
let b:statusline_tab_warning = '[expandtab-disabled]'
elseif (tabs && &expandtab)
let b:statusline_tab_warning = '[expandtab-enabled]'
else
let b:statusline_tab_warning = ''
endif
endif
return b:statusline_tab_warning
endfunction
" Сделать из безымянного буфера scratch буфер
if s:us_scratch_buffer
augroup vimrc-scratch-buffer
autocmd!
autocmd BufEnter * call s:scratch_buffer()
autocmd FileType qfreplace autocmd! vimrc-scratch * <buffer>
function! s:scratch_buffer()
if exists('b:scratch_buffer') || bufname('%') != '' || &l:buftype != ''
return
endif
let b:scratch_buffer = 1
setlocal buftype=nofile nobuflisted noswapfile bufhidden=hide
augroup vimrc-scratch
autocmd! * <buffer>
autocmd BufWriteCmd <buffer> call s:scratch_on_BufWriteCmd()
augroup END
endfunction
function! s:scratch_on_BufWriteCmd()
silent! setl buftype< buflisted< swapfile< bufhidden< nomodified
autocmd! vimrc-scratch * <buffer>
unlet! b:scratch_buffer
execute 'saveas' . (v:cmdbang ? '!' : '') ' <afile>'
filetype detect
endfunction
augroup END
endif
"function! PythonVarInfoBalloonExpr()
" if &filetype!="python"
" return ""
" endif
" v:beval_text
"endfunction
"set bexpr=PythonVarInfoBalloonExpr()
"set ballooneval
" ==============================================================================
" "Fix" Способы устранения непоняток с настройками {{{1
"
" Узнать из какого файла переменная была установлена посл. раз
" :verbose set переменная
"
" Список всех переменных
" :let
"
" Список всех пользовательских функций
" :function
"
" Список всех привязок
" :map
"
" Показывает значения всех опций, которые отличаются от настроек по умолчанию.
" :set
" ==============================================================================
"}}}
четверг, 5 ноября 2009 г.
Мой vimrc
Подписаться на:
Комментарии к сообщению (Atom)
Спасибо! Очень помогло!
ОтветитьУдалитьОтличный конфиг, спасибо!
ОтветитьУдалитьспасибо! отлично оформленный конфиг.
ОтветитьУдалитьособенно понравилась подсветка пробелов в строке.
>> " Установка символов для подсветки
>> set list listchars=...