Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- " Включаем несовместимость настроек с Vi (ибо Vi нам и не понадобится).
- set nocompatible
- "Выключаем ~ резервные файлы
- set nobackup
- " Показывать положение курсора всё время.
- set ruler
- " Показывать незавершённые команды в статусбаре
- set showcmd
- " Включаем нумерацию строк
- set nu
- " Поиск по набору текста
- set incsearch
- " подсвечивать поиск
- set hls
- " Игнорировать регистр при поиске
- set ic
- " Поддержка мыши
- set mouse=a
- set mousemodel=popup
- " Кодировка текста по умолчанию
- set termencoding=utf-8
- " Не выгружать буфер, когда переключаемся на другой
- " Это позволяет редактировать несколько файлов в один и тот же момент без необходимости сохранения каждый раз
- " когда переключаешься между ними
- set hidden
- " Влючить подстветку синтаксиса
- syntax on
- " Размер табулации по умолчанию
- set tabstop=4
- set shiftwidth=4
- set smarttab
- "set expandtab
- "Включаем отображение непечатаемых символов
- set list
- "Отображаем только табуляцию
- :set lcs=tab:·\
- "Всегда показывать строку состояния
- set laststatus=2
- "Настройка статусной строки
- set statusline=%f%m%r%h%w\ %y\ ff:%{&ff}\ enc:%{&enc}\ fenc:%{&fenc}%=Строка:\ %2l/%L\ \ \ Колонка:%2c\ [%2p%%]
- ".vimrc [vim] enc:utf-8 ff:unix fenc:utf-8 (ch: 92 hex:5C) col:26 line:158/168 [94%]
- "%f - имя файла и путь к нему, относительно текущего каталога
- "%m - флаг модификации/изменения, выводит [+] если буфер изменялся
- "%r - флаг только для чтения, выводит [RO] если буфер только для чтения
- "%h - флаг буфера помощи, выводит [help] если буфер со справкой vim
- "%w - флаг окна превью, выводит [Preview]
- "'\ ' - экранированный символ пробела. Пробел можно указывать только экранированным, иначе ошибка синтаксиса
- "%y - тип файла в буфере, например [vim]
- "enc:%{&enc} - отображение кодировки encoding (enc). Обратите внимание: enc: - текст, %{&enc} - вывод значения внутренней переменной (enc)
- "ff:%{&ff} - отображение формата перевода строки fileformat (ff)
- "fenc:%{&fenc} - отображение кодировки сохранения в файл fileencoding (fenc)
- "%= - далее выравнивать вправо
- "ch:%3b - код символа под курсором в десятичной чистеме счисления, минимум 3 символа
- "hex:%2B - код символа под курсором в шестнадцатеричной системе счисления, минимум 2 символа
- "col:%2c - курсор в колонке, минимум 2 символа
- "line:%2l/%L - курсор в строке (минимум 2 символа)/всего строк в файле
- "%2p - число % в строках, где находится курсор (0% - начало файла; 100% - конец файла), минимум 2 символа
- "%% - т.к. символ '%' используется для переменных, то вывод символа '%' в строке статуса нужно делать особым образом - %%
- " Включаем умные отспупы ( например, автоотступ после {)
- set smartindent
- " Перенос строк
- set wrap
- " Перенос по словам
- set linebreak
- " Показывать первую парную скобку после ввода второй
- set showmatch
- " Перечитывать изменённые файлы автоматически
- set autoread
- " Использовать больше цветов в терминале
- set t_Co=256
- colors mysheme
- " Переход в папку файла
- set browsedir=current
- " Вместо писка бипером мигать курсором при ошибках ввода
- set visualbell
- " Включить сохранение резервных копий
- set backup
- " Хранить историю изменений числом N
- set undolevels=1024
- " Включение функций, зависящих от типа файла
- filetype on
- filetype plugin on
- filetype indent on
- " Фикс для использования русской раскладки в командном режиме
- set langmap=ёйцукенгшщзхъфывапролджэячсмитьбюЁЙЦУКЕHГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ;`qwertyuiop[]asdfghjkl\\;'zxcvbnm\\,.~QWERTYUIOP{}ASDFGHJKL:\\"ZXCVBNM<>
- " Переходить на следующую строку, когда текущая закончилась
- set whichwrap=<,>,[,],h,l
- " Автоматически записывть изменения в файл при переходе к другому
- set autowrite
- " Всегда отображать строку с табами
- set stal=2
- " Каталог для сохранения swp-файлов
- set dir=~/.vim/swapfiles
- " Отключение ~ бэкапов
- set nobackup
- " Фикс для клавиши backspace
- set backspace=2
- " Установка принтера по умолчанию
- set pdev=MDCP7057
- " Колонка, чтобы показывать плюсики для скрытия блоков кода
- set foldcolumn=1
- "подсветка текущей строки
- set cursorline
- "Опции для графического режима (gvim)
- if has ("gui_running")
- " Антиалиасинг для шрифтов
- set antialias
- " Отключение графических табов
- set guioptions-=e
- " Отключение панели инструментов
- set guioptions-=T
- " Использовать консольные диалоги вместо графических
- set guioptions+=c
- "Так не выводятся ненужные escape последовательности в :shell
- set noguipty
- endif
- " При редактировании файла всегда переходить на последнюю известную
- "позицию курсора. Если позиция ошибочная - не переходим.
- autocmd BufReadPost *
- \ if line("'\"") > 0 && line("'\"") <= line("$") |
- \ exe "normal! g`\"" |
- \ endif
- " Подсветка пробелов на конце строки
- au BufNewFile,BufRead * let b:mtrailingws=matchadd('ErrorMsg', '\s\+$', -1)
- " Подсветка табов перед которыми\после которых есть проблеы
- "au BufNewFile,BufRead * let b:mtabbeforesp=matchadd('ErrorMsg', '\v(\t+)\ze( +)', -1)
- "au BufNewFile,BufRead * let b:mtabaftersp=matchadd('ErrorMsg', '\v( +)\zs(\t+)', -1)
- " Настройка отображения табов
- function MyTabLine()
- let s = ''
- for i in range(tabpagenr('$'))
- if i + 1 == tabpagenr()
- let s .= '%#TabLineSel#'
- else
- let s .= '%#TabLine#'
- endif
- let s .= '%' . (i + 1) . 'T'
- let s .= ' %{MyTabLabel(' . (i + 1) . ')} '
- endfor
- let s .= '%#TabLineFill#%T'
- if tabpagenr('$') > 1
- let s .= '%=%#TabLine#%999Xclose'
- endif
- return s
- endfunction
- function MyTabLabel(n)
- let buflist = tabpagebuflist(a:n)
- let winnr = tabpagewinnr(a:n)
- let label = fnamemodify(bufname(buflist[winnr - 1]), ':t')
- if label == ''
- if &buftype == 'quickfix'
- let label = '[Quickfix List]'
- else
- let label = 'NoName'
- endif
- endif
- if getbufvar(buflist[winnr - 1], "&modified")
- let label = "+".label
- endif
- let label = a:n.": ".label
- return label
- endfunction
- set tabline=%!MyTabLine()
- set guifont=Pragmata\ Pro\ 11
- "|||||||||||||||||||||||||||||||||||||||||||||||||
- "Горячие клавиши
- "|||||||||||||||||||||||||||||||||||||||||||||||||
- " Быстрое сохранение
- nmap <F2> :w<cr>
- vmap <F2> <esc>:w<cr>i
- imap <F2> <esc>:w<cr>i
- " Сессии
- nmap <F3> :SessionSave<cr>
- vmap <F3> <esc>:SessionSave<cr>
- imap <F3> <esc>:SessionSave<cr>
- nmap <C-F3> :SessionOpenLast<cr>
- vmap <C-F3> <esc>:SessionOpenLast<cr>
- imap <C-F3> <esc>:SessionOpenLast<cr>
- " Выход без сохранения изменений
- nmap <F4> :q!<cr>
- vmap <F4> <esc>:q!<cr>
- imap <F4> <esc>:q!<cr>
- " Фикс для длинных строк
- nmap j gj
- nmap <DOWN> gj
- nmap k gk
- nmap <UP> gk
- " Новый таб
- nmap <C-UP> :tabnew<cr>:Startify<cr>
- vmap <C-UP> <esc>:tabnew<cr>:Startify<cr>
- imap <C-UP> <esc>:tabnew<cr>:Startify<cr>
- " Следующи таб
- nmap <C-RIGHT> :tabnext<cr>
- vmap <C-RIGHT> <esc>:tabnext<cr>
- imap <C-RIGHT> <esc>:tabnext<cr>
- " Предыдущий таб
- nmap <C-LEFT> :tabprev<cr>
- vmap <C-LEFT> <esc>:tabprev<cr>
- imap <C-LEFT> <esc>:tabprev<cr>
- " Закрыть таб
- nmap <C-DOWN> :tabclose<cr>
- vmap <C-DOWN> <esc>:tabclose<cr>
- imap <C-DOWN> <esc>:tabclose<cr>
- "|||||||||||||||||||||||||||||||||||||||||||||||||
- "Настройки плагинов
- "|||||||||||||||||||||||||||||||||||||||||||||||||
- "------------------------------------------------------------------------------
- "GUNDO - плагин для управления историей изменений в псевдографическом формате.
- "Есть в AUR
- " Запуск и скрытие gundo
- nmap <F5> :GundoToggle<cr>
- vmap <F5> <esc>:GundoToggle<cr>
- imap <F5> <esc>:GundoToggle<cr>
- "------------------------------------------------------------------------------
- "TAGLIST - плагин для отображения всех классов и функций в проекте
- "Есть в AUR
- let g:Tlist_Show_One_File=1 " показывать информацию только по одному файлу
- let g:Tlist_GainFocus_On_ToggleOpen=1 " получать фокус при открытии
- let g:Tlist_Auto_Highlight_Tag=1 " подсвечивать тег, на котором сейчас находимся
- let Tlist_Use_Right_Window=1 " окно тегов располагается справа
- let g:Tlist_Close_On_Select=1 " закрывать окно после выбора тега
- " Запуск и скрытие taglist
- nmap <C-F7> :TlistToggle<cr>:TlistUpdate<cr>
- vmap <C-F7> <esc>:TlistToggle<cr>:TlistUpdate<cr>
- imap <C-F7> <esc>:TlistToggle<cr>:TlistUpdate<cr>
- "------------------------------------------------------------------------------
- "NERDTREE - древо файлов сбоку
- "Есть в AUR
- let NERDTreeMouseMode=2 " включение мыши NERDTree
- let NERDTreeQuitOnOpen=1 " автоматически скрывать NERDTree после открытия файла
- " Запуск и скрытие NERDTree
- nmap <F7> :NERDTreeToggle<cr>
- vmap <F7> <esc>:NERDTreeToggle:TlistToggle<cr>
- imap <F7> <esc>:NERDTreeToggle:TlistToggle<cr>
- "------------------------------------------------------------------------------
- "NERDCOMMENTER - плагин для комментирования\расскоментирования строк
- "Есть в AUR
- " Комментирование\расскоментирования строки
- nmap <F6> :call NERDComment(0, "toggle")<cr>
- vmap <F6> <esc>:call NERDComment(0, "toggle")<cr>
- imap <F6> <esc>:call NERDComment(0, "toggle")<cr>
- "------------------------------------------------------------------------------
- "BUFEXPLORER - более удобная работа с буфферами
- "Есть в AUR
- let g:bufExplorerShowNoName=0 " показывать безымянные буффера
- " Обзор буфферов
- nmap <C-S-UP> :BufExplorer<cr>
- vmap <C-S-UP> <esc>:BufExplorer<cr>
- imap <C-S-UP> <esc>:BufExplorer<cr>
- " Приведущий буффер
- nmap <C-S-LEFT> :bp<cr>
- vmap <C-S-LEFT> <esc>:bp<cr>
- imap <C-S-LEFT> <esc>:bp<cr>
- " Следующий буффер
- nmap <C-S-RIGHT> :bn<cr>
- vmap <C-S-RIGHT> <esc>:bn<cr>
- imap <C-S-RIGHT> <esc>:bn<cr>
- " Закрыть буффер
- nmap <C-S-DOWN> :bd<cr>
- vmap <C-S-DOWN> <esc>:bd<cr>
- imap <C-S-DOWN> <esc>:bd<cr>
- "------------------------------------------------------------------------------
- "PROJECT - управление проектами
- let g:proj_window_width=45 " ширина панели проектов
- " Запуск и скрытие древа проектов
- nmap <F8> <Plug>ToggleProject<cr>
- vmap <F8> <esc><Plug>ToggleProject<cr>
- imap <F8> <esc><Plug>ToggleProject<cr>
- "------------------------------------------------------------------------------
- "TagHighlight - генерирует дополнительные теги для подсветки синтаксиса на
- "основе файлов проекта.
- " Перегенерировать теги
- nmap <S-F7> :UpdateTypesFile<cr>
- vmap <S-F7> <esc>:UpdateTypesFile<cr>
- imap <S-F7> <esc>:UpdateTypesFile<cr>
- "------------------------------------------------------------------------------
- "startify няшный старотовый экран.
- let g:startify_list_order = ['files', 'bookmarks']
- let g:startify_bookmarks = [ '~/.vimrc', '~/.config/awesome/rc.lua', '~/.Xdefaults', '~/.zshrc' ]
- "------------------------------------------------------------------------------
- "syntastic - Подсвечивание ошибок
- let g:syntastic_warning_symbol = 'WA'
- let g:syntastic_error_symbol = 'ER'
- "let g:loaded_syntastic_cpp_gcc_checker = 1
- "let g:syntastic_cpp_compiler = 'g++'
- "------------------------------------------------------------------------------
- "rainbow parentheses - Подсвечивание парных скобок.
- let g:rbpt_colorpairs = [
- \ ['brown', 'RoyalBlue3'],
- \ ['Darkblue', 'SeaGreen3'],
- \ ['darkgray', 'DarkOrchid3'],
- \ ['darkgreen', 'firebrick3'],
- \ ['darkcyan', 'RoyalBlue3'],
- \ ['darkred', 'SeaGreen3'],
- \ ['darkmagenta', 'DarkOrchid3'],
- \ ['brown', 'firebrick3'],
- \ ['gray', 'RoyalBlue3'],
- \ ['black', 'SeaGreen3'],
- \ ['darkmagenta', 'DarkOrchid3'],
- \ ['Darkblue', 'firebrick3'],
- \ ['darkgreen', 'RoyalBlue3'],
- \ ['darkcyan', 'SeaGreen3'],
- \ ['darkred', 'DarkOrchid3'],
- \ ['red', 'firebrick3'],
- \ ]
- let g:rbpt_max = 16
- let g:rbpt_loadcmd_toggle = 0
- au VimEnter * RainbowParenthesesToggle
- au Syntax * RainbowParenthesesLoadRound
- au Syntax * RainbowParenthesesLoadSquare
- au Syntax * RainbowParenthesesLoadBraces
- let g:C_CplusCompiler = 'clang++'
- " Настройка gundo
- let g:gundo_preview_bottom = 1 " показывать diff внизу окна
- let g:gundo_width = 30 " ширина показа дерева
- let NERDShutUp=1 " отключения конфликта с дополнением NERD Commenter
- "------------------------------------------------------------------------------
- "Vimwiki
- "let g:vimwiki_list = [{'path': '~/.vim/wiki'}]
- "let g:vimwiki_list = '/home/najlus/.vim/wiki/index.wiki'
- "let wiki = {}
- "let wiki.path = '~/.vim/wiki/'
- "let wiki.nested_syntaxes = {'python': 'python', 'c++': 'cpp'}
- "let g:vimwiki_list =
- let g:WikiGlobal = {'path': '~/.vim/wiki'}
- let g:WikiGlobal.nested_syntaxes = {'c': 'c', 'c++': 'cpp', 'perl': 'perl', 'python': 'python', 'sh': 'sh'}
- let g:vimwiki_list = [g:WikiGlobal]
- "------------------------------------------------------------------------------
- "Neo Bundle
- set nocompatible " Be iMproved
- if has('vim_starting')
- set runtimepath+=~/.vim/bundle/neobundle.vim/
- endif
- call neobundle#rc(expand('~/.vim/bundle/'))
- " Let NeoBundle manage NeoBundle
- NeoBundleFetch 'Shougo/neobundle.vim'
- NeoBundle 'scrooloose/nerdtree' "Древо каталогов
- NeoBundle 'scrooloose/nerdcommenter' "Комментирование\раскоментирование
- NeoBundle 'mhinz/vim-startify' "Классный стартовый экран
- NeoBundle 'vim-scripts/c.vim' "Работа с C и С++
- NeoBundle 'corntrace/bufexplorer' "Управление буферами
- NeoBundle 'vim-scripts/TagHighlight' "Подсветка собственных классов и функций
- NeoBundle 'vim-scripts/Syntastic' "Выделение ошибок
- NeoBundle 'synboo/project.vim' "Управление проектами
- NeoBundle 'sjl/gundo.vim' "Менеджер отмены действий
- NeoBundle 'Rip-Rip/clang_complete' "Автодополнение C++
- NeoBundle 'msanders/snipmate.vim' "Сниплеты
- NeoBundle 'vim-scripts/taglist.vim' "Список классов, функций и прочего
- NeoBundle 'rainbow_parentheses.vim' "Подсветка парных скобок разными цветами
- NeoBundle 'gregsexton/MatchTag' "Подсветка парного тега
- NeoBundle 'vim-scripts/Align' "Выранивание
- NeoBundle 'vim-scripts/hexHighlight.vim' "Раскрашивание hex кодов
- "NeoBundle 'Valloric/YouCompleteMe' "Автодополнение
- NeoBundle 'vim-scripts/a.vim' "Переключение между заголовочным файлом и файлом с кодом
- NeoBundle 'tpope/vim-surround' "Быстрое удаление\изменение\добавление кавычек и тегов
- NeoBundle 'tpope/vim-repeat' "Позволяет применить предыдущую операцию к текущему местоположению курсора при нажатии '.'
- NeoBundle 'vim-scripts/sessionman.vim' "Сессии в vim
- NeoBundle 'vim-scripts/Marks-Browser' "Отображение сделанных меток
- "NeoBundle 'Shougo/neocomplete.vim' "Автодополнение
- NeoBundle 'vim-scripts/vimwiki' "Вики для vim
- "NeoBundle 'aperezdc/vim-template' "Шаблоны новых файлов
- "let g:neocomplete#enable_at_startup = 1
- "let g:neocomplete#auto_completion_start_lengt = 2
- "let g:neocomplete#min_keyword_length = 2
- "let g:templates_plugin_loaded = 0 "to skip loading of this plugin.
- "let g:templates_no_autocmd = 1 "to disable automatic insertion of template in new files.
- filetype plugin indent on " Required!
- "
- " Brief help
- " :NeoBundleList - list configured bundles
- " :NeoBundleInstall(!) - install(update) bundles
- " :NeoBundleClean(!) - confirm(or auto-approve) removal of unused bundles
- " Installation check.
- NeoBundleCheck
- let g:inccomplete_findcmd = ''
- let g:inccomplete_addclosebracket = ''
- let g:inccomplete_showdirs = 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement