Created
June 21, 2017 08:08
-
-
Save olibob/9a1aed5efc38c9f0c70e9027d09937a3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set nocompatible " be iMproved, required | |
filetype off " required | |
" set the runtime path to include Vundle and initialize | |
set rtp+=~/.vim/bundle/Vundle.vim | |
call vundle#begin() | |
" alternatively, pass a path where Vundle should install plugins | |
"call vundle#begin('~/some/path/here') | |
" let Vundle manage Vundle, required | |
Plugin 'VundleVim/Vundle.vim' | |
" The following are examples of different formats supported. | |
" Keep Plugin commands between vundle#begin/end. | |
" plugin on GitHub repo | |
" Plugin 'tpope/vim-fugitive' | |
" plugin from http://vim-scripts.org/vim/scripts.html | |
" Plugin 'L9' | |
" Git plugin not hosted on GitHub | |
" Plugin 'git://git.wincent.com/command-t.git' | |
" git repos on your local machine (i.e. when working on your own plugin) | |
" Plugin 'file:///home/gmarik/path/to/plugin' | |
" The sparkup vim script is in a subdirectory of this repo called vim. | |
" Pass the path to set the runtimepath properly. | |
" Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} | |
" Install L9 and avoid a Naming conflict if you've already installed a | |
" different version somewhere else. | |
" Plugin 'ascenator/L9', {'name': 'newL9'} | |
Plugin 'bling/vim-airline' | |
Plugin 'vim-airline/vim-airline-themes' | |
Plugin 'morhetz/gruvbox' | |
Plugin 'scrooloose/nerdtree' | |
Plugin 'Xuyuanp/nerdtree-git-plugin' | |
Plugin 'scrooloose/syntastic' | |
Plugin 'airblade/vim-gitgutter' | |
Plugin 'fatih/vim-go' | |
Plugin 'Valloric/YouCompleteMe' | |
Plugin 'SirVer/ultisnips' | |
Plugin 'AndrewRadev/splitjoin.vim' | |
Plugin 'scrooloose/nerdcommenter' | |
Plugin 'ctrlpvim/ctrlp.vim' | |
Plugin 'myusuf3/numbers.vim' | |
Plugin 'mattn/webapi-vim' | |
Plugin 'mattn/gist-vim' | |
Plugin 'majutsushi/tagbar' | |
" All of your Plugins must be added before the following line | |
call vundle#end() " required | |
filetype plugin indent on " required | |
" To ignore plugin indent changes, instead use: | |
"filetype plugin on | |
" | |
" Brief help | |
" :PluginList - lists configured plugins | |
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate | |
" :PluginSearch foo - searches for foo; append `!` to refresh local cache | |
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal | |
" | |
" see :h vundle for more details or wiki for FAQ | |
" Put your non-Plugin stuff after this line | |
" General | |
syntax on | |
let mapleader=',' | |
set showmode " always show what mode we're currently editing in | |
"set nowrap " don't wrap lines | |
set tabstop=2 " a tab is four spaces | |
set backspace=indent,eol,start " allow backspacing over everything in insert mode | |
set autoindent " always set autoindenting on | |
set copyindent " copy the previous indentation on autoindenting | |
set number " always show line numbers | |
set relativenumber | |
set shiftwidth=2 " number of spaces to use for autoindenting | |
set shiftround " use multiple of shiftwidth when indenting with '<' and '>' | |
set showmatch " set show matching parenthesis | |
set ignorecase " ignore case when searching | |
set smartcase " ignore case if search pattern is all lowercase, case-sensitive otherwise | |
set smarttab " insert tabs on the start of a line according to shiftwidth, not tabstop | |
set hlsearch " highlight search terms | |
set incsearch " show search matches as you type | |
set history=1000 " remember more commands and search history | |
set undolevels=1000 " use many muchos levels of undo | |
set wildignore=*.swp,*.bak,*.pyc,*.class | |
set visualbell " don't beep | |
set noerrorbells " don't beep | |
set mouse=a " enable mouse | |
set nobackup | |
set noswapfile | |
set spell " enable spelling | |
set encoding=utf-8 " use utf-8 | |
" check the current folder for tags file and keep going one directory up all the way to the root folder | |
set tags=tags;/ | |
" Remember cursor position | |
augroup resCur | |
autocmd! | |
autocmd BufReadPost * call setpos(".", getpos("'\"")) | |
augroup END | |
"split navigations | |
nnoremap <C-J> <C-W><C-J> | |
nnoremap <C-K> <C-W><C-K> | |
nnoremap <C-L> <C-W><C-L> | |
nnoremap <C-H> <C-W><C-H> | |
""""""""""""""""""""""""""""""" | |
" Plugin configuration | |
""""""""""""""""""""""""""""""" | |
" Airline | |
set laststatus=2 | |
" Gruvbox | |
set background=dark | |
colorscheme gruvbox | |
" Makes the background transparent. Leave these out if you're not using a transparent | |
" terminal. | |
highlight Normal ctermbg=NONE guibg=NONE | |
highlight NonText ctermbg=NONE guibg=NONE | |
" NERDTree | |
" Start if no file is indicated | |
autocmd StdinReadPre * let s:std_in=1 | |
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif | |
" Syntastic | |
set statusline+=%#warningmsg# | |
set statusline+=%{SyntasticStatuslineFlag()} | |
set statusline+=%* | |
let g:syntastic_always_populate_loc_list = 1 | |
let g:syntastic_auto_loc_list = 1 | |
let g:syntastic_check_on_open = 0 " if = 1, weird character artifacts appear, shrug! | |
let g:syntastic_check_on_wq = 0 | |
" Git-Gutter | |
set updatetime=100 " change refresh time from default 4 seconds | |
" NERDCommenter | |
" Add spaces after comment delimiters by default | |
let g:NERDSpaceDelims = 1 | |
" Use compact syntax for prettified multi-line comments | |
let g:NERDCompactSexyComs = 1 | |
" Allow commenting and inverting empty lines (useful when commenting a region) | |
let g:NERDCommentEmptyLines = 1 | |
" Enable trimming of trailing whitespace when uncommenting | |
let g:NERDTrimTrailingWhitespace = 1 | |
" Open NERDTree | |
map <C-n> :NERDTreeToggle<CR> | |
" vim-go | |
set autowrite | |
map <C-m> :cnext<CR> | |
map <C-p> :cprevious<CR> | |
nnoremap <leader>a :cclose<CR> | |
" run :GoBuild or :GoTestCompile based on the go file | |
function! s:build_go_files() | |
let l:file = expand('%') | |
if l:file =~# '^\f\+_test\.go$' | |
call go#cmd#Test(0, 1) | |
elseif l:file =~# '^\f\+\.go$' | |
call go#cmd#Build(0) | |
endif | |
endfunction | |
autocmd FileType go nmap <leader>b :<C-u>call <SID>build_go_files()<CR> | |
autocmd FileType go nmap <leader>r <Plug>(go-run) | |
autocmd FileType go nmap <leader>t <Plug>(go-test) | |
" go-info + show automatically by moving cursor | |
autocmd FileType go nmap <Leader>i <Plug>(go-info) | |
let g:go_auto_type_info = 1 | |
" highlight matching identifiers | |
let g:go_auto_sameids = 1 | |
" Make all error lists quickfix lists | |
" let g:go_list_type = "quickfix" | |
autocmd FileType go nmap <Leader>c <Plug>(go-coverage-toggle) | |
" use goimports instead of gofmt | |
let g:go_fmt_command = "goimports" | |
" enable highlights | |
let g:go_highlight_types = 1 | |
let g:go_highlight_fields = 1 | |
let g:go_highlight_functions = 1 | |
let g:go_highlight_methods = 1 | |
let g:go_highlight_operators = 1 | |
let g:go_highlight_extra_types = 1 | |
let g:go_highlight_build_constraints = 1 | |
let g:go_highlight_generate_tags = 1 | |
" UltiSnips | |
let g:UltiSnipsExpandTrigger = "<C-l>" | |
" numbers | |
let g:numbers_exclude = ['unite', 'tagbar', 'startify', 'gundo', 'vimshell', 'w3m', 'nerdtree'] | |
nnoremap <F3> :NumbersToggle<CR> | |
nnoremap <F4> :NumbersOnOff<CR> | |
" YouCompleteMe | |
let g:ycm_python_binary_path = 'python' | |
let g:ycm_autoclose_preview_window_after_completion=1 | |
" tagbar | |
nmap <F8> :TagbarToggle<CR> | |
""""""""""""""""""""""""""""""" | |
" Language configuration | |
""""""""""""""""""""""""""""""" | |
"python with virtualenv support | |
py << EOF | |
import os | |
import sys | |
if 'VIRTUAL_ENV' in os.environ: | |
project_base_dir = os.environ['VIRTUAL_ENV'] | |
activate_this = os.path.join(project_base_dir, 'bin/activate_this.py') | |
execfile(activate_this, dict(__file__=activate_this)) | |
EOF |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment