Advertisement
fauzie811

init.vim

Jul 15th, 2019
920
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VIM 9.14 KB | None | 0 0
  1. """""""""""""""""""
  2. " NEOVIM SETTINGS "
  3. """""""""""""""""""
  4. set nocompatible
  5. set encoding=UTF-8
  6. syntax on
  7. filetype on
  8. filetype plugin on
  9. filetype indent on
  10. set copyindent                  " copy the previous indentation on autoindenting
  11.  
  12. "" Detect line endings, but prefer Unix endings
  13. set fileformats=unix,dos,mac
  14.  
  15. "" Default formatting when not detected
  16. "set autoindent smartindent softtabstop=4 tabstop=4 shiftwidth=4
  17. set autoindent softtabstop=4 tabstop=4 shiftwidth=4
  18. """ Default to spaces when not detected
  19. set expandtab
  20.  
  21. "" Features
  22. set number
  23. set backspace=eol,start,indent
  24. set whichwrap+=<,>,h,l,[,]
  25. set colorcolumn=80
  26. "set cursorline " Slow
  27. set completeopt=longest,menuone " Preview mode causes flickering
  28.  
  29. "" Match braces
  30. "set showmatch
  31. "set matchtime=2
  32.  
  33. " Kepp lines above or below the cursor at all times
  34. set scrolloff=5
  35.  
  36. "" Increase command height for echodoc
  37. "set cmdheight=2
  38.  
  39. "" Wildmode
  40. set wildmenu
  41. set wildmode=list:longest,full
  42.  
  43. "" Hide buffers when abandoned
  44. set hidden
  45.  
  46. "" Regex settings
  47. set ignorecase
  48. set smartcase
  49. set hlsearch
  50. set incsearch
  51.  
  52. "" Folds
  53. set foldmethod=indent
  54. set foldnestmax=3
  55.  
  56. "" Graphical
  57. set termguicolors
  58. "set lazyredraw
  59.  
  60. "" Use system clipboard
  61. "set clipboard
  62.  
  63. """"""""""""""""
  64. " LOAD PLUGINS "
  65. """"""""""""""""
  66. call plug#begin('~/.config/nvim/plugged')
  67.  
  68. "" Modules
  69. Plug 'w0rp/ale'
  70. Plug 'scrooloose/nerdtree'
  71. Plug 'vim-airline/vim-airline'
  72. Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
  73. Plug 'farmergreg/vim-lastplace'
  74.  
  75. Plug 'sirver/ultisnips'
  76. Plug 'honza/vim-snippets'
  77. Plug 'airblade/vim-gitgutter'
  78. Plug 'ap/vim-css-color'
  79. Plug 'Chiel92/vim-autoformat'
  80. Plug 'tpope/vim-surround'
  81. "Plug 'Shougo/echodoc.vim'
  82. Plug 'tpope/vim-sleuth'
  83. Plug 'jiangmiao/auto-pairs'
  84. Plug 'autozimu/LanguageClient-neovim', {
  85.     \ 'branch': 'next',
  86.     \ 'do': 'bash install.sh',
  87.     \ }
  88.  
  89. Plug 'tpope/vim-sensible'
  90. Plug 'editorconfig/editorconfig-vim'
  91. Plug 'junegunn/fzf', { 'do': './install --bin' }
  92. Plug 'junegunn/fzf.vim'
  93.  
  94. "" Syntax / File Support
  95. Plug 'sheerun/vim-polyglot'
  96. Plug 'JulesWang/css.vim'
  97.  
  98. "" Autocompletion
  99. Plug 'carlitux/deoplete-ternjs', { 'for': ['javascript', 'javascript.jsx'] }
  100. Plug 'ternjs/tern_for_vim', { 'for': ['javascript', 'javascript.jsx'] }
  101. Plug 'othree/jspc.vim', { 'for': ['javascript', 'javascript.jsx'] }
  102. Plug 'Shougo/neoinclude.vim'
  103. Plug 'Shougo/neco-vim'
  104. Plug 'othree/csscomplete.vim'
  105. Plug 'othree/html5.vim'
  106. Plug 'othree/xml.vim'
  107. Plug 'lvht/phpcd.vim', { 'for': 'php', 'do': 'composer install' }
  108.  
  109. "" Themes
  110. Plug 'ayu-theme/ayu-vim'
  111. Plug 'rakr/vim-one'
  112. Plug 'ryanoasis/vim-devicons'
  113. Plug 'Yggdroot/indentLine'
  114.  
  115. call plug#end()
  116.  
  117. let g:plugs_shallow = 1
  118.  
  119. """"""""""
  120. " THEMES "
  121. """"""""""
  122. "" Colorscheme
  123. let ayucolor="dark"
  124. set background=dark
  125. colorscheme ayu
  126. let g:one_allow_italics = 1
  127.  
  128. "" This will repair colors in Tmux.
  129. let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
  130. let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
  131.  
  132. set signcolumn=yes
  133. set numberwidth=5
  134. set timeoutlen=1000
  135. set ttimeoutlen=0
  136. set noshowmode
  137. set nofoldenable
  138. set mouse=a
  139. set switchbuf=usetab,newtab
  140. set autoread
  141. au FocusGained,BufEnter * :checktime
  142.  
  143. "" Airline
  144. let g:airline_theme = 'ayu'
  145. let g:airline_powerline_fonts = 1
  146. let g:airline#extensions#tabline#enabled = 1
  147. let g:airline#extensions#ale#enabled = 1
  148. "let g:airline_skip_empty_sections = 1
  149.  
  150. if !exists('g:airline_symbols')
  151.   let g:airline_symbols = {}
  152. endif
  153. let g:airline_mode_map = {
  154.     \ '__' : '-',
  155.     \ 'c'  : 'C',
  156.     \ 'i'  : 'I',
  157.     \ 'ic' : 'I',
  158.     \ 'ix' : 'I',
  159.     \ 'n'  : 'N',
  160.     \ 'ni' : 'N',
  161.     \ 'no' : 'N',
  162.     \ 'R'  : 'R',
  163.     \ 'Rv' : 'R',
  164.     \ 's'  : 'S',
  165.     \ 'S'  : 'S',
  166.     \ '' : 'S',
  167.     \ 't'  : 'T',
  168.     \ 'v'  : 'V',
  169.     \ 'V'  : 'V',
  170.     \ '' : 'V',
  171.     \ }
  172. "call airline#parts#define_accent('mode', 'none')
  173.  
  174. "" Indent Lines
  175. let g:indentLine_char = '▏'
  176. let g:indentLine_first_char = '▏'
  177. let g:indentLine_showFirstIndentLevel = 1
  178. let g:indentLine_setColors = 0
  179. let g:indentLine_color_term = 255
  180. "let g:indentline_setconceal = 0
  181. "let g:indentline_conceallevel = 1
  182. "let g:indentline_concealcursor = ''
  183.  
  184. """"""""""""
  185. " NERDTREE "
  186. """"""""""""
  187. let NERDTreeShowHidden = 1
  188. let NERDTreeMinimalUI = 1
  189. let NERDTreeAutoDeleteBuffer = 1
  190. let g:NERDTreeDirArrowExpandable = '' " '▶'
  191. let g:NERDTreeDirArrowCollapsible = '' " '▼'
  192.  
  193. autocmd StdinReadPre * let s:std_in=1
  194. " Open NERDTree when no files specified
  195. autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
  196. " Open NERDTree when opening a directory
  197. autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | endif
  198.  
  199. " Close vim if the only window left open is NERDTree
  200. autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
  201.  
  202. map <C-n> :NERDTreeToggle<CR>
  203.  
  204. """"""""""""
  205. " DEOPLETE "
  206. """"""""""""
  207. let g:deoplete#enable_at_startup = 1
  208.  
  209. ""Deoplete per-autocompleter settings
  210. """ TernJS
  211. let g:tern_request_timeout = 1
  212. let g:deoplete#sources#ternjs#depths = 1
  213. let g:deoplete#sources#ternjs#types = 1
  214. let g:deoplete#sources#ternjs#docs = 1
  215. let g:tern#command = ["tern"]
  216. let g:tern#arguments = ["--persistent"]
  217.  
  218. """ PHP
  219. let g:deoplete#ignore_sources = get(g:, 'deoplete#ignore_sources', {})
  220. let g:deoplete#ignore_sources.php = ['omni']
  221.  
  222. """ Omnifunctions
  223. let g:deoplete#omni#functions = {}
  224.  
  225. let g:deoplete#omni#functions.javascript = [
  226.       \ 'tern#Complete',
  227.       \ 'jspc#omni',
  228.       \ 'javascriptcomplete#CompleteJS'
  229.       \]
  230. let g:deoplete#omni#functions.css = 'csscomplete#CompleteCSS'
  231. let g:deoplete#omni#functions.html = [
  232.       \ 'htmlcomplete#CompleteTags',
  233.       \ 'xmlcomplete#CompleteTags'
  234.       \]
  235. let g:deoplete#omni#functions.xml = 'xmlcomplete#CompleteTags'
  236. "let g:deoplete#omni#functions.php = 'phpcd#CompletePHP'
  237.  
  238. """"""""""""""""""""
  239. " LANGUAGE SERVERS "
  240. """"""""""""""""""""
  241. "let g:LanguageClient_serverCommands = {
  242. "    \ 'javascript': ['javascript-typescript-stdio'],
  243. "    \ 'vue': ['vls'],
  244. "    \ }
  245. "nnoremap <F5> :call LanguageClient_contextMenu()<CR>
  246. "nnoremap <silent> K :call LanguageClient#textDocument_hover()<CR>
  247. "nnoremap <silent> gd :call LanguageClient#textDocument_definition()<CR>
  248. "nnoremap <silent> <F2> :call LanguageClient#textDocument_rename()<CR>
  249.  
  250. """""""
  251. " ALE "
  252. """""""
  253. let g:ale_set_highlights = 0
  254. let g:ale_sign_error = '' " Less aggressive than the default '>>'
  255. let g:ale_sign_warning = ''
  256. let g:ale_linters = {
  257. \  'javascript': ['standard'],
  258. \  'php': ['php'],
  259. \}
  260. let g:ale_fixers = {'javascript': ['standard']}
  261. let g:ale_php_phpcs_standard = 'PSR2'
  262. let g:ale_linters_explicit = 1
  263.  
  264. hi ALEWarningSign ctermfg=yellow ctermbg=none guifg=#FFEB3B guibg=none
  265. hi ALEErrorSign ctermfg=red ctermbg=none guifg=#F44336 guibg=none
  266.  
  267. """""""""""""
  268. " ULTISNIPS "
  269. """""""""""""
  270.  
  271. """""""""""""""""""""""""""""""""""""
  272. " SUPERTAB (AND COMPLETION HOTKEYS) "
  273. """""""""""""""""""""""""""""""""""""
  274. let g:SuperTabDefaultCompletionType = '<C-x><C-o>'
  275. let g:UltiSnipsExpandTrigger = '<C-j>'
  276. " Map Tab and Enter to autocompletion
  277. inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
  278. inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>"
  279.  
  280. """""""""""""""""""""""""
  281. " SYNTAX / FILE SUPPORT "
  282. """""""""""""""""""""""""
  283. "" Enable JSDoc syntax highlighting
  284. let g:javascript_plugin_jsdoc = 1
  285.  
  286. let g:vue_disable_pre_processors=1
  287. autocmd FileType vue syntax sync fromstart
  288.  
  289. nnoremap <C-p> :Files<CR>
  290.  
  291.  
  292.  
  293. let g:AutoPairsFlyMode = 1
  294.  
  295. let g:vim_json_syntax_conceal = 0
  296. let g:enable_bold_font = 1
  297. let g:enable_italic_font = 1
  298.  
  299. " Customize fzf colors to match your color scheme
  300. let g:fzf_colors =
  301. \ { 'fg':      ['fg', 'Normal'],
  302.   \ 'bg':      ['bg', 'Normal'],
  303.   \ 'hl':      ['fg', 'Comment'],
  304.   \ 'fg+':     ['fg', 'CursorLine', 'CursorColumn', 'Normal'],
  305.   \ 'bg+':     ['bg', 'CursorLine', 'CursorColumn'],
  306.   \ 'hl+':     ['fg', 'Statement'],
  307.   \ 'info':    ['fg', 'PreProc'],
  308.   \ 'border':  ['fg', 'Ignore'],
  309.   \ 'prompt':  ['fg', 'Conditional'],
  310.   \ 'pointer': ['fg', 'Exception'],
  311.   \ 'marker':  ['fg', 'Keyword'],
  312.   \ 'spinner': ['fg', 'Label'],
  313.   \ 'header':  ['fg', 'Comment'] }
  314. autocmd! FileType fzf
  315. autocmd  FileType fzf set laststatus=0 noruler
  316.   \| autocmd BufLeave <buffer> set laststatus=2 ruler
  317.  
  318. let g:WebDevIconsUnicodeDecorateFolderNodes = 1
  319. "let g:WebDevIconsUnicodeDecorateFolderNodeDefaultSymbol = ''
  320. "let g:WebDevIconsNerdTreeAfterGlyphPadding = '  '
  321.  
  322.  
  323. let g:jsx_ext_required = 0
  324. let g:mta_filetypes = {
  325. \  'javascript.jsx' : 1,
  326. \}
  327.  
  328. set shortmess=a
  329.  
  330. let g:formatdef_standard = '"standard --fix"'
  331. let g:formatters_javascript = ['standard']
  332.  
  333. "remove trailing whitespaces on save
  334. autocmd BufWritePre * %s/\s\+$//e
  335.  
  336.  
  337.  
  338. " Use ctrl-[hjkl] to select the active split!
  339. nmap <silent> <c-k> :wincmd k<CR>
  340. nmap <silent> <c-j> :wincmd j<CR>
  341. nmap <silent> <c-h> :wincmd h<CR>
  342. nmap <silent> <c-l> :wincmd l<CR>
  343.  
  344.  
  345. map <F9> :bprevious<CR>
  346. map <F10> :bnext<CR>
  347.  
  348. noremap <F3> :Autoformat<CR>
  349.  
  350.  
  351. "set guicursor=n-v-c:block-Cursor/lCursor-blinkon0,i-ci:ver25-Cursor/lCursor,r-cr:hor20-Cursor/lCursor
  352. set guicursor=n-v-c-sm:block-blinkon500,i-ci-ve:ver25-blinkon500,r-cr-o:hor20
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement