Skip to content

Instantly share code, notes, and snippets.

@guilhermelimak
Created October 18, 2016 23:06
Show Gist options
  • Save guilhermelimak/41c6c7933d3ef4bdb4f78d7fc3600e98 to your computer and use it in GitHub Desktop.
Save guilhermelimak/41c6c7933d3ef4bdb4f78d7fc3600e98 to your computer and use it in GitHub Desktop.
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