Created
October 18, 2016 23:06
-
-
Save guilhermelimak/41c6c7933d3ef4bdb4f78d7fc3600e98 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
filetype plugin indent on " required | |
nnoremap <SPACE> <Nop> | |
let mapleader=" " | |
" ============== | |
" == Installed plugins | |
" ============== | |
set rtp+=~/.vim/bundle/Vundle.vim | |
call vundle#begin() | |
Plugin 'gmarik/Vundle.vim' | |
Plugin 'itchyny/lightline.vim' | |
Plugin 'ctrlpvim/ctrlp.vim' | |
Plugin 'scrooloose/nerdtree' | |
Plugin 'Xuyuanp/nerdtree-git-plugin' | |
Plugin 'airblade/vim-gitgutter' | |
Plugin 'Shougo/neocomplete' | |
Plugin 'Shougo/neosnippet' | |
Plugin 'Shougo/neosnippet-snippets' | |
Plugin 'mattn/emmet-vim' | |
Plugin 'Raimondi/delimitMate' | |
Plugin 'terryma/vim-multiple-cursors' | |
" Python | |
Plugin 'Glench/Vim-Jinja2-Syntax' | |
" Javascript | |
Plugin 'elzr/vim-json' | |
Plugin 'jelera/vim-javascript-syntax' | |
Plugin 'othree/javascript-libraries-syntax.vim' | |
Plugin 'Shutnik/jshint2.vim' | |
Plugin 'ternjs/tern_for_vim' | |
Plugin 'gavocanov/vim-js-indent' | |
Plugin 'dkprice/vim-easygrep' | |
Plugin 'tpope/vim-surround' | |
Plugin 'tpope/vim-commentary' | |
Plugin 'tpope/vim-repeat' | |
Plugin 'tpope/vim-unimpaired' | |
Plugin 'tpope/vim-fugitive' | |
call vundle#end() | |
"end of vundle config | |
" ============== | |
" == Settings | |
" ============== | |
syntax enable | |
" set colorcolumn=100 | |
set pastetoggle=<F2> | |
set number | |
set t_Co=256 | |
set clipboard=unnamedplus | |
set mouse=a | |
set background=dark | |
set shell=/bin/bash | |
set ul=99 | |
set laststatus=2 | |
set timeoutlen=500 ttimeoutlen=0 | |
set shiftwidth=2 | |
set softtabstop=2 | |
set tabstop=2 | |
set expandtab | |
set encoding=utf8 | |
set ruler | |
set incsearch | |
set noswapfile | |
set cursorline | |
set hid | |
set smartcase | |
"remove mode status from bottom line | |
set noshowmode | |
"disable .swp files | |
set nobackup | |
"Open new buffers in new page | |
set switchbuf+=usetab,newtab | |
"Display hidden chars | |
set listchars=tab:>·,space:• | |
set list | |
"Set tags directory | |
set tags=./tags,tags;$HOME | |
" == Autocmd | |
"disable auto open dosctring when autocompleting | |
autocmd FileType python setlocal completeopt-=preview | |
autocmd FileType python setlocal ts=4 sw=4 expandtab | |
"disable autocomment on paste | |
autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o | |
" remove trailing whitespace on save | |
autocmd BufWritePre * :%s/\s\+$//e | |
"save on lose focus | |
au FocusLost * :wa | |
au BufReadPre //* :NoMatchParen | |
" ============== | |
" == Plugin config | |
" ============== | |
let g:used_javascript_libs = 'angularjs, jquery, angularuirouter' | |
" Change cursor when changing mode | |
let &t_SI = "\<Esc>[6 q" | |
let &t_SR = "\<Esc>[4 q" | |
let &t_EI = "\<Esc>[2 q" | |
let g:indentLine_char = '|' | |
let g:indentLine_color_term = 236 | |
" lightline cfg | |
function! LightLineFugitive() | |
if exists("*fugitive#head") | |
let branch = fugitive#head() | |
return branch !=# '' ? '⭠ '.branch : '' | |
endif | |
return '' | |
endfunction | |
function! CtrlPMark() | |
if expand('%:t') =~ 'ControlP' && has_key(g:lightline, 'ctrlp_item') | |
call lightline#link('iR'[g:lightline.ctrlp_regex]) | |
return lightline#concatenate([g:lightline.ctrlp_prev, g:lightline.ctrlp_item | |
\ , g:lightline.ctrlp_next], 0) | |
else | |
return '' | |
endif | |
endfunction | |
let g:ctrlp_status_func = { | |
\ 'main': 'CtrlPStatusFunc_1', | |
\ 'prog': 'CtrlPStatusFunc_2', | |
\ } | |
function! CtrlPStatusFunc_1(focus, byfname, regex, prev, item, next, marked) | |
let g:lightline.ctrlp_regex = a:regex | |
let g:lightline.ctrlp_prev = a:prev | |
let g:lightline.ctrlp_item = a:item | |
let g:lightline.ctrlp_next = a:next | |
return lightline#statusline(0) | |
endfunction | |
function! CtrlPStatusFunc_2(str) | |
return lightline#statusline(0) | |
endfunction | |
let g:lightline = { | |
\ 'colorscheme': 'PaperColor_dark', | |
\ 'active': { | |
\ 'left': [ ['mode', 'paste'], [ 'fugitive', 'filename'], ['ctrlpmark'] ], | |
\ }, | |
\ 'component_function': { | |
\ 'fugitive': 'LightLineFugitive', | |
\ 'ctrlpmark': 'CtrlPMark' | |
\ } | |
\ } | |
let g:WebDevIconsUnicodeGlyphDoubleWidth = 0 | |
"multicurson config | |
let g:multi_cursor_use_default_mapping=0 | |
let g:multi_cursor_next_key='<C-c>' | |
let g:multi_cursor_prev_key='<leader>f' | |
let g:multi_cursor_skip_key='<leader>x' | |
let g:multi_cursor_quit_key='<Esc>' | |
let g:ctrlp_custom_ignore = { | |
\ 'dir': '\v[\/](\.git|\.hg|\.svn|_site|node_modules|platforms|plugins|lib)$', | |
\ } | |
" let g:gitgutter_override_sign_column_highlight = 0 | |
let g:neosnippet#enable_snipmate_compatibility = 1 | |
let g:neosnippet#snippets_directory='~/.vim/bundle/vim-snippets/snippets' | |
let jshint2_read = 1 | |
let jshint2_save = 1 | |
let jshint2_close = 1 | |
let jshint2_confirm = 0 | |
let jshint2_min_height = 4 | |
let jshint2_max_height = 4 | |
" ============== | |
" == Maps | |
" ============== | |
" Disable autoindent paste | |
nnoremap <F2> :set invpaste paste?<CR> | |
map <F3> :mksession! ~/.vim_session<cr> " Quick write session with F3 | |
map <F4> :source ~/.vim_session <cr> " And load session with F4 | |
" map <F8> :execute "noautocmd vimgrep /" . expand("<cword>") . "/j ./www/src/**/*"<Bar>cw<cr> | |
" LOL | |
map <F8> :execute "noautocmd vimgrep //j ./www/src/**/*"<Bar>cw <left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left><left> | |
map <F9> :execute "noautocmd vimgrep /TODO:\/FIX:\/NOTE:/j ./www/src/**/*" <Bar> cw<cr> | |
" nmap <F9> :TagbarToggle<CR> | |
imap <C-g> <CR><Esc>O<Tab> | |
nmap <leader>ee :lnext<cr> | |
" Move lines | |
nmap <c-l> [e | |
nmap <c-k> ]e | |
vmap <c-k> ]egv | |
vmap <c-l> [egv | |
imap <expr><TAB> | |
\ pumvisible() ? "\<C-n>" : | |
\ neosnippet#expandable_or_jumpable() ? | |
\ "\<Plug>(neosnippet_expand_or_jump)" : "\<TAB>" " | |
"save read only files without reopening vim | |
cmap w!! w !sudo tee % >/dev/null | |
nnoremap <leader>s :source ~/.vimrc<CR> | |
nnoremap <leader>v :e ~/.vimrc<CR> | |
nnoremap <leader>j <C-W><C-H> | |
nnoremap <leader>k <C-W><C-J> | |
nnoremap <leader>l <C-W><C-K> | |
nnoremap <leader>r <C-W><C-R> | |
nnoremap <leader>ç <C-W><C-L> | |
nnoremap <leader>e :e ~/ | |
nnoremap <leader>f / | |
nnoremap <leader>w <c-w><c-w> | |
nnoremap <leader>i3 :e ~/.i3/config<CR> | |
" change ' to " | |
nnoremap <F11> :%s/'\([^']*\)'/"\1"/g<CR> | |
" change " to ' | |
nnoremap <F12> :%s/"\([^"]*\)"/'\1'/g<CR> | |
map <leader>q :q<CR> | |
map <leader>t :tabnew<CR> | |
map <leader>b :CtrlPBuffer<CR> | |
nnoremap <leader>hs :sp<CR> | |
nnoremap <leader>vs :vsp<CR> | |
nnoremap K <Nop> | |
vnoremap K <Nop> | |
nnoremap ; : | |
map <Esc><Esc> :w<CR> | |
map <C-n> :NERDTreeToggle<CR> | |
" go to tab | |
map <leader>1 1gt | |
map <leader>2 2gt | |
map <leader>3 3gt | |
map <leader>4 4gt | |
map <leader>5 5gt | |
map <leader>6 6gt | |
map <leader>7 7gt | |
map <leader>8 8gt | |
"normalmov | |
nnoremap j h | |
nnoremap k gj | |
nnoremap l gk | |
nnoremap ç l | |
"visualmov | |
vnoremap j h | |
vnoremap k gj | |
vnoremap l gk | |
vnoremap ç l | |
"allow . to repeat visual commands | |
vnoremap . :norm.<CR> | |
" ============== | |
" == GUI | |
" ============== | |
if has("gui_running") | |
color sift | |
set noantialias | |
set guioptions-=e | |
set guioptions-=m | |
set guioptions-=T | |
set guioptions-=r | |
set guioptions-=L | |
" set guifont=FixedsysTTF\ 12 | |
set guifont=Terminus | |
hi GitGutterAdd guifg=#338833 guibg=#0c121c | |
hi GitGutterChange guifg=#FFFE07 guibg=#0c121c | |
hi GitGutterChangeDelete guifg=#FFFE07 guibg=#0c121c | |
hi GitGutterDelete guifg=#884444 guibg=#0c121c | |
else | |
color Crystallite | |
endif | |
" ============== | |
" == Styl | |
" ============== | |
hi ColorColumn ctermbg=darkgray | |
hi Cursor guibg=#3f3 guifg=#000 | |
hi Conditional ctermfg=Yellow | |
hi CursorLine ctermbg=235 cterm=none guibg=#333 | |
hi NonText ctermfg=236 guifg=#333 | |
hi SpecialKey ctermfg=236 guifg=#333 | |
hi ExtraWhitespace ctermbg=red guibg=red | |
match ExtraWhitespace /\s\+$/ | |
function! NumberToggle() | |
if(&relativenumber == 1) | |
set norelativenumber | |
else | |
set relativenumber | |
endif | |
endfunc | |
nnoremap <C-o> :call NumberToggle()<cr> | |
" NERDTree File highlighting | |
function! NERDTreeHighlightFile(extension, fg, bg, guifg, guibg) | |
exec 'autocmd FileType nerdtree highlight ' . a:extension .' ctermbg='. a:bg .' ctermfg='. a:fg .' guibg='. a:guibg .' guifg='. a:guifg | |
exec 'autocmd FileType nerdtree syn match ' . a:extension .' #^\s\+.*'. a:extension .'$#' | |
endfunction | |
au VimEnter * call NERDTreeHighlightFile('jade', 'green', 'none', 'green', '#151515') | |
au VimEnter * call NERDTreeHighlightFile('ini', 'yellow', 'none', 'yellow', '#151515') | |
au VimEnter * call NERDTreeHighlightFile('md', 'blue', 'none', '#3366FF', '#151515') | |
au VimEnter * call NERDTreeHighlightFile('yml', 'yellow', 'none', 'yellow', '#151515') | |
au VimEnter * call NERDTreeHighlightFile('config', 'yellow', 'none', 'yellow', '#151515') | |
au VimEnter * call NERDTreeHighlightFile('conf', 'yellow', 'none', 'yellow', '#151515') | |
au VimEnter * call NERDTreeHighlightFile('json', 'yellow', 'none', 'yellow', '#151515') | |
au VimEnter * call NERDTreeHighlightFile('html', 'yellow', 'none', 'yellow', '#151515') | |
au VimEnter * call NERDTreeHighlightFile('styl', 'cyan', 'none', 'cyan', '#151515') | |
au VimEnter * call NERDTreeHighlightFile('css', 'blue', 'none', 'blue', '#151515') | |
au VimEnter * call NERDTreeHighlightFile('coffee', 'Red', 'none', 'red', '#151515') | |
au VimEnter * call NERDTreeHighlightFile('js', '3', 'none', '#ffa500', '#151515') | |
au VimEnter * call NERDTreeHighlightFile('rb', 'Red', 'none', '#ffa500', '#151515') | |
au VimEnter * call NERDTreeHighlightFile('php', 'Magenta', 'none', '#ff00ff', '#151515') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment