Advertisement
lmariscal

init.vim

May 9th, 2018
461
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VIM 8.47 KB | None | 0 0
  1. " init.vim
  2. "
  3. " Author: Leonardo Mariscal
  4. " Source: https://cav.bz/nvim
  5. " Description: My vimrc for neovim, so init.vim. Grab whatever you want
  6. " Hack: If you have trouble in linux run "dos2unix init.vim"
  7. " Website: http://lmariscal.com/
  8. "
  9. " Resources:
  10. "   vim-plug: https://github.com/junegunn/vim-plug
  11.  
  12. " Vim-Plug {{{
  13. call plug#begin()
  14. Plug 'cavariux/triplet.vim'                 " Small colorscheme
  15. Plug 'mileszs/ack.vim'                      " Silver searcher in vim
  16. Plug 'lervag/vimtex'                        " Latex Support
  17. Plug 'Valloric/YouCompleteMe'               " Autocomplete for vim
  18. Plug 'ctrlpvim/ctrlp.vim'                   " Fuzzy Finder
  19. Plug 'jiangmiao/auto-pairs'                 " Auto Pair Help
  20. Plug 'vim-scripts/a.vim'                    " Quickly toggle .h to .cc
  21. Plug 'mhinz/vim-startify'                   " Beautiful Start menu
  22. Plug 'vimwiki/vimwiki', { 'branch': 'dev' } " Better than org mode
  23. Plug 'tpope/vim-fugitive'                   " Git commands
  24. Plug 'editorconfig/editorconfig-vim'        " Config for all editors
  25. Plug 'wesQ3/vim-windowswap'                 " Swap windows easily
  26. Plug 'w0rp/ale'                             " Lint engine for not c++ stuff
  27. Plug 'OmniSharp/omnisharp-vim'              " Autocomplete for c#
  28. Plug 'tikhomirov/vim-glsl'                  " GLSL syntax
  29. Plug 'easymotion/vim-easymotion'            " Easy motion
  30. Plug 'zah/nim.vim'                          " Nim syntax
  31. if has('windows')
  32.   Plug 'kkoenig/wimproved.vim'              " Removes stuff in the GUI
  33. endif
  34. call plug#end()
  35. " }}}
  36. " Set {{{
  37. set autowriteall
  38. set wildignore+=*/tmp/*,*.so,*.swp,*.zip
  39. set breakindent
  40. set splitright
  41. set splitbelow
  42. set noswapfile
  43. set termguicolors
  44. set list
  45. set modelines=1
  46. set listchars=tab:»\ ,trail:.
  47. set encoding=utf-8
  48. scriptencoding utf-8
  49. set fillchars+=vert:¦
  50. set number
  51. set relativenumber
  52. set ignorecase
  53. set nobackup
  54. set nowritebackup
  55. set expandtab
  56. set shiftwidth=2
  57. set tabstop=2
  58. set showmatch
  59. set incsearch
  60. set hlsearch
  61. set laststatus=2
  62. set autoindent
  63.  
  64. set statusline=
  65. set statusline+=%0*\ %{fugitive#statusline()}         " Git branch
  66. set statusline+=%0*\ %t\ \|                           " File name
  67. set statusline+=%0*\ %y\ \|                           " FileType
  68. set statusline+=%0*\ %{''.(&fenc!=''?&fenc:&enc).''}\ \|  " Encoding
  69. set statusline+=%0*\ %{&ff}\                          " FileFormat (dos/unix..)
  70. set statusline+=%0*\ %=                               " Separation
  71. set statusline+=%0*\ row:%l/%L\ (%03p%%)\ \|          " Rownumber/total (%)
  72. set statusline+=%0*\ col:%03c\                        " Colnr
  73. set statusline+=%0*\ \ %m%r%w\                        " Modified? Readonly?.
  74.  
  75. set foldenable
  76. set foldmethod=marker
  77. set foldlevel=0
  78. set backspace=2
  79. set langmenu=es_MX
  80. set background=dark
  81. set t_Co=256
  82. if has('persistent_undo')
  83.   set undolevels=5000
  84.   set undodir=$HOME/.VIM_UNDO_FILES
  85.   set undofile
  86. endif
  87. " }}}
  88. " Let {{{
  89. let g:python3_host_prog='C:/Users/lmariscal/AppData/Local/Programs/Python/Python36-32/python.exe'
  90. let g:python_host_prog='C:/Python27/python.exe'
  91. let g:EasyMotion_do_mapping = 0
  92. let g:EasyMotion_smartcase = 1
  93. let g:vimwiki_list= [{'ext': '.md',
  94.       \ 'path': '~/notes/',
  95.       \ 'syntax': 'markdown'}]
  96. let g:vimwiki_folding='custom'
  97. let g:vim_markdown_folding_disabled = 1
  98. let g:clang_library_path='C:\\Program\ Files\\LLVM\\lib'
  99. let g:gitgutter_enabled = 1
  100. let g:ctrlp_map = '<c-q>'
  101. let g:ctrlp_prompt_mappings = {
  102.   \ 'AcceptSelection("e")': ['<space>', '<cr>', '<2-LeftMouse>'],
  103.   \ }
  104. let g:ctrlp_working_path_mode = 'rc'
  105. let $NVIM_TUI_ENABLE_TRUE_COLOR=1
  106. let $LANG = 'es_MX'
  107. set completeopt=menuone,menu,longest,preview
  108. let g:mapleader = ' '
  109. let g:ctrlp_custom_ignore = {
  110.   \ 'dir':  '\v[\/](doc|tmp|inc|lib|bld|node_modules|.git|bld|CMakeFiles)',
  111.   \ 'file': '\v\.(exe|so|dll)$',
  112.   \ }
  113. let g:startify_list_order = [
  114. \ ['   MRU'],
  115. \ 'files',
  116. \ ['   MRU <dir>'],
  117. \ 'dir',
  118. \ ['   Commands'],
  119. \ 'commands',
  120. \ ['   Sessions'],
  121. \ 'sessions',
  122. \ ['   Bookmarks'],
  123. \ 'bookmarks',
  124. \ ]
  125. let g:startify_files_number = 5
  126. let g:startify_change_to_dir = 1
  127. let g:startify_custom_indices = map(range(1,100), 'string(v:val)')
  128. let g:startify_custom_header = 'map(startify#fortune#boxed(), "\"   \".v:val")'
  129. let g:indent_guides_start_level = 1
  130. let g:indent_guides_guide_size = 1
  131. let g:ale_sign_error = '*'
  132. let g:ale_sign_warning = '-'
  133. " Using [nimcheck(nim), vint(vim), markdownlint-cli(md), alex(md)]
  134. let g:ale_linters = {
  135.       \'nim': ['nimcheck'],
  136.       \'vim': ['vint'],
  137.       \'markdown': ['alex', 'markdownlint'],
  138.       \'cpp': [],
  139.       \'c': [],
  140.       \'c#': [],
  141.       \}
  142. let g:ycm_auto_trigger = 1
  143. let g:ycm_autoclose_preview_window_after_insertion = 1
  144. let g:ycm_error_symbol = '*'
  145. let g:ycm_complete_in_comments = 1
  146. let g:EditorConfig_exclude_patterns = ['fugitive://.*']
  147. let g:cpp_class_scope_highlight = 1
  148. let g:cpp_member_variable_highlight = 1
  149. let g:cpp_experimental_template_highlight = 1
  150. let g:os=substitute(system('uname'), '\n', '', '')
  151. if g:os ==# 'Darwin' || g:os ==# 'Mac'
  152.   let g:ycm_show_diagnostics_ui = 0
  153. elseif g:os ==# 'Linux'
  154.   " Nothing
  155. endif
  156. let g:ale_cs_mcsc_assemblies = [
  157. \ '/Applications/Unity/Unity.app/Contents/Managed/UnityEngine.dll',
  158. \ '/Users/cavariux/dev/tanquesitos/obj/Debug',
  159. \]
  160.  
  161. let g:OmniSharp_server_path = '/Users/cavariux/dev/omnisharp-server/omnisharp/OmniSharp.exe'
  162. let g:OmniSharp_selector_ui = 'ctrlp'
  163. let g:ackprg = 'ag --vimgrep'
  164. " }}}
  165. " Options {{{
  166. function MarkdownLevel()
  167.   let l:h = matchstr(getline(v:lnum), '#\+')
  168.   if empty(l:h) || len(l:h) == 1
  169.     return '='
  170.   else
  171.     return '>' . (len(l:h) - 1)
  172.   endif
  173. endfunction
  174.  
  175. function CCTypes()
  176.   call matchadd('Todo', '\<Hack\>')
  177.   call matchadd('Todo', '\<Note\>')
  178. endfunction
  179.  
  180. function ChangeCtrlPCmd()
  181.   let currentDir = expand("%:p:h")
  182.   let gitrepo = system('git -C ' . currentDir . ' rev-parse')
  183.   if gitrepo =~? 'fatal'
  184.     let g:ctrlp_user_command = 'dir %s /-n /b /s /a-d'
  185.   else
  186.     let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files . -co --exclude-standard', 'find %s -type f']
  187.   endif
  188. endfunction
  189.  
  190. if has("win32")
  191.   let g:ctrlp_user_command = 'dir %s /-n /b /s /a-d'
  192. else
  193.   let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files . -co --exclude-standard', 'find %s -type f']
  194. endif
  195.  
  196. set background=dark
  197. colorscheme triplet
  198.  
  199. setlocal errorformat="%f",\ line\ %l:\ %
  200. syntax on
  201. filetype plugin on
  202.  
  203. hi User0 guibg=#808080 guifg=white
  204. hi User1 guibg=#c5ac79 guifg=bg
  205. hi OverLength gui=bold
  206.  
  207. cnoreabbrev ag Ack!
  208.  
  209. match OverLength /\%81v.\+/
  210. fun! JumpToDef()
  211.   if exists('*GotoDefinition_' . &filetype)
  212.     call GotoDefinition_{&filetype}()
  213.   else
  214.     exe "norm! \<C-]>"
  215.   endif
  216. endf
  217.  
  218. " Jump to tag
  219. " }}}
  220. " Maps {{{
  221. nnoremap <silent> <leader>q :CtrlP<cr>
  222. nnoremap K kJ
  223. nnoremap j gj
  224. nnoremap k gk
  225. nnoremap B ^
  226. nnoremap E $
  227. nnoremap <leader>f za
  228. nnoremap <leader>a :A<cr>
  229. nnoremap <leader>va :AV<cr>
  230. nnoremap <leader>sa :AS<cr>
  231. nnoremap <C-j> <C-W>j<C-W>=
  232. nnoremap <C-k> <C-W>k<C-W>=
  233. nnoremap <C-h> <C-W>h<C-W>=
  234. nnoremap <C-l> <C-W>l<C-W>=
  235. nnoremap <M-j> <C-W>j<C-W>_
  236. nnoremap <M-k> <C-W>k<C-W>_
  237. nnoremap <M-h> <C-W>h<C-W><Bar>
  238. nnoremap <M-l> <C-W>l<C-W><Bar>
  239. nnoremap <C-g> :call JumpToDef()<cr>
  240. nnoremap <F11> :call nyaovim#call_javascript_function('toggleWindowFullScreen', [])<cr>
  241. vnoremap K :m '<-2<CR>gv=gv
  242. vnoremap J :m '>+1<CR>gv=gv
  243. nmap s <Plug>(easymotion-s2)
  244. nmap f <Plug>(easymotion-fl)
  245. nmap F <Plug>(easymotion-Fl)
  246. map <up> <nop>
  247. map <down> <nop>
  248. map <left> <nop>
  249. map <right> <nop>
  250. map  / <Plug>(easymotion-sn)
  251. map  n <Plug>(easymotion-next)
  252. map  N <Plug>(easymotion-prev)
  253. omap t <Plug>(easymotion-bd-tl)
  254. omap f <Plug>(easymotion-bd-fl)
  255. omap F <Plug>(easymotion-Fl)
  256. omap / <Plug>(easymotion-tn)
  257.   " }}}
  258. " AutoCMD {{{
  259. augroup aucommands
  260.   au FileType help wincmd L
  261.   au FileType cpp,c :call CCTypes()
  262.   au BufEnter * :call ChangeCtrlPCmd()
  263.   au BufEnter * match OverLength /\%81v.\+/
  264.   au BufEnter *.ns set syntax=nim
  265.   au BufEnter *.md setlocal spell spelllang=es | setlocal wrap | match none
  266.   au BufEnter *.md setlocal foldexpr=MarkdownLevel()
  267.   au BufEnter *.md setlocal foldmethod=expr
  268.   au BufEnter,BufNewFile *.v,*.f,*.gl set syntax=glsl | set filetype=glsl
  269.   au GUIEnter * :Guifont! Roboto\ Mono:h10
  270.   au GUIEnter * set visualbell t_vb=
  271.   au GUIEnter * simalt ~x
  272.   au BufWritePre * :%s/\s\+$//e
  273.   au VimEnter * iunmap <Leader>ih
  274.   au VimEnter * iunmap <Leader>is
  275.   au VimEnter * iunmap <Leader>ihn
  276.   au BufWinEnter *.md set syntax=markdown | set tw=80
  277. augroup END
  278. "}}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement