My configuration files for Debian/Ubuntu applications
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 
 
 
 

220 рядки
6.4 KiB

  1. syntax on
  2. filetype plugin indent on
  3. set ai
  4. set number
  5. set mouse=a
  6. "set breakindent
  7. set encoding=utf-8 "Added this for vim-hug
  8. set nu rnu
  9. set hidden
  10. set tabstop=4
  11. set shiftwidth=4
  12. runtime ftplugin/man.vim
  13. set keywordprg=:Man
  14. let mapleader = "s"
  15. set is
  16. set tw=80
  17. set so=10
  18. "Colour settings
  19. set t_Co=256 "Use 256 colours (Use this setting only if your terminal supports 256 colours)
  20. set tgc "More terminal colours
  21. let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
  22. let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
  23. let base16colorspace=256
  24. colorscheme base16-tomorrow-night
  25. "Pymode stuff
  26. let g:pymode_folding = 0
  27. " turn hybrid line numbers off
  28. ":set nonumber norelativenumber
  29. ":set nonu nornu
  30. " toggle hybrid line numbers
  31. ":set number! relativenumber!
  32. ":set nu! rnu!
  33. "Triggers for number toggling
  34. :augroup numbertoggle
  35. : autocmd!
  36. : autocmd BufEnter,FocusGained,InsertLeave * set relativenumber
  37. : autocmd BufLeave,FocusLost,InsertEnter * set norelativenumber
  38. :augroup END
  39. "CtrlP bindings
  40. nmap <leader>d :CtrlPBuffer<cr>
  41. nmap <leader>m :CtrlPMRU<cr>
  42. nmap <leader>L :CtrlPLine<cr>
  43. "NERDTree bingings
  44. nnoremap <F1> :NERDTreeToggle<cr>
  45. nnoremap <leader>t :NERDTreeFind<cr>
  46. nnoremap <F2> :NERDTreeFocus<cr>
  47. "autocmd vimenter * NERDTree
  48. "Buffergator bindings
  49. nmap gb :BuffergatorMruCyclePrev<cr>
  50. nmap gn :BuffergatorMruCycleNext<cr>
  51. nmap gto :BuffergatorTabsOpen<cr>
  52. nmap gtc :BuffergatorTabsOpen<cr>
  53. nmap gfo :BuffergatorOpen<cr>
  54. nmap gfc :BuffergatorClose<cr>
  55. let g:buffergator_autoexpand_on_split=0
  56. "Stuff for faster movement and aesthetics
  57. :set cursorline
  58. nnoremap <leader>cd :cd %:p:h<cr>
  59. nnoremap <F3> :tabprevious<cr>
  60. nnoremap <F4> :tabnext<cr>
  61. nnoremap <F5> :buffers<CR>:buffer<Space>
  62. noremap <BS> <PageUp>
  63. noremap <Space> <PageDown>
  64. nmap <leader>p <C-w><C-r>
  65. noremap <leader>y <C-W>w
  66. noremap <C-h> <C-W>h
  67. noremap <C-l> <C-W>l
  68. noremap <C-j> <C-W>j
  69. noremap <C-k> <C-W>k
  70. nnoremap <leader>z :wa<cr>
  71. nnoremap <leader>c :CtrlPChange<cr>
  72. nnoremap <leader>C :CtrlPChangeAll<cr>
  73. nnoremap <leader><cr> :center<cr>
  74. inoremap jj <esc>
  75. "Easymotion
  76. map <Leader> <Plug>(easymotion-prefix)
  77. map / <Plug>(easymotion-sn)
  78. omap / <Plug>(easymotion-tn)
  79. map n <Plug>(easymotion-next)
  80. map N <Plug>(easymotion-prev)
  81. map <leader>ls <Plug>(easymotion-sl)
  82. map <leader>lf <Plug>(easymotion-bd-fl)
  83. map <leader>lw <Plug>(easymotion-bd-wl)
  84. map <leader>ol <Plug>(easymotion-overwin-line)
  85. map <leader>ow <Plug>(easymotion-overwin-w)
  86. nmap <leader>of <Plug>(easymotion-overwin-f2)
  87. nmap <leader>aw <Plug>(easymotion-bd-w)
  88. nmap <leader>al <Plug>(easymotion-bd-jk)
  89. "Copy and pasting
  90. vmap <C-c> "+y
  91. nmap <S-y> "+p
  92. set guioptions-=m "menu bar
  93. set guioptions-=T "toolbar
  94. set guicursor+=a:blinkon0 "Remove weird blinking cursor
  95. "set guioptions-=r "scrollbar
  96. nmap <leader>T :vsplit <BAR> :wincmd l <BAR> :enew <cr>
  97. "nmap <leader>bq :bp <BAR> bd #<cr>
  98. nmap <leader>:ob :OpenBookmark<cr>
  99. let g:deoplete#enable_at_startup = 1 "Enables deoplete
  100. autocmd FileType python setlocal completeopt-=preview "Romoves docwindow for Jedi-vim
  101. "Omnisharp taken from the ReadMe I think
  102. let g:OmniSharp_timeout = 5
  103. set completeopt=longest,menuone,preview
  104. set previewheight=5
  105. let g:ale_linters = { 'cs': ['OmniSharp'] }
  106. let g:OmniSharp_highlight_types = 1
  107. augroup omnisharp_commands autocmd!
  108. " air-line
  109. let g:airline_theme='tomorrow'
  110. let g:airline#extensions#tabline#enabled = 1
  111. let g:airline#extensions#tabline#tab_nr_type = 1
  112. let g:airline#extensions#tabline#show_tab_nr = 1
  113. let g:airline#extensions#tabline#buffer_nr_show = 1
  114. let g:airline#extensions#tabline#formatter = 'default'
  115. let g:airline#extensions#tabline#buffer_nr_show = 1
  116. let g:airline#extensions#tabline#fnametruncate = 16
  117. let g:airline#extensions#tabline#fnamecollapse = 2
  118. "let mapleader=","
  119. let g:airline#extensions#tabline#buffer_idx_mode = 1
  120. nmap g1 <Plug>AirlineSelectTab1
  121. nmap g2 <Plug>AirlineSelectTab2
  122. nmap g3 <Plug>AirlineSelectTab3
  123. nmap g4 <Plug>AirlineSelectTab4
  124. nmap g5 <Plug>AirlineSelectTab5
  125. nmap g6 <Plug>AirlineSelectTab6
  126. nmap g7 <Plug>AirlineSelectTab7
  127. nmap g8 <Plug>AirlineSelectTab8
  128. nmap g9 <Plug>AirlineSelectTab9
  129. let g:airline_powerline_fonts = 1
  130. if !exists('g:airline_symbols')
  131. let g:airline_symbols = {}
  132. endif
  133. " unicode symbols
  134. let g:airline_left_sep = '»'
  135. let g:airline_left_sep = '▶'
  136. let g:airline_right_sep = '«'
  137. let g:airline_right_sep = '◀'
  138. let g:airline_symbols.linenr = '␊'
  139. let g:airline_symbols.linenr = '␤'
  140. let g:airline_symbols.linenr = '¶'
  141. let g:airline_symbols.branch = '⎇'
  142. let g:airline_symbols.paste = 'ρ'
  143. let g:airline_symbols.paste = 'Þ'
  144. let g:airline_symbols.paste = '∥'
  145. let g:airline_symbols.whitespace = 'Ξ'
  146. " airline symbols
  147. let g:airline_left_sep = ''
  148. let g:airline_left_alt_sep = ''
  149. let g:airline_right_sep = ''
  150. let g:airline_right_alt_sep = ''
  151. let g:airline_symbols.branch = ''
  152. let g:airline_symbols.readonly = ''
  153. let g:airline_symbols.linenr = ''
  154. "Folding
  155. nnoremap <leader>6 :setlocal fdm=indent<cr>
  156. nnoremap <leader>7 :setlocal fdm=marker<cr>
  157. nnoremap <leader>8 :setlocal fdm=expr<cr>:set foldexpr=getline(v:lnum)=~'^\\s*$'&&getline(v:lnum+1)=~'\\S'?'<1':1<cr>
  158. set foldmethod=indent
  159. set foldlevelstart=1
  160. autocmd FileType vim setlocal foldmethod=marker
  161. autocmd FileType '' setlocal fdm=expr foldexpr=getline(v:lnum)=~'^\\s*$'&&getline(v:lnum+1)=~'\\S'?'<1':1
  162. let javaScript_fold=1 " JavaScript
  163. let perl_fold=1 " Perl
  164. let php_folding=1 " PHP
  165. let r_syntax_folding=1 " R
  166. let ruby_fold=1 " Ruby
  167. let sh_fold_enabled=1 " sh
  168. let vimsyn_folding='af' " Vim script
  169. let xml_syntax_folding=1 " XML
  170. "ctrlp and buffgator custom stuff
  171. let g:ctrlp_switch_buffer = 'E'
  172. let g:ctrlp_custom_ignore = {
  173. \ 'dir': '\v[\/](\.(git|hg|svn)|\_site|node_modules)$',
  174. \ 'file': '\v\.(exe|so|dll|class|png|jpg|jpeg)$',
  175. \}
  176. let g:ctrlp_working_path_mode = 'r' " Use the nearest .git directory as the cwd
  177. let g:buffergator_viewport_split_policy = 'R' " Use the right side of the screen
  178. let g:buffergator_suppress_keymaps = 1 " I want my own keymappings...
  179. "Programming specific
  180. "let g:auto_save_postsave_hook = 'silent !npx browser-sync reload &'
  181. " let g:go_def_mode='gopls'
  182. " let g:go_info_mode='gopls'
  183. "NNN
  184. "let g:nnn#layout = { 'left': '~20%' } " or right, up, down
  185. let g:nnn#layout = { 'window': { 'width': 0.9, 'height': 0.6, 'highlight': 'Debug' } }
  186. let g:nnn#action = {
  187. \ '<c-t>': 'tab split',
  188. \ '<c-x>': 'split',
  189. \ '<c-v>': 'vsplit' }
  190. let $NNN_BMS='h:~/;c:~/.config;n:~/Notes;'
  191. let $NNN_PLUG='p:preview-tui;c:x2sel;i:imgview;s:tmspawn'
  192. "let $NNN_FIFO=/tmp/nnn.fifo