Advertisement
Guest User

Untitled

a guest
Nov 26th, 2017
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VIM 14.53 KB | None | 0 0
  1. " Включаем несовместимость настроек с Vi (ибо Vi нам и не понадобится).
  2. set nocompatible
  3.  
  4. "Выключаем ~ резервные файлы
  5. set nobackup
  6.  
  7. " Показывать положение курсора всё время.
  8. set ruler
  9.  
  10. " Показывать незавершённые команды в статусбаре
  11. set showcmd
  12.  
  13. " Включаем нумерацию строк
  14. set nu
  15.  
  16. " Поиск по набору текста
  17. set incsearch
  18.  
  19. " подсвечивать поиск
  20. set hls
  21. " Игнорировать регистр при поиске
  22. set ic
  23.  
  24. " Поддержка мыши
  25. set mouse=a
  26. set mousemodel=popup
  27.  
  28. " Кодировка текста по умолчанию
  29. set termencoding=utf-8
  30.  
  31. " Влючить подстветку синтаксиса
  32. syntax on
  33.  
  34. " Размер табулации по умолчанию
  35. set tabstop=4
  36. set shiftwidth=4
  37. set smarttab
  38. "set expandtab
  39.  
  40. "Включаем отображение непечатаемых символов
  41. "set nolist
  42.  
  43. "Всегда показывать строку состояния
  44. set laststatus=2
  45.  
  46. "Настройка статусной строки
  47. set statusline=%f%m%r%h%w\ %y\ ff:%{&ff}\ enc:%{&enc}\ fenc:%{&fenc}%=Строка:\ %2l/%L\ \ \ Колонка:%2c\ [%2p%%]
  48. ".vimrc [vim] enc:utf-8 ff:unix fenc:utf-8       (ch: 92 hex:5C) col:26 line:158/168 [94%]
  49. "%f - имя файла и путь к нему, относительно текущего каталога
  50. "%m - флаг модификации/изменения, выводит [+] если буфер изменялся
  51. "%r - флаг только для чтения, выводит [RO] если буфер только для чтения
  52. "%h - флаг буфера помощи, выводит [help] если буфер со справкой vim
  53. "%w - флаг окна превью, выводит [Preview]
  54. "'\ ' - экранированный символ пробела. Пробел можно указывать только экранированным, иначе ошибка синтаксиса
  55. "%y - тип файла в буфере, например [vim]
  56. "enc:%{&enc} - отображение кодировки encoding (enc). Обратите внимание: enc: - текст, %{&enc} - вывод значения внутренней переменной (enc)
  57. "ff:%{&ff} - отображение формата перевода строки fileformat (ff)
  58. "fenc:%{&fenc} - отображение кодировки сохранения в файл fileencoding (fenc)
  59. "%= - далее выравнивать вправо
  60. "ch:%3b - код символа под курсором в десятичной чистеме счисления, минимум 3 символа
  61. "hex:%2B - код символа под курсором в шестнадцатеричной системе счисления, минимум 2 символа
  62. "col:%2c - курсор в колонке, минимум 2 символа
  63. "line:%2l/%L - курсор в строке (минимум 2 символа)/всего строк в файле
  64. "%2p - число % в строках, где находится курсор (0% - начало файла; 100% - конец файла), минимум 2 символа
  65. "%% - т.к. символ '%' используется для переменных, то вывод символа '%' в строке статуса нужно делать особым образом - %%
  66.  
  67. " Включаем умные отспупы (например, автоотступ после {)
  68. set smartindent
  69.  
  70. " Перенос строк
  71. set wrap
  72.  
  73. " Перенос по словам
  74. set linebreak
  75.  
  76. " Показывать первую парную скобку после ввода второй
  77. set showmatch
  78.  
  79. " Перечитывать изменённые файлы автоматически
  80. set autoread
  81.  
  82. " Использовать больше цветов в терминале
  83. set t_Co=256
  84.  
  85. "colors mysheme
  86. colors najlus_blue
  87.  
  88. " Переход в папку файла
  89. set browsedir=current
  90.  
  91. " Вместо писка бипером мигать курсором при ошибках ввода
  92. set visualbell
  93.  
  94. " Включить сохранение резервных копий
  95. set backup
  96.  
  97. " Хранить историю изменений числом N
  98. set undolevels=1024
  99.  
  100. " Включение функций, зависящих от типа файла
  101. filetype on
  102. filetype plugin on
  103. filetype indent on
  104.  
  105. " Колонка, чтобы показывать плюсики для скрытия блоков кода
  106. set foldcolumn=1
  107.  
  108. " Фикс для использования русской раскладки в командном режиме
  109. set langmap=ёйцукенгшщзхъфывапролджэячсмитьбюЁЙЦУКЕHГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ;`qwertyuiop[]asdfghjkl\\;'zxcvbnm\\,.~QWERTYUIOP{}ASDFGHJKL:\\"ZXCVBNM<>
  110.  
  111. " Переходить на следующую строку, когда текущая закончилась
  112. set whichwrap=<,>,[,],h,l
  113.  
  114. " Автоматически записывть изменения в файл при переходе к другому
  115. set autowrite
  116.  
  117. " Всегда отображать строку с табами
  118. set stal=2
  119.  
  120. " Каталог для сохранения swp-файлов
  121. set dir=/tmp
  122.  
  123. " Отключение ~ бэкапов
  124. set nobackup
  125.  
  126. " Фикс для клавиши backspace
  127. set backspace=2
  128.  
  129. " Установка принтера по умолчанию
  130. set pdev=MDCP7057
  131.  
  132. "подсветка текущей строки
  133. set cursorline
  134.  
  135.  
  136. "Опции для графического режима (gvim)
  137. if has ("gui_running")
  138.     " Антиалиасинг для шрифтов
  139.     set antialias
  140.     " Отключение графических табов
  141.     set guioptions-=e
  142.     " Отключение панели инструментов
  143.     set guioptions-=T
  144.     " Использовать консольные диалоги вместо графических
  145.     set guioptions+=c
  146.    "Так не выводятся ненужные escape последовательности в :shell
  147.    set noguipty
  148. endif
  149.  
  150. " При редактировании файла всегда переходить на последнюю известную
  151. "позицию курсора. Если позиция ошибочная - не переходим.
  152. autocmd BufReadPost *
  153.  \ if line("'\"") > 0 && line("'\"") <= line("$") |
  154.   \   exe "normal! g`\"" |
  155.   \ endif
  156.  
  157. " Подсветка пробелов на конце строки
  158. au BufNewFile,BufRead * let b:mtrailingws=matchadd('ErrorMsg', '\s\+$', -1)
  159.  
  160. " Настройка отображения табов
  161. function MyTabLine()
  162.     let s = ''
  163.     for i in range(tabpagenr('$'))
  164.         if i + 1 == tabpagenr()
  165.             let s .= '%#TabLineSel#'
  166.         else
  167.             let s .= '%#TabLine#'
  168.         endif
  169.  
  170.         let s .= '%' . (i + 1) . 'T'
  171.  
  172.         let s .= ' %{MyTabLabel(' . (i + 1) . ')} '
  173.     endfor
  174.  
  175.     let s .= '%#TabLineFill#%T'
  176.  
  177.     if tabpagenr('$') > 1
  178.         let s .= '%=%#TabLine#%999Xclose'
  179.     endif
  180.  
  181. return s
  182. endfunction
  183.  
  184. function MyTabLabel(n)
  185.     let buflist = tabpagebuflist(a:n)
  186.     let winnr = tabpagewinnr(a:n)
  187.     let label = fnamemodify(bufname(buflist[winnr - 1]), ':t')
  188.  
  189. if label == ''
  190.     if &buftype == 'quickfix'
  191.         let label = '[Quickfix List]'
  192.     else
  193.         let label = 'NoName'
  194.     endif
  195. endif
  196.  
  197. if getbufvar(buflist[winnr - 1], "&modified")
  198.     let label = "+".label
  199. endif
  200.  
  201. let label = a:n.": ".label
  202.  
  203. return label
  204. endfunction
  205.  
  206. set tabline=%!MyTabLine()
  207.  
  208. set guifont=Pragmata\ Pro\ 13
  209.  
  210. "|||||||||||||||||||||||||||||||||||||||||||||||||
  211. "Горячие клавиши
  212. "|||||||||||||||||||||||||||||||||||||||||||||||||
  213.  
  214. " Быстрое сохранение
  215. nmap <F2> :w<cr>
  216. vmap <F2> <esc>:w<cr>i
  217. imap <F2> <esc>:w<cr>i
  218.  
  219. " Выход без сохранения изменений
  220. nmap <F4> :q!<cr>
  221. vmap <F4> <esc>:q!<cr>
  222. imap <F4> <esc>:q!<cr>
  223.  
  224. " Фикс для длинных строк
  225. nmap j gj
  226. nmap <DOWN> gj
  227. nmap k gk
  228. nmap <UP> gk
  229.  
  230. " Новый таб
  231. nmap <C-UP> :tabnew<cr>:Startify<cr>
  232. vmap <C-UP> <esc>:tabnew<cr>:Startify<cr>
  233. imap <C-UP> <esc>:tabnew<cr>:Startify<cr>
  234.  
  235. " Следующи таб
  236. nmap <C-RIGHT> :tabnext<cr>
  237. vmap <C-RIGHT> <esc>:tabnext<cr>
  238. imap <C-RIGHT> <esc>:tabnext<cr>
  239.  
  240. " Предыдущий таб
  241. nmap <C-LEFT> :tabprev<cr>
  242. vmap <C-LEFT> <esc>:tabprev<cr>
  243. imap <C-LEFT> <esc>:tabprev<cr>
  244.  
  245. " Закрыть таб
  246. nmap <C-DOWN> :tabclose<cr>
  247. vmap <C-DOWN> <esc>:tabclose<cr>
  248. imap <C-DOWN> <esc>:tabclose<cr>
  249.  
  250. call plug#begin('~/.vim/plugged')
  251.  
  252. "Дерево каталогов и расширение для работы с git
  253. Plug 'scrooloose/nerdtree'
  254. Plug 'Xuyuanp/nerdtree-git-plugin'
  255. "Комментирование/раскоментирование
  256. Plug 'scrooloose/nerdcommenter'
  257. "Классный стартовый экран
  258. Plug 'mhinz/vim-startify'
  259. "Управление буферами
  260. Plug 'corntrace/bufexplorer'
  261. "Выделение ошибок
  262. Plug 'vim-scripts/Syntastic'
  263. "Менеджер отмены действий
  264. Plug 'sjl/gundo.vim'
  265. "Подсветка парного тега
  266. Plug 'gregsexton/MatchTag'
  267. "Выранивание
  268. Plug 'junegunn/vim-easy-align'
  269. "Быстрое удаление\изменение\добавление кавычек и тегов
  270. Plug 'tpope/vim-surround'
  271. "Позволяет применить предыдущую операцию к текущему местоположению курсора при нажатии '.'
  272. Plug 'tpope/vim-repeat'
  273. "Автодополнение
  274. Plug 'Shougo/neocomplete.vim'
  275. "Подсветка парных скобок разными цветами
  276. Plug 'rainbow_parentheses.vim'
  277.  
  278. "vim-project
  279. Plug 'vim-scripts/project.tar.gz'
  280.  
  281. Plug 'junegunn/vim-easy-align'
  282. " Start interactive EasyAlign in visual mode (e.g. vipga)
  283. xmap ga <Plug>(EasyAlign)
  284.  
  285. " Start interactive EasyAlign for a motion/text object (e.g. gaip)
  286. nmap ga <Plug>(EasyAlign)
  287.  
  288. call plug#end()
  289.  
  290. let s:isvisual = "yes"
  291.  
  292.  
  293. "|||||||||||||||||||||||||||||||||||||||||||||||||
  294. "Настройки плагинов
  295. "|||||||||||||||||||||||||||||||||||||||||||||||||
  296.  
  297. "------------------------------------------------------------------------------
  298. "GUNDO
  299.  
  300. let g:gundo_preview_bottom = 1 " показывать diff внизу окна
  301. let g:gundo_width = 30 " ширина показа дерева
  302. let NERDShutUp=1 " отключения конфликта с дополнением NERD Commenter
  303.  
  304. " Запуск и скрытие gundo
  305. nmap <F5> :GundoToggle<cr>
  306. vmap <F5> <esc>:GundoToggle<cr>
  307. imap <F5> <esc>:GundoToggle<cr>
  308.  
  309.  
  310. "------------------------------------------------------------------------------
  311. "NERDTREE
  312.  
  313. let NERDTreeMouseMode=2                             " включение мыши NERDTree
  314. let NERDTreeQuitOnOpen=1                            " автоматически скрывать NERDTree после открытия файла
  315.  
  316. " Запуск и скрытие NERDTree
  317. nmap <F7> :NERDTreeToggle<cr>
  318. vmap <F7> <esc>:NERDTreeToggle:TlistToggle<cr>
  319. imap <F7> <esc>:NERDTreeToggle:TlistToggle<cr>
  320.  
  321.  
  322. "------------------------------------------------------------------------------
  323. "NERDCOMMENTER
  324.  
  325. " Комментирование\расскоментирования строки
  326. nmap <F6> :call NERDComment(0, "toggle")<cr>
  327. vmap <F6> <esc>:call NERDComment(0, "toggle")<cr>
  328. imap <F6> <esc>:call NERDComment(0, "toggle")<cr>
  329.  
  330.  
  331. "------------------------------------------------------------------------------
  332. "BUFEXPLORER
  333. let g:bufExplorerShowNoName=1                       " показывать безымянные буффера
  334.  
  335. " Обзор буфферов
  336. nmap <C-S-UP> :BufExplorer<cr>
  337. vmap <C-S-UP> <esc>:BufExplorer<cr>
  338. imap <C-S-UP> <esc>:BufExplorer<cr>
  339.  
  340. " Предыдущий буффер
  341. nmap <C-S-LEFT> :bp<cr>
  342. vmap <C-S-LEFT> <esc>:bp<cr>
  343. imap <C-S-LEFT> <esc>:bp<cr>
  344.  
  345. " Следующий буффер
  346. nmap <C-S-RIGHT> :bn<cr>
  347. vmap <C-S-RIGHT> <esc>:bn<cr>
  348. imap <C-S-RIGHT> <esc>:bn<cr>
  349.  
  350. " Закрыть буффер
  351. nmap <C-S-DOWN> :bd<cr>
  352. vmap <C-S-DOWN> <esc>:bd<cr>
  353. imap <C-S-DOWN> <esc>:bd<cr>
  354.  
  355. "------------------------------------------------------------------------------
  356. "PROJECT
  357.  
  358. let g:proj_window_width=45                          " ширина панели проектов
  359.  
  360. " Запуск и скрытие древа проектов
  361. nmap <F8> ToggleProject<cr>
  362. vmap <F8> <esc>ToggleProject<cr>
  363. imap <F8> <esc>ToggleProject<cr>
  364.  
  365.  
  366. "------------------------------------------------------------------------------
  367. "Startify
  368. let g:startify_list_order = ['files', 'bookmarks' ]
  369. let g:startify_files_number = 8
  370. let g:startify_bookmarks = [ '~/.conkyrc', {'v': '~/.vimrc'}, {'s': '~/scripts'}, {'r': '~/.config/awesome'}, {'x': '~/.Xdefaults'}, {'z': '~/.zshrc'}, {'f': '~/.mozilla/firefox/start/start.html'} ]
  371.  
  372. let g:startify_custom_header = []                   " отрубаем корову с цитатами
  373.  
  374.  
  375. "------------------------------------------------------------------------------
  376. "Syntastic
  377. let g:syntastic_warning_symbol = 'WA'
  378. let g:syntastic_error_symbol = 'ER'
  379.  
  380. "let g:loaded_syntastic_cpp_gcc_checker = 1
  381. "let g:syntastic_cpp_compiler = 'g++'
  382.  
  383.  
  384. "------------------------------------------------------------------------------
  385. "NeoComplete
  386.  
  387. let g:neocomplete#enable_at_startup = 1
  388. let g:neocomplete#auto_completion_start_lengt = 2
  389. let g:neocomplete#min_keyword_length = 2
  390.  
  391.  
  392. "------------------------------------------------------------------------------
  393. "rainbow parentheses - Подсвечивание парных скобок.
  394. let g:rbpt_colorpairs = [
  395.     \ ['brown',       'RoyalBlue3'],
  396.     \ ['Darkblue',    'SeaGreen3'],
  397.     \ ['darkgray',    'DarkOrchid3'],
  398.     \ ['darkgreen',   'firebrick3'],
  399.     \ ['darkcyan',    'RoyalBlue3'],
  400.     \ ['darkred',     'SeaGreen3'],
  401.     \ ['darkmagenta', 'DarkOrchid3'],
  402.     \ ['brown',       'firebrick3'],
  403.     \ ['gray',        'RoyalBlue3'],
  404.     \ ['black',       'SeaGreen3'],
  405.     \ ['darkmagenta', 'DarkOrchid3'],
  406.     \ ['Darkblue',    'firebrick3'],
  407.     \ ['darkgreen',   'RoyalBlue3'],
  408.     \ ['darkcyan',    'SeaGreen3'],
  409.     \ ['darkred',     'DarkOrchid3'],
  410.     \ ['red',         'firebrick3'],
  411.     \ ]
  412.  
  413. let g:rbpt_max = 16
  414. let g:rbpt_loadcmd_toggle = 0
  415.  
  416. au VimEnter * RainbowParenthesesToggle
  417. au Syntax * RainbowParenthesesLoadRound
  418. au Syntax * RainbowParenthesesLoadSquare
  419. au Syntax * RainbowParenthesesLoadBraces
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement