Guest User

Untitled

a guest
Feb 18th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.17 KB | None | 0 0
  1. """"""""""""""""""""""""""""""""""""""""
  2. " vim-plug
  3. """"""""""""""""""""""""""""""""""""""""
  4. call plug#begin('~/.vim/plugged')
  5.  
  6. Plug 'vim-airline/vim-airline'
  7. Plug 'vim-airline/vim-airline-themes'
  8. Plug 'tpope/vim-fugitive'
  9. Plug 'scrooloose/nerdtree'
  10. Plug 'Xuyuanp/nerdtree-git-plugin'
  11. Plug 'tiagofumo/vim-nerdtree-syntax-highlight'
  12. Plug 'valloric/youcompleteme'
  13. Plug 'w0rp/ale'
  14. Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
  15. Plug 'junegunn/fzf.vim'
  16. Plug 'pangloss/vim-javascript'
  17. Plug 'mxw/vim-jsx'
  18. Plug 'posva/vim-vue'
  19. Plug 'lumiliet/vim-twig'
  20. Plug 'Yggdroot/indentLine', { 'commit': '0a6171444fe036411c3155c04d4022a7b4af4bb6' }
  21. Plug 'chriskempson/base16-vim'
  22. Plug 'ryanoasis/vim-devicons'
  23.  
  24. call plug#end()
  25.  
  26. """"""""""""""""""""""""""""""""""""""""
  27. " Basic Vim Settings
  28. """"""""""""""""""""""""""""""""""""""""
  29. if &t_Co > 2 || has("gui_running")
  30. syntax on
  31. endif
  32. set nocompatible " (cp) use Vim defaults (much better)
  33. set encoding=utf-8
  34. set ttyfast
  35. set lazyredraw
  36. set pastetoggle=<F3>
  37. set hidden
  38. set history=1000
  39. set undolevels=1000
  40. set nobackup
  41. set nowritebackup
  42. set noswapfile
  43. set conceallevel=1
  44. set clipboard=unnamedplus
  45.  
  46. set timeoutlen=1000
  47. set ttimeoutlen=0
  48.  
  49. "- Window
  50. """ add '<C-W>_' to make it full height while switching window
  51. "map <C-J> <C-W>_j
  52. "map <C-K> <C-W>_k
  53. """ Move Window's Cursor
  54. nmap <C-k> <C-w>k
  55. nmap <C-j> <C-w>j
  56. nmap <C-l> <C-w>l
  57. nmap <C-h> <C-w>h
  58. """ Switch Window Position
  59. nmap <C-S-K> <C-w>K
  60. nmap <C-S-J> <C-w>J
  61.  
  62. """ For copy to clipboard
  63. vnoremap <C-d> "+d
  64. vnoremap <C-c> "+y
  65. inoremap <C-v> <ESC>"+pa
  66.  
  67. "- Colors
  68. set t_Co=256
  69. " if &t_Co >= 256 || has("gui_running")
  70. set termguicolors
  71. let base16colorspace=256
  72. colorscheme base16-default-dark-gnome
  73. " endif
  74. hi MatchParen cterm=bold ctermbg=none ctermfg=166
  75. "" Line number color
  76. " highlight LineNr term=bold cterm=NONE ctermfg=243 ctermbg=157 gui=NONE guifg=DarkGrey guibg=NONE
  77. "" Visual mode color
  78. " hi Visual ctermfg=0 ctermbg=255 gui=NONE guibg=White guifg=Black
  79. "" Cursor Line & Column color
  80. " hi CursorLine cterm=NONE ctermbg=darkred ctermfg=white guibg=darkred guifg=white
  81. " hi CursorColumn cterm=NONE ctermbg=darkred ctermfg=white guibg=darkred guifg=white
  82. " nnoremap <Leader>c :set cursorline! cursorcolumn!<CR>
  83.  
  84. au BufNewFile,BufRead *.ejs set filetype=html
  85.  
  86. "- Spaces & Tabs
  87. set autoindent
  88. set smartindent
  89. set tabstop=2
  90. set shiftwidth=2
  91. set smarttab
  92. set expandtab
  93.  
  94. "-- for html/rb/js/coffee/jade files, 2 spaces
  95. autocmd Filetype html,ruby,javascript,coffeescript,jade setlocal ts=2 sw=2
  96. autocmd Filetype javascript,coffeescript,jade setlocal sts=2
  97.  
  98. "-- for php & etc files, 4 spaces
  99. autocmd Filetype php,yaml,cpp setlocal ts=4 sw=4 sts=0
  100.  
  101. "- UI Config
  102. set ruler " (ru) show the cursor position at all times
  103. set number " (nu) show line numbers
  104. set showcmd " (sc) display an incomplete command in the lower right
  105. set cursorline
  106. set wildmenu
  107. set showmatch
  108. if has('mouse')
  109. set mouse=a
  110. endif
  111. filetype plugin indent on
  112.  
  113. "- Searching
  114. set wrapscan " (ws) allows search to wrap to top of document when the bottom has been hit
  115. set incsearch " (is) highlights what you are searching for as you type
  116. set hlsearch " (hls) highlights all instances of the last searched string
  117. set ignorecase " (ic) ignores case in search patterns
  118. set smartcase " (scs) don't ignore case when the search pattern has uppercase
  119. set infercase " (inf) during keyword completion, fix case of new word (when ignore case is on)
  120. hi search cterm=NONE ctermfg=0 ctermbg=191
  121.  
  122. "- Folding
  123. set foldenable
  124. set foldlevelstart=10
  125. set foldmethod=indent " (fdm) creates a fold for every level of indentation
  126. nnoremap <space> za
  127.  
  128. let mapleader=","
  129.  
  130. nnoremap <F4> :exec &conceallevel ? ":set conceallevel=0" : "set conceallevel=1"<cr>
  131.  
  132. """"""""""""""""""""""""""""""""""""""""
  133. " vim-airline
  134. """"""""""""""""""""""""""""""""""""""""
  135. set laststatus=2
  136. let g:airline_theme = 'molokai'
  137. let g:airline_left_sep = ''
  138. let g:airline_right_sep = ''
  139. let g:airline_powerline_fonts=1
  140. let g:airline#extensions#tabline#enabled = 1
  141. let g:airline#extensions#tabline#left_sep = ''
  142. let g:airline#extensions#tabline#left_alt_sep = '|'
  143. let g:airline#extensions#tabline#fnametruncate = 1
  144. let g:airline#extensions#tabline#show_buffers = 0
  145. let g:airline#extensions#tabline#buf_label_first = 1
  146. let g:airline#extensions#tabline#buffers_label = 'b'
  147. let g:airline#extensions#tabline#tabs_label = 't'
  148. let g:airline#extensions#tabline#buffer_idx_mode = 1
  149. nmap <leader>1 <Plug>AirlineSelectTab1
  150. nmap <leader>2 <Plug>AirlineSelectTab2
  151. nmap <leader>3 <Plug>AirlineSelectTab3
  152. nmap <leader>4 <Plug>AirlineSelectTab4
  153. nmap <leader>5 <Plug>AirlineSelectTab5
  154. nmap <leader>6 <Plug>AirlineSelectTab6
  155. nmap <leader>7 <Plug>AirlineSelectTab7
  156. nmap <leader>8 <Plug>AirlineSelectTab8
  157. nmap <leader>9 <Plug>AirlineSelectTab9
  158. nmap <leader>- <Plug>AirlineSelectPrevTab
  159. nmap <leader>+ <Plug>AirlineSelectNextTab
  160.  
  161. """"""""""""""""""""""""""""""""""""""""
  162. " NERDTree
  163. """"""""""""""""""""""""""""""""""""""""
  164. map <leader>nn :NERDTreeToggle<cr>
  165. map <leader>nf :NERDTreeFind<cr>
  166. autocmd StdinReadPre * let s:std_in=1
  167. autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | endif
  168.  
  169. " let g:NERDTreeDirArrowExpandable = '▸'
  170. " let g:NERDTreeDirArrowCollapsible = '▾'
  171. let g:NERDTreeIndicatorMapCustom = {
  172. \ "Modified" : "✹",
  173. \ "Staged" : "✚",
  174. \ "Untracked" : "✭",
  175. \ "Renamed" : "➜",
  176. \ "Unmerged" : "═",
  177. \ "Deleted" : "✖",
  178. \ "Dirty" : "✗",
  179. \ "Clean" : "✔︎",
  180. \ 'Ignored' : '☒',
  181. \ "Unknown" : "?"
  182. \ }
  183.  
  184. """"""""""""""""""""""""""""""""""""""""
  185. " vim fzf
  186. """"""""""""""""""""""""""""""""""""""""
  187. map <c-p> :FZF<CR>
  188. let g:fzf_action = {
  189. \ 'ctrl-t': 'tab split',
  190. \ 'ctrl-x': 'split',
  191. \ 'ctrl-v': 'vsplit' }
  192.  
  193. let g:fzf_layout = { 'down': '~40%' }
  194.  
  195. let g:fzf_colors =
  196. \ { 'fg': ['fg', 'Normal'],
  197. \ 'bg': ['bg', 'Normal'],
  198. \ 'hl': ['fg', 'Comment'],
  199. \ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'],
  200. \ 'bg+': ['bg', 'CursorLine', 'CursorColumn'],
  201. \ 'hl+': ['fg', 'Statement'],
  202. \ 'info': ['fg', 'PreProc'],
  203. \ 'border': ['fg', 'Ignore'],
  204. \ 'prompt': ['fg', 'Conditional'],
  205. \ 'pointer': ['fg', 'Exception'],
  206. \ 'marker': ['fg', 'Keyword'],
  207. \ 'spinner': ['fg', 'Label'],
  208. \ 'header': ['fg', 'Comment'] }
  209.  
  210. let g:fzf_history_dir = '~/.local/share/fzf-history'
  211. let g:fzf_buffers_jump = 1
  212.  
  213. """"""""""""""""""""""""""""""""""""""""
  214. " vim-indentline
  215. """"""""""""""""""""""""""""""""""""""""
  216. let g:indentLine_enabled = 1
  217. " let g:indentLine_setConceal = 0
  218. let g:indentLine_color_gui = '#e37272'
  219.  
  220. """"""""""""""""""""""""""""""""""""""""
  221. " vim-javascript
  222. """"""""""""""""""""""""""""""""""""""""
  223. let g:javascript_plugin_jsdoc = 1
  224. let g:javascript_plugin_flow = 1
  225.  
  226. let g:javascript_conceal_function = "ƒ"
  227. let g:javascript_conceal_null = "ø"
  228. let g:javascript_conceal_this = "@"
  229. let g:javascript_conceal_return = "⇚"
  230. let g:javascript_conceal_undefined = "¿"
  231. let g:javascript_conceal_NaN = "ℕ"
  232. let g:javascript_conceal_prototype = "¶"
  233. let g:javascript_conceal_static = "•"
  234. let g:javascript_conceal_super = "Ω"
  235. let g:javascript_conceal_arrow_function = "⇒"
  236. let g:javascript_conceal_noarg_arrow_function = "🞅"
  237. let g:javascript_conceal_underscore_arrow_function = "🞅"
  238.  
  239. """"""""""""""""""""""""""""""""""""""""
  240. " vim-jsx
  241. """"""""""""""""""""""""""""""""""""""""
  242. let g:jsx_ext_required = 0
  243.  
  244. """"""""""""""""""""""""""""""""""""""""
  245. " vim-ale
  246. """"""""""""""""""""""""""""""""""""""""
  247. let g:ale_linters = {
  248. \ 'javascript': ['eslint', 'flow'],
  249. \ 'jsx': ['eslint'],
  250. \}
  251. let g:ale_completion_enabled = 1
  252. let g:ale_set_highlights = 1
  253. let g:ale_sign_error = 'X'
  254. let g:ale_sign_warning = '?'
  255. let g:ale_statusline_format = ['X %d', '? %d', '']
  256. let g:ale_echo_msg_format = '%linter% says %s'
  257. let g:ale_lint_on_text_changed = 'never'
  258. let g:ale_fix_on_save = 1
  259. let g:ale_open_list = 0
  260.  
  261. augroup FiletypeGroup
  262. autocmd!
  263. au BufNewFile,BufRead *.jsx set filetype=javascript.jsx
  264. augroup END
  265.  
  266. highlight clear ALEErrorSign " otherwise uses error bg color (typically red)
  267. highlight clear ALEWarningSign " otherwise uses error bg color (typically red)
  268. nnoremap <leader>an :ALENextWrap<cr>
  269. nnoremap <leader>ap :ALEPreviousWrap<cr>
  270.  
  271. """"""""""""""""""""""""""""""""""""""""
  272. " vim-devicons
  273. """"""""""""""""""""""""""""""""""""""""
  274. " Force extra padding in NERDTree so that the filetype icons line up vertically
  275. let g:WebDevIconsNerdTreeGitPluginForceVAlign = 0
  276. " enable folder/directory glyph flag (default 0)
  277. let g:WebDevIconsUnicodeDecorateFolderNodes = 0
  278. " enable open and close folder/directory glyph flags (default 0)
  279. let g:DevIconsEnableFoldersOpenClose = 1
  280. " enable file extension pattern matching glyphs on folder/directory (default with 0)
  281. let g:DevIconsEnableFolderExtensionPatternMatching = 1
  282.  
  283. " Load all plugins now.
  284. " Plugins need to be added to runtimepath before helptags can be generated.
  285. packloadall
  286. " Load all of the helptags now, after plugins have been loaded.
  287. " All messages and errors will be ignored.
  288. silent! helptags ALL
Add Comment
Please, Sign In to add comment