diff --git a/init.vim b/init.vim index edc7398..3ffdf7e 100644 --- a/init.vim +++ b/init.vim @@ -3,61 +3,41 @@ filetype off " required " Section Plugins {{{ " Load vim-plug -if has("nvim") - if empty(glob("~/.config/nvim/autoload/plug.vim")) - execute '!curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' - endif -else - if empty(glob("~/.vim/autoload/plug.vim")) - execute '!curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.github.com/junegunn/vim-plug/master/plug.vim' - endif +if empty(glob("~/.config/nvim/autoload/plug.vim")) + execute '!curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' endif call plug#begin() -" alternatively, pass a path where Vundle should install plugins -"call vundle#begin('~/some/path/here') -" let Vundle manage Vundle, required -Plug 'VundleVim/Vundle.vim' +Plug 'VundleVim/Vundle.vim' " let Vundle manage Vundle, required Plug 'tpope/vim-fugitive' " Git integration -Plug 'tpope/vim-sensible' +Plug 'tpope/vim-sensible' " Defaults everyone can agree on +Plug 'tpope/vim-surround' " better handling of surrounding markers +Plug 'tpope/vim-ragtag' " Enhancement of surround for html +Plug 'tpope/vim-repeat' " repeat last command with . +Plug 'tpope/vim-dadbod' " Modern database interface for Vim Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } " file tree Plug 'Xuyuanp/nerdtree-git-plugin', { 'on': 'NERDTreeToggle' } Plug 'scrooloose/nerdcommenter' " better commenting -if has("nvim") - Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } -else - Plug 'Shougo/neocomplete.vim' -endif +Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } " completion engine Plug 'Shougo/neosnippet.vim' " snippet engine Plug 'Shougo/neosnippet-snippets' " snippets Plug 'easymotion/vim-easymotion' " better motion with leader -Plug 'bling/vim-airline' -Plug 'tpope/vim-ragtag' -Plug 'tpope/vim-surround' " better handling of surrounding markers -Plug 'tpope/vim-repeat' " repeat last command with . -if has("nvim") - Plug 'w0rp/ale' " asynchronous linting engine -else - Plug 'vim-syntastic/syntastic' " automatic linters -endif -Plug 'altercation/vim-colors-solarized' " solarized theme +Plug 'bling/vim-airline' " statusline +Plug 'w0rp/ale' " asynchronous linting engine Plug 'godlygeek/tabular' " Align text on symbols Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } " fuzzy file finder Plug 'junegunn/fzf.vim' " vim integration for fzf -if has("nvim") - " Problems with Syntastic in vim - Plug 'airblade/vim-gitgutter' " git status in gutter column -endif -Plug 'tpope/vim-dadbod' " Modern database interface for Vim +Plug 'airblade/vim-gitgutter' " git status in gutter column Plug 'radenling/vim-dispatch-neovim' " support for :Start command, needed in dadbod -" html / templates +" html / templates{{{ Plug 'mattn/emmet-vim', { 'for': ['html', 'php', 'gohtmltmpl', 'vue'] } " emmet support for vim - easily create markdup wth CSS-like syntax Plug 'gregsexton/MatchTag', { 'for': ['html', 'php', 'gohtmltmpl', 'vue'] } " match tags in html, similar to paren support Plug 'othree/html5.vim', { 'for': ['html', 'php', 'gohtmltmpl', 'vue'] } " html5 support +"}}} -" JavaScript +" JavaScript{{{ Plug 'gavocanov/vim-js-indent', { 'for': [ 'javascript' ]} " JavaScript indent support Plug 'moll/vim-node', { 'for': [ 'javascript', 'vue' ]} " node support "Plug 'othree/yajs.vim', { 'for': [ 'javascript', 'vue' ]} " JavaScript syntax plugin @@ -65,49 +45,61 @@ Plug 'moll/vim-node', { 'for': [ 'javascript', 'vue' ]} " node support Plug 'https://github.com/othree/jspc.vim', { 'for': [ 'javascript', 'vue' ]} " Function parameter completion Plug 'heavenshell/vim-jsdoc', { 'for': [ 'javascript', 'vue' ]} " Generate JSDoc comments Plug 'posva/vim-vue', { 'for': [ 'javascript', 'html', 'vue' ] } " vue.js integration -Plug 'carlitux/deoplete-ternjs', { 'for': [ 'javascript', 'vue', 'html' ], 'do': 'npm install -g tern' } +Plug 'carlitux/deoplete-ternjs', { 'for': [ 'javascript', 'vue', 'html' ], 'do': 'npm install -g tern' } " deoplete completion via ternjs +"}}} -" Go +" Go {{{ Plug 'fatih/vim-go', { 'for': [ 'go', 'html', 'gohtmltmpl' ], 'do': ':GoInstallBinaries' } " go support Plug 'zchee/deoplete-go', { 'for': 'go' } +"}}} -" LaTeX +" LaTeX{{{ Plug 'lervag/vimtex', { 'for': 'tex' } +"}}} -" Markdown +" Markdown{{{ Plug 'suan/vim-instant-markdown', { 'for': 'markdown' } Plug 'tpope/vim-markdown', { 'for': 'markdown'} +"}}} -" Colorschemes +" Colorschemes{{{ Plug 'altercation/vim-colors-solarized' +"}}} -" TOML +" TOML{{{ Plug 'cespare/vim-toml', { 'for': 'toml' } +"}}} -" Haskell +" Haskell{{{ Plug 'bitc/vim-hdevtools', { 'for': 'haskell' } Plug 'nbouscal/vim-stylish-haskell', { 'for': 'haskell' } +"}}} -" C/C++ +" C/C++{{{ Plug 'Rip-Rip/clang_complete', { 'for': ['c', 'cpp'], 'do': 'make install' } let g:clang_library_path='/usr/lib/llvm-6.0/lib/libclang-6.0.so.1' Plug 'rhysd/vim-clang-format', { 'for' : ['c', 'cpp', 'java'] } +"}}} -" PHP +" PHP{{{ "Plug 'shawncplus/phpcomplete.vim', { 'for': 'php', 'do': 'curl -Ss http://vim-php.com/phpctags/install/phpctags.phar > ~/bin/phpctags && chmod +x ~/bin/phpctags' } Plug 'lvht/phpcd.vim', { 'for': 'php', 'do': 'composer install' } Plug 'captbaritone/better-indent-support-for-php-with-html', { 'for': 'php' } Plug 'lumiliet/vim-twig', { 'for': [ 'php', 'html' ] } " Twig templates +"}}} -" Python +" Python{{{ Plug 'davidhalter/jedi-vim', { 'for': 'python', 'do': 'pip install jedi' } Plug 'zchee/deoplete-jedi', { 'for': 'python' } +"}}} -" Java +" Java{{{ Plug 'artur-shaik/vim-javacomplete2', { 'for': 'java' } +"}}} -" MIPS +" MIPS{{{ Plug 'vim-scripts/mips.vim' +"}}} " All of your Plugins must be added before the following line call plug#end() " required @@ -116,8 +108,9 @@ filetype plugin indent on " required " THEME{{{ colorscheme solarized -set background=dark" +set background=dark +" Use light theme if whole shell is in light mode let themeenv=$THEME_SWITCHER if themeenv=='light' set background=light @@ -125,18 +118,18 @@ endif " }}} " SETTINGS{{{ -set number -set autoread -set colorcolumn=80 +set number " line numbers +set autoread " reload file automatically +set colorcolumn=80 " highlight column 80 set history=1000 -set wildignore+=node_modules +set wildignore+=node_modules " ignore node_modules folder from file search " make comments and HTML attributes italic highlight Comment cterm=italic highlight htmlArg cterm=italic -set autoindent " automatically set indent of new line +set autoindent " automatically set indent of new line set smartindent set tabstop=4 set shiftwidth=4 @@ -202,19 +195,6 @@ let NERDTreeShowHidden=1 let g:airline_powerline_fonts = 1 -" Syntastic{{{ -if !has("nvim") - let g:syntastic_always_populate_loc_list = 1 - let g:syntastic_auto_loc_list = 1 - let g:syntastic_check_on_open = 1 - let g:syntastic_check_on_wq = 0 - let g:syntastic_aggregate_errors = 1 - set statusline+=%#warningmsg# - set statusline+=%{SyntasticStatuslineFlag()} - set statusline+=%* -endif -"}}} - " ALE {{{ let g:airline#extensions#ale#enabled = 1 "}}} @@ -245,89 +225,15 @@ autocmd FileType c,cpp,objc vnoremap f :ClangFormat "}}} " Completion {{{ -if !has("nvim") - "Note: This option must be set in .vimrc(_vimrc). NOT IN .gvimrc(_gvimrc)! - " Disable AutoComplPop. - let g:acp_enableAtStartup = 0 - " Use neocomplete. - let g:neocomplete#enable_at_startup = 1 - " Use smartcase. - let g:neocomplete#enable_smart_case = 1 - " Set minimum syntax keyword length. - let g:neocomplete#sources#syntax#min_keyword_length = 3 - - " Define dictionary. - let g:neocomplete#sources#dictionary#dictionaries = { - \ 'default' : '', - \ 'vimshell' : $HOME.'/.vimshell_hist', - \ 'scheme' : $HOME.'/.gosh_completions' - \ } - - " Define keyword. - if !exists('g:neocomplete#keyword_patterns') - let g:neocomplete#keyword_patterns = {} - endif - let g:neocomplete#keyword_patterns['default'] = '\h\w*' - - " Plugin key-mappings. - inoremap neocomplete#undo_completion() - inoremap neocomplete#complete_common_string() - - " Recommended key-mappings. - " : close popup and save indent. - inoremap =my_cr_function() - function! s:my_cr_function() - return (pumvisible() ? "\" : "" ) . "\" - " For no inserting key. - "return pumvisible() ? "\" : "\" - endfunction - " : completion. - inoremap pumvisible() ? "\" : "\" - " , : close popup and delete backword char. - inoremap neocomplete#smart_close_popup()."\" - inoremap neocomplete#smart_close_popup()."\" - " Close popup by . - "inoremap pumvisible() ? "\" : "\" - - " AutoComplPop like behavior. - "let g:neocomplete#enable_auto_select = 1 - - " Shell like behavior(not recommended). - "set completeopt+=longest - "let g:neocomplete#enable_auto_select = 1 - "let g:neocomplete#disable_auto_complete = 1 - "inoremap pumvisible() ? "\" : "\\" - - " Enable omni completion. - autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS - autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags - autocmd FileType javascript setlocal omnifunc=tern#Complete - autocmd FileType python setlocal omnifunc=pythoncomplete#Complete - autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags - - " Enable heavy omni completion. - if !exists('g:neocomplete#sources#omni#input_patterns') - let g:neocomplete#sources#omni#input_patterns = {} - endif - "let g:neocomplete#sources#omni#input_patterns.php = '[^. \t]->\h\w*\|\h\w*::' - "let g:neocomplete#sources#omni#input_patterns.c = '[^.[:digit:] *\t]\%(\.\|->\)' - "let g:neocomplete#sources#omni#input_patterns.cpp = '[^.[:digit:] *\t]\%(\.\|->\)\|\h\w*::' - - " For perlomni.vim setting. - " https://github.com/c9s/perlomni.vim - let g:neocomplete#sources#omni#input_patterns.perl = '\h\w*->\h\w*\|\h\w*::' - -else - " Use deoplete. - let g:deoplete#enable_at_startup = 1 - - " Use TAB to cycle between matches - inoremap pumvisible() ? "\" : "\" - inoremap pumvisible() ? "\" : "\" - - let g:deoplete#ignore_sources = get(g:, 'deoplete#ignore_sources', {}) - let g:deoplete#ignore_sources.php = ['omni'] -endif +" Use deoplete. +let g:deoplete#enable_at_startup = 1 + +" Use TAB to cycle between matches +inoremap pumvisible() ? "\" : "\" +inoremap pumvisible() ? "\" : "\" + +let g:deoplete#ignore_sources = get(g:, 'deoplete#ignore_sources', {}) +let g:deoplete#ignore_sources.php = ['omni'] " Neosnippet Settings imap (neosnippet_expand_or_jump)