236 lines
7.1 KiB
VimL
236 lines
7.1 KiB
VimL
" set the runtime path to include Vundle and initialize
|
|
"call has('python3')
|
|
|
|
" Start plugins
|
|
call plug#begin('~/.vim/plugged')
|
|
" Javascript
|
|
|
|
" Plug 'jelera/vim-javascript-syntax' " Replaced by yajs.vim
|
|
Plug 'pangloss/vim-javascript', {'for': 'javascript'}
|
|
Plug 'nathanaelkane/vim-indent-guides', {'for': 'javascript'}
|
|
Plug 'othree/yajs.vim', {'for': 'javascript'}
|
|
Plug 'gavocanov/vim-js-indent', {'for': 'javascript'}
|
|
Plug 'digitaltoad/vim-jade', {'for': 'javascript'}
|
|
Plug 'othree/es.next.syntax.vim', {'for': 'javascript'}
|
|
Plug 'othree/jsdoc-syntax.vim', {'for': 'javascript'}
|
|
Plug 'othree/html5.vim',
|
|
Plug 'heavenshell/vim-jsdoc', {'for': 'javascript'}
|
|
Plug 'othree/javascript-libraries-syntax.vim', {'for': 'javascript'}
|
|
Plug 'moll/vim-node', {'for': 'javascript'}
|
|
"Plug 'ternjs/tern_for_vim', {'for': 'javascript'}
|
|
|
|
" C/C++
|
|
"Plug 'majutsushi/tagbar'
|
|
|
|
" Syntax checking
|
|
"Plug 'Valloric/YouCompleteMe'
|
|
Plug 'w0rp/ale',
|
|
"Plug 'scrooloose/syntastic'
|
|
|
|
" Useful plugins
|
|
Plug 'Raimondi/delimitMate'
|
|
Plug 'scrooloose/nerdcommenter'
|
|
Plug 'scrooloose/nerdtree'
|
|
Plug 'jlanzarotta/bufexplorer'
|
|
Plug 'ctrlpvim/ctrlp.vim'
|
|
Plug 'ervandew/supertab'
|
|
|
|
" Snippets
|
|
Plug 'sirver/ultisnips'
|
|
Plug 'honza/vim-snippets'
|
|
|
|
" Themes
|
|
"Plug 'Lokaltog/vim-distinguished'
|
|
"Plug 'altercation/vim-colors-solarized'
|
|
"Plug 'tomasr/molokai'
|
|
"Plug 'flazz/vim-colorschemes'
|
|
"Plug 'morhetz/gruvbox'
|
|
Plug 'chriskempson/base16-vim'
|
|
|
|
" Airline
|
|
Plug 'vim-airline/vim-airline'
|
|
Plug 'vim-airline/vim-airline-themes'
|
|
|
|
let g:airline_theme='base16_default'
|
|
let g:airline_powerline_fonts = 1
|
|
|
|
" Initialize plugin system
|
|
call plug#end()
|
|
filetype plugin indent on
|
|
|
|
" Other
|
|
set t_Co=256
|
|
set background=dark
|
|
syntax on
|
|
let base16colorspace=256
|
|
colorscheme base16-default-dark
|
|
"colorscheme solarized
|
|
"colorscheme gruvbox
|
|
"colorscheme molokai
|
|
"let g:molokai_original = 1
|
|
"let g:rehash256 = 1
|
|
"colorscheme distinguished
|
|
"colorscheme ir_black
|
|
"colorscheme summerfruit256
|
|
set autoindent " Automatically indent
|
|
syntax on
|
|
set cindent " Indentation for c
|
|
set number " Add line numbers
|
|
set hlsearch " Highlight search
|
|
set sessionoptions=blank,buffers,curdir,folds,globals,help,localoptions,options,resize,tabpages,winsize,winpos
|
|
"set autochdir " Change directory automatically
|
|
"set backupdir=~/.vim/temp/ " Save temporary backups to temp dir
|
|
"set directory=~/.vim/temp/ " Save temporary files to temp dir
|
|
set hidden " Allow changing buffers eventhough they're not saved
|
|
"set autowrite " Automatically save the buffer when changing to another buffers
|
|
"set autowriteall " Automatically save ALL buffers when changing to another buffers
|
|
set wildchar=<Tab> wildmenu wildmode=full " Show possible commands by pressing TAB
|
|
set wildcharm=<C-Z> " This will allow you to access bufferlist with wildcard by pressing F10
|
|
nnoremap <F10> :b <C-Z>
|
|
|
|
" Indentation
|
|
map <F7> mzgg=G`z
|
|
map <F3> %s<cr>
|
|
" NerdTree
|
|
map <F2> :NERDTreeToggle<cr>
|
|
imap <F2> <esc>:NERDTreeToggle<cr>i
|
|
" NerdCommenter
|
|
map <C-c> <leader>ci
|
|
au BufRead,BufNewFile jquery.*.js set ft=javascript syntax=jquery
|
|
|
|
"augroup vimrc
|
|
" au BufReadPre * setlocal foldmethod=indent
|
|
" au BufWinEnter * if &fdm == 'indent' | setlocal foldmethod=manual | endif
|
|
"augroup END
|
|
|
|
inoremap <F9> <C-O>za
|
|
nnoremap <F9> za
|
|
onoremap <F9> <C-C>za
|
|
vnoremap <F9> zf
|
|
set nocp
|
|
filetype plugin on
|
|
filetype plugin indent on
|
|
|
|
" configure tags - add additional tags here or comment out not-used ones
|
|
"set tags+=~/.vim/tags/cpp
|
|
"set tags+=~/.vim/tags/gl
|
|
"set tags+=~/.vim/tags/sdl
|
|
"set tags+=~/.vim/tags/boost
|
|
"set tags+=~/.vim/tags/opencv2
|
|
|
|
" build tags of your own project with Ctrl-F12
|
|
"map <C-F12> :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q ../src/<CR>
|
|
" OmniCppComplete
|
|
"let OmniCpp_NamespaceSearch = 1
|
|
"let OmniCpp_GlobalScopeSearch = 1
|
|
"let OmniCpp_ShowAccess = 1
|
|
"let OmniCpp_ShowPrototypeInAbbr = 1 " show function parameters
|
|
"let OmniCpp_MayCompleteDot = 1 " autocomplete after .
|
|
"let OmniCpp_MayCompleteArrow = 1 " autocomplete after ->
|
|
"let OmniCpp_MayCompleteScope = 1 " autocomplete after ::
|
|
"let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD", "cv", "boost"]
|
|
"au BufNewFile,BufRead,BufEnter *.cpp,*.hpp,*.cc,*.hh set omnifunc=omni#cpp#complete#Main
|
|
" automatically open and close the popup menu / preview window
|
|
"au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif
|
|
"set completeopt=menuone,menu,longest,preview
|
|
"map <C-TAB> :e %:p:s,.h$,.X123X,:s,.cpp$,.h,:s,.X123X$,.cpp,<CR>
|
|
"map <C-TAB> :e %:p:s,.hh$,.X123X,:s,.cc$,.hh,:s,.X123X$,.cc,<CR>
|
|
" Uncomment the following to have Vim jump to the last position when
|
|
" reopening a file
|
|
if has("autocmd")
|
|
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
|
|
|
|
endif
|
|
|
|
" Indentation
|
|
set shiftwidth=8
|
|
set softtabstop=8
|
|
|
|
if has("gui_running")
|
|
" GUI is running or is about to start.
|
|
" Maximize gvim window.
|
|
" set lines=999 columns=999
|
|
"set lines=50 columns=100
|
|
"set guifont=Source\ Code\ Pro\ 11\ -1\ 5\ 50\ 0\ 0\ 0\ 1\ 0
|
|
"set guifont=Source\ Code\ Pro\ Medium\ 11
|
|
" GUI options.
|
|
set guioptions-=m "remove menu bar
|
|
set guioptions-=T "remove toolbar
|
|
set guioptions-=r "remove right-hand scroll bar
|
|
set guioptions-=L "remove left-hand scroll bar
|
|
|
|
set guifont=Fira\ Code\ 10
|
|
"set guifont=Fira\ Mono\ 10
|
|
"set guifont=Source\ Code\ Pro\ 10
|
|
"set guifont=Terminus\ 11
|
|
set guiheadroom=0
|
|
endif
|
|
|
|
" thesaurus and dictionary stuff
|
|
"set dictionary+=/usr/share/dict/words
|
|
"set thesaurus+=/home/julankin/.vim/mthes10/mthesaur.txt
|
|
|
|
" tab navigation like firefox
|
|
nnoremap <C-S-tab> :tabprevious<CR>
|
|
nnoremap <C-tab> :tabnext<CR>
|
|
nnoremap <C-t> :tabnew<CR>
|
|
inoremap <C-S-tab> <Esc>:tabprevious<CR>i
|
|
inoremap <C-tab> <Esc>:tabnext<CR>i
|
|
inoremap <C-t> <Esc>:tabnew<CR>
|
|
|
|
"set colorcolumn=80
|
|
|
|
" YouCompleteMe
|
|
let g:ycm_add_preview_to_completeopt=0
|
|
let g:ycm_confirm_extra_conf=0
|
|
let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'
|
|
|
|
set completeopt-=preview
|
|
set ssop-=options " do not store global and local values in a session
|
|
set ssop-=folds " do not store folds
|
|
|
|
" Fix backspace
|
|
"set backspace=indent,eol,start
|
|
|
|
" Syntastic
|
|
set statusline+=%#warningmsg#
|
|
set statusline+=%{SyntasticStatuslineFlag()}
|
|
set statusline+=%*
|
|
set laststatus=2
|
|
|
|
let g:syntastic_always_populate_loc_list = 1
|
|
let g:syntastic_auto_loc_list = 0
|
|
let g:syntastic_check_on_open = 1
|
|
let g:syntastic_check_on_wq = 0
|
|
let g:syntastic_javascript_checkers = ['eslint']
|
|
|
|
map <F12> :GoTo<CR>
|
|
|
|
" Toggle number
|
|
:nmap <C-N><C-N> :set invnumber<CR>
|
|
|
|
" Toggle hlsearch
|
|
:nnoremap <silent> <Space> :nohlsearch<Bar>:echo<CR>
|
|
autocmd BufRead,BufNewFile *.es6 setfiletype javascript
|
|
"map <F12> :%!tidy -q --tidy-mark 0 2>/dev/null<CR>
|
|
|
|
" Configure for jsdoc
|
|
let g:jsdoc_enable_es6 = 1
|
|
|
|
" Remove trailing whitespace automatically
|
|
autocmd BufWritePre *.js %s/\s\+$//e
|
|
autocmd BufWritePre *.cpp %s/\s\+$//e
|
|
|
|
set tabstop=4
|
|
set softtabstop=0
|
|
set expandtab
|
|
set shiftwidth=2
|
|
set smarttab
|
|
|
|
autocmd Filetype python setlocal ts=4 sw=4 sts=0 expandtab
|
|
autocmd Filetype cpp setlocal ts=4 sw=4 sts=0 expandtab
|
|
|
|
let g:UltiSnipsExpandTrigger="<c-tab>"
|
|
let g:UltiSnipsJumpForwardTrigger="<c-b>"
|
|
let g:UltiSnipsJumpBackwardTrigger="<c-z>"
|