Last active
November 14, 2017 19:44
-
-
Save kristoferjoseph/d6c94a11b0aa30ccb89cf2d6ab6c0567 to your computer and use it in GitHub Desktop.
minimal vimrc file
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 | |
set background=dark | |
syntax enable | |
filetype on " without this vim emits a zero exit status, later, because of :ft off | |
filetype off | |
set rtp+=~/.vim/bundle/Vundle.vim | |
call vundle#begin() | |
Plugin 'VundleVim/Vundle.vim' | |
Plugin 'mattn/emmet-vim' | |
Plugin 'reedes/vim-colors-pencil' | |
Plugin 'vim-airline/vim-airline' | |
Plugin 'vim-airline/vim-airline-themes' | |
Plugin 'nathanaelkane/vim-indent-guides' | |
Plugin 'pangloss/vim-javascript' | |
Plugin 'kien/ctrlp.vim' | |
Plugin 'majutsushi/tagbar' | |
Plugin 'rking/ag.vim' | |
Plugin 'vim-scripts/YankRing.vim' | |
Plugin 'tpope/vim-surround' | |
Plugin 'Yggdroot/indentLine' | |
Plugin 'marijnh/tern_for_vim' | |
Plugin 'Valloric/YouCompleteMe' | |
Plugin 'maksimr/vim-jsbeautify' | |
Plugin 'mileszs/ack.vim' | |
call vundle#end() | |
filetype plugin indent on | |
let mapleader = ',' | |
set guioptions-=r "remove right-hand scroll bar | |
set guioptions-=L "remove left-hand scroll bar | |
set term=xterm-256color | |
set number | |
set tabstop=2 | |
set expandtab | |
set shiftwidth=2 | |
set autoindent | |
set autoread " reload files when changed on disk, i.e. via `git checkout` | |
set backspace=2 " Fix broken backspace in some setups | |
set backupcopy=yes " see :help crontab | |
set clipboard=unnamed " yank and paste with the system clipboard | |
set directory-=. " don't store swapfiles in the current directory | |
set encoding=utf-8 | |
set expandtab " expand tabs to spaces | |
set ignorecase " case-insensitive search | |
set incsearch " search as you type | |
set smartindent | |
set laststatus=2 | |
set list " show trailing whitespace | |
set listchars=tab:▸\ ,trail:▫ | |
set number " show line numbers | |
set ruler " show where you are | |
set scrolloff=3 " show context above/below cursorline | |
set showcmd | |
set smartcase " case-sensitive search if any caps | |
set wildmenu " show a navigable menu for tab completion | |
set wildmode=longest,list,full | |
set completeopt-=preview | |
" Enable basic mouse behavior such as resizing buffers. | |
set mouse=a | |
if exists('$TMUX') " Support resizing in tmux | |
set ttymouse=xterm2 | |
endif | |
" keyboard shortcuts | |
inoremap jj <ESC> | |
nnoremap ; : | |
"NAVIGATION | |
nnoremap <up> <nop> | |
nnoremap <down> <nop> | |
nnoremap <left> <nop> | |
nnoremap <right> <nop> | |
inoremap <up> <nop> | |
inoremap <down> <nop> | |
inoremap <left> <nop> | |
inoremap <right> <nop> | |
nnoremap j gj | |
nnoremap k gk | |
" Navigate between splits | |
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> | |
noremap <leader>l :Align | |
nnoremap <leader>a :Ag<space> | |
nnoremap <leader>b :CtrlPBuffer<CR> | |
nnoremap <leader>t :CtrlP<CR> | |
nnoremap <leader>T :CtrlPClearCache<CR>:CtrlP<CR> | |
nnoremap <leader>] :TagbarToggle<CR> | |
nnoremap <leader><space> :call whitespace#strip_trailing()<CR> | |
nnoremap <leader>g :GitGutterToggle<CR> | |
noremap <silent> <leader>V :source ~/.vimrc<CR>:filetype detect<CR>:exe ":echo 'vimrc reloaded'"<CR> | |
" in case you forgot to sudo | |
cnoremap w!! %!sudo tee > /dev/null % | |
" plugin settings | |
let g:ctrlp_match_window = 'order:ttb,max:20' | |
let g:gitgutter_enabled = 0 | |
" Use The Silver Searcher https://github.com/ggreer/the_silver_searcher | |
if executable('ag') | |
" Use Ag over Grep | |
set grepprg=ag\ --nogroup\ --nocolor | |
" Use ag in CtrlP for listing files. Lightning fast and respects .gitignore | |
let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""' | |
endif | |
set splitbelow | |
set splitright | |
"EXPLORE | |
let g:netrw_liststyle=3 | |
let g:netrw_banner=0 | |
" Ignore things | |
set wildignore+=*.swp,*.bak,*.pyc,*.class,*/dist | |
" No pooping backup files | |
set nobackup | |
set noswapfile | |
" highlight search | |
set hlsearch | |
nmap <leader>w :nohlsearch<CR> | |
nmap <leader>hl :let @/ = ""<CR> | |
" grep | |
cnoreabbrev Ack Ack! | |
nnoremap <Leader>a :Ack!<Space> | |
" md is markdown | |
autocmd BufRead,BufNewFile *.md set filetype=markdown | |
autocmd BufRead,BufNewFile *.md set spell | |
" Tell vim to use javascript syntax for JSON files | |
autocmd BufNewFile,BufRead *.json set ft=javascript | |
" automatically rebalance windows on vim resize | |
autocmd VimResized * :wincmd = | |
" strip whitespace | |
autocmd BufWritePre * %s/\s\+$//e | |
" Copy paste | |
set pastetoggle=<F2> | |
"yankring | |
nnoremap <leader>y :YRShow<CR> | |
" Expansion to active file directory | |
cnoremap <expr> %% getcmdtype() == ':' ? expand('%:h').'/' : '%%' | |
noremap <tab> % | |
" Save on focus out of file | |
au FocusLost * :wa | |
" Theme | |
colors pencil | |
" Airline | |
let g:airline_powerline_fonts = 1 | |
let g:airline_theme='light' | |
let g:Powerline_symbols = 'fancy' | |
" indent line | |
let g:indentLine_enabled = 1 | |
let g:indentLine_char = '│' | |
let g:indentLine_color_term = 239 | |
let g:indentLine_color_gui = '#9474b2' | |
let g:indentLine_color_tty_light = 2 " (default: 4) | |
let g:indentLine_color_dark = 1 " (default: 2) | |
" lint | |
" let g:syntastic_javascript_checkers = ['eslint'] | |
" let g:syntastic_javascript_checkers = ['standard'] | |
" autocmd bufwritepost *.js silent !standard --fix % | |
" set autoread | |
" Disambiguate ,a & ,t from the Align plugin, making them fast again. | |
" | |
" This section is here to prevent AlignMaps from adding a bunch of mappings | |
" that interfere with the very-common ,a and ,t mappings. This will get run | |
" at every startup to remove the AlignMaps for the *next* vim startup. | |
" | |
" If you do want the AlignMaps mappings, remove this section, remove | |
" ~/.vim/bundle/Align, and re-run rake in maximum-awesome. | |
function! s:RemoveConflictingAlignMaps() | |
if exists("g:loaded_AlignMapsPlugin") | |
AlignMapsClean | |
endif | |
endfunction | |
command! -nargs=0 RemoveConflictingAlignMaps call s:RemoveConflictingAlignMaps() | |
silent! autocmd VimEnter * RemoveConflictingAlignMaps | |
map <c-f> :call JsBeautify()<cr> | |
" or | |
autocmd FileType javascript noremap <buffer> <c-f> :call JsBeautify()<cr> | |
" for html | |
autocmd FileType html noremap <buffer> <c-f> :call HtmlBeautify()<cr> | |
" for css or scss | |
autocmd FileType css noremap <buffer> <c-f> :call CSSBeautify()<cr> | |
" C completion | |
let g:clang_library_path='/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libclang.dylib' | |
" tern | |
nnoremap <Leader>tD :TernDoc<CR> | |
let g:tern_map_keys=1 | |
let g:tern_show_argument_hints='on_hold' | |
set cursorline | |
hi CursorLine guibg=Grey40 | |
" Fix Cursor in TMUX | |
if exists('$TMUX') | |
let &t_SI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=1\x7\<Esc>\\" | |
let &t_EI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=0\x7\<Esc>\\" | |
else | |
let &t_SI = "\<Esc>]50;CursorShape=1\x7" | |
let &t_EI = "\<Esc>]50;CursorShape=0\x7" | |
endif | |
" UtiliSnips YCM SuperTab | |
" make YCM compatible with UltiSnips (using supertab) | |
let g:ycm_key_list_select_completion = ['<C-n>', '<Down>'] | |
let g:ycm_key_list_previous_completion = ['<C-p>', '<Up>'] | |
let g:SuperTabDefaultCompletionType = '<C-n>' | |
" better key bindings for UltiSnipsExpandTrigger | |
let g:UltiSnipsExpandTrigger = "<tab>" | |
let g:UltiSnipsJumpForwardTrigger = "<tab>" | |
let g:UltiSnipsJumpBackwardTrigger = "<s-tab>" | |
" Don't copy the contents of an overwritten selection. | |
vnoremap p "_dP |
Author
kristoferjoseph
commented
Jul 12, 2016
•
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment