Advertisement
Guest User

Untitled

a guest
Jan 16th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VIM 10.68 KB | None | 0 0
  1. "Plug auto-install
  2. if 0
  3.     if(!isdirectory(expand("~/.config/nvim/autoload/plug.vim")))
  4.         call system(expand("mkdir -p ~/.config/nvim/autoload"))
  5.         call system(expand("curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim"))
  6.     endif
  7. endif
  8.  
  9. " Specify a directory for plugins
  10. " - For Neovim: ~/.local/share/nvim/plugged
  11. " - Avoid using standard Vim directory names like 'plugin'
  12. call plug#begin('~/.vim/plugged')
  13.  
  14. "Apperance
  15. Plug 'vim-airline/vim-airline-themes'
  16. Plug 'scrooloose/syntastic'
  17. Plug 'flazz/vim-colorschemes'
  18. " Plug 'yggdroot/indentline'
  19. Plug 'altercation/vim-colors-solarized'
  20. Plug 'powerline/fonts'
  21. Plug 'rafi/awesome-vim-colorschemes'
  22.  
  23. "Windows and Features
  24. Plug 'bling/vim-airline'
  25. Plug 'majutsushi/tagbar'
  26. Plug 'scrooloose/nerdtree'
  27. " Plug 'SearchComplete'
  28. Plug 'junegunn/fzf', {'dir': '~/.zzf', 'do': './install -all'}
  29. Plug 'junegunn/fzf.vim'
  30. Plug 'tpope/vim-fugitive'
  31. Plug 'scrooloose/syntastic'
  32.  
  33. "Motions
  34. Plug 'easymotion/vim-easymotion'
  35. Plug 'tpope/vim-surround'
  36. Plug 'tpope/vim-commentary'
  37. " Plug 'godlygeek/tabular'
  38. Plug 'jiangmiao/auto-pairs'
  39. Plug 'junegunn/vim-easy-align'
  40.  
  41. "Language specific plugins
  42. " Plug 'mxw/vim-jsx'
  43. Plug 'jelera/vim-javascript-syntax'
  44. Plug 'tellijo/vim-react-native-snippets'
  45. Plug 'hail2u/vim-css3-syntax'
  46. Plug 'ap/vim-css-color'
  47.  
  48. "AutoCompletion
  49. Plug 'autozimu/LanguageClient-neovim', {
  50.     \ 'branch': 'next',
  51.     \ 'do': 'bash install.sh',
  52.     \ },
  53. Plug 'honza/vim-snippets'
  54. Plug 'ervandew/supertab'
  55. if has('nvim')
  56.     Plug 'Shougo/deoplete.nvim', {'do': ':UpdateRemotePlugins'}
  57.     " Plug 'roxma/nvim-completion-manager'
  58. else
  59.     Plug 'Shougo/deoplete.nvim'
  60.     Plug 'roxma/nvim-yarp'
  61.     Plug 'roxma/vim-hug-neovim-rpc'
  62. endif
  63. Plug 'sirver/ultisnips'
  64.  
  65. "---------------------------------------------------------------------------------
  66. " Initialize plugin system
  67. call plug#end()
  68.  
  69. "Gvim menu options and theme options
  70. set guioptions-=m "remove menu bar
  71. set guioptions-=T "remove toolbar
  72. set guioptions-=r "remove right-hand scroll bar
  73. set guioptions-=L "remove left-hand scrollbar
  74. set background=dark
  75. colorscheme apprentice
  76. set guifont=Ubuntu_Mono:h13:cANSI:qDRAFT
  77.  
  78.  
  79. " Colorize line numbers in insert and visual modes
  80. "---------------------------------------------------------------------------------
  81. function! Setcursorlinenrcolorinsert(mode) abort
  82.     " insert mode: blue
  83.     if a:mode == "i"
  84.         highlight cursorlinenr ctermfg=10 guifg=green
  85.         highlight cursor ctermbg=10 guibg=green
  86.  
  87.     " replace mode: red
  88.     elseif a:mode == "r"
  89.         highlight cursor ctermbg=1 guibg=#dc322f
  90.         highlight cursorlinenr ctermfg=1 guifg=#dc322f
  91.     endif
  92. endfunction
  93.  
  94. ""this needs to be fixed too
  95. " function! Setcursorlinenrcolorvisual() abort
  96. "     set updatetime=0
  97.  
  98. "     " visual mode: orange
  99. "     highlight cursorlinenr cterm=none ctermfg=9 guifg=#cb4b16
  100. " endfunction
  101.  
  102. function! Resetcursorlinenrcolor() abort
  103.     set updatetime=4000
  104.     highlight cursorlinenr ctermfg=4 guifg=#268bd2
  105.     highlight cursor ctermbg=4 guibg=#268bd2
  106. endfunction
  107.  
  108. augroup cursorlinenrcolorswap
  109.     autocmd!
  110.     autocmd insertenter * call Setcursorlinenrcolorinsert(v:insertmode)
  111.     autocmd insertleave * call Resetcursorlinenrcolor()
  112.     autocmd cursorhold * call Resetcursorlinenrcolor()
  113. augroup END
  114.  
  115. ""this needs to be fixed
  116. " vnoremap <silent> <expr> <sid>Setcursorlinenrcolorvisual Setcursorlinenrcolorvisual()
  117. " vnoremap <silent> <expr> <sid>Setcursorlinenrcolorvisual Setcursorlinenrcolorvisual()
  118. " nnoremap <silent> <script> v v<sid>Setcursorlinenrcolorvisual
  119. " nnoremap <silent> <script> v v<sid>Setcursorlinenrcolorvisual
  120. " nnoremap <silent> <script> <c-v> <c-v><sid>Setcursorlinenrcolorvisual
  121.  
  122. ""set insert mode block cursor
  123. "set gcr=n:blinkon0
  124. "set gcr=i:blinkon0
  125. "---------------------------------------------------------------------------------
  126.  
  127. set encoding=utf-8
  128.  
  129. "on search highlight instances
  130. set hlsearch
  131.  
  132.  
  133. "ex mode command completion
  134. set wildmenu
  135.  
  136. "search ignore capital letters
  137. set ignorecase
  138. set smartcase
  139.  
  140. "complete search pattern by pressing enter and cancel with esc
  141. set incsearch
  142.  
  143. "display line number
  144. set number
  145.  
  146. "display line relative to position
  147. set relativenumber
  148.  
  149. "each time a new or existing file is edited,
  150. "vim will try to recognize the type of the file and set the 'filetype' option.
  151. "this will trigger the filetype event, which can be used to set the syntax highlighting,
  152. "set options, etc.
  153. filetype plugin indent on    
  154. syntax on
  155. autocmd filetype * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
  156.  
  157. "doesn't wrap lines
  158. set nowrap
  159. "convert tab to spaces
  160. set expandtab
  161. "show existing tab with 8 spaces
  162. set tabstop=8
  163. "when indending with > or <, use 4 spaces
  164. set shiftwidth=4
  165.  
  166. set smarttab
  167. set splitright
  168. set splitbelow
  169.  
  170. "Auto indentation smart and more strict c indentation
  171. set autoindent
  172. " set smartindent
  173. set cindent
  174. set copyindent
  175.  
  176. "Show commands/letters i'm typing
  177. set showcmd
  178.  
  179. set backspace=indent,eol,start
  180. set history=1000
  181. set undolevels=1000
  182. set title
  183. set visualbell
  184. set noerrorbells
  185. set pastetoggle=<F2>
  186.  
  187. "Guide lines
  188. " set listchars=tab:\|\
  189. " set list
  190.  
  191. "---------------------------------------------------------------------------------
  192. "Leader
  193. let mapleader = "\<space>"
  194.  
  195. "Split window navigation and settings
  196. nnoremap <C-J> <C-W><C-J>
  197. nnoremap <C-K> <C-W><C-K>
  198. nnoremap <C-L> <C-W><C-L>
  199. nnoremap <C-H> <C-W><C-H>
  200.  
  201. "Resize Windows
  202. nnoremap <C-Up> <C-W>-
  203. nnoremap <C-Down> <C-W>+
  204. nnoremap <C-Right> <C-W>>
  205. nnoremap <C-Left> <C-W><
  206.  
  207. nnoremap <F4> :NERDTreeToggle <CR>
  208. nnoremap <F8> :TagbarToggle<CR>
  209. nnoremap <leader>w :w<CR>
  210. nnoremap <leader>q :q<CR>
  211. nnoremap <leader>f :FZF<CR>
  212.  
  213. " nnoremap <leader><leader> <leader><leader>s
  214. imap jk <Esc>
  215. imap JK <Esc>
  216.  
  217.  
  218. "Easy align
  219. nmap ga <Plug>(EasyAlign)
  220. xmap ga <Plug>(EasyAlign)
  221.  
  222. "Better copy paste
  223. nnoremap <leader>y "*y
  224. nnoremap <leader>p "*p
  225. nnoremap <leader>Y "+y
  226. nnoremap <leader>P "+p
  227.  
  228.  
  229. "---------------------------------------------------------------------------------
  230. ""Airline
  231. "let g:airline#extensions#tabline#enabled = 1
  232. "let g:airline_powerline_fonts = 1
  233. "let g:Powerline_symbols='unicode'
  234. "let g:airline_left_sep = "\uE0B0"
  235. "let g:airline_right_sep = "\uE0B2"
  236.  
  237. "let g:airline_theme='dark'
  238. "let g:airline#extensions#tabline#formatter = 'default'
  239. "let g:airline_symbols_ascii = 1
  240. "let g:airline_section_z = airline#section#create(["\uE0A1" . '%{line(".")}' . "\uE0A3" . '%{col(".")}'])
  241. "---------------------------------------------------------------------------------
  242. "You complete me and ultisnips settings
  243. let g:ycm_global_ycm_extra_conf= '~/.vim/.ycm_global_ycm_extra_conf.py'
  244. set completeopt-=preview
  245. " let g:ycm_show_diagnostics_ui = 0
  246. " let g:ycm_enable_diagnostic_signs = 0
  247. " let g:ycm_enable_diagnostic_highlighting = 0
  248. " let g:ycm_echo_current_diagnostic = 0
  249.  
  250. " make YCM compatible with UltiSnips (using supertab)
  251. let g:ycm_key_list_select_completion = ['<C-n>', '<Down>']
  252. let g:ycm_key_list_previous_completion = ['<C-p>', '<Up>']
  253. let g:SuperTabDefaultCompletionType = '<C-n>'
  254.  
  255. " better key bindings for UltiSnipsExpandTrigger
  256. let g:UltiSnipsExpandTrigger = "<tab>"
  257. let g:UltiSnipsJumpForwardTrigger = "<tab>"
  258. let g:UltiSnipsJumpBackwardTrigger = "<s-tab>"
  259.  
  260. "---------------------------------------------------------------------------------
  261. "Nerdtree
  262. let NERDTreeShowLineNumbers=1
  263. autocmd FileType nerdtree setlocal relativenumber
  264.  
  265. "---------------------------------------------------------------------------------
  266. "Deoplete
  267. let g:deoplete#enable_at_startup=1
  268.  
  269.  " Whether to include the types of the completions in the result data. Default: 0
  270.  let g:deoplete#sources#ternjs#types = 1
  271.  
  272.  " Whether to include the distance (in scopes for variables, in prototypes for
  273.  " properties) between the completions and the origin position in the result
  274.  " data. Default: 0
  275.  let g:deoplete#sources#ternjs#depths = 1
  276.  
  277.  " Whether to include documentation strings (if found) in the result data.
  278.  " Default: 0
  279.  let g:deoplete#sources#ternjs#docs = 1
  280.  
  281.  " When on, only completions that match the current word at the given point will
  282.  " be returned. Turn this off to get all results, so that you can filter on the
  283.  " client side. Default: 1
  284.  let g:deoplete#sources#ternjs#filter = 0
  285.  
  286.  " Whether to use a case-insensitive compare between the current word and
  287.  " potential completions. Default 0
  288.  let g:deoplete#sources#ternjs#case_insensitive = 1
  289.  
  290.  " When completing a property and no completions are found, Tern will use some
  291.  " heuristics to try and return some properties anyway. Set this to 0 to
  292.  " turn that off. Default: 1
  293.  let g:deoplete#sources#ternjs#guess = 0
  294.  
  295.  " Determines whether the result set will be sorted. Default: 1
  296.  let g:deoplete#sources#ternjs#sort = 0
  297.  
  298.  " When disabled, only the text before the given position is considered part of
  299.  " the word. When enabled (the default), the whole variable name that the cursor
  300.  " is on will be included. Default: 1
  301.  let g:deoplete#sources#ternjs#expand_word_forward = 0
  302.  
  303.  " Whether to ignore the properties of Object.prototype unless they have been
  304.  " spelled out by at least two characters. Default: 1
  305.  let g:deoplete#sources#ternjs#omit_object_prototype = 0
  306.  
  307.  " Whether to include JavaScript keywords when completing something that is not
  308.  " a property. Default: 0
  309.  let g:deoplete#sources#ternjs#include_keywords = 1
  310.  
  311.  " If completions should be returned when inside a literal. Default: 1
  312.  let g:deoplete#sources#ternjs#in_literal = 0
  313.  
  314.  
  315. " Add extra filetypes
  316.  let g:deoplete#sources#ternjs#filetypes = [
  317.                  \ 'jsx',
  318.                  \ 'javascript.jsx',
  319.                  \ 'vue',
  320.                  \ '...'
  321.                  \ ]
  322.  
  323. "----------------------------------------
  324. " Automatically start language servers.
  325. " let g:LanguageClient_autoStart = 1
  326.  
  327. " Required for operations modifying multiple buffers like rename.
  328. set hidden
  329. set completefunc=LanguageClient#complete
  330.  
  331. let g:LanguageClient_serverCommands = {
  332.     \ 'javascript': ['javascript-typescript-stdio'],
  333.     \ 'python': ['pyls'],
  334.     \ 'c': ['ccls', '--log-file=/tmp/cc.log'],
  335.     \ 'cpp': ['ccls', '--log-file=/tmp/cc.log'],
  336.     \ }
  337.  
  338. nnoremap <F6> :call LanguageClient_contextMenu()<CR>
  339. " Or map each action separately
  340. nnoremap <silent> <leader>lh :call LanguageClient#textDocument_hover()<CR>
  341. nnoremap <silent> <leader>ld :call LanguageClient#textDocument_definition()<CR>
  342. nnoremap <silent> <leader>lr :call LanguageClient#textDocument_rename()<CR>
  343.  
  344. " Run specific language and compile it
  345. autocmd filetype c nnoremap <F5> :w <CR> :!gcc % && ./a.out <CR>
  346. autocmd filetype cpp nnoremap <F5> :w <CR> :!g++ % && ./a.out <CR>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement