Last active
November 4, 2016 19:44
-
-
Save JosephKu/2495326 to your computer and use it in GitHub Desktop.
Vimrc
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
" vim-plug | |
fun! EnsureVimPlugIsOnDisk(vimplug_install_path) | |
if !filereadable(a:vimplug_install_path.'/plug.vim') | |
\&& 1 == confirm("Install vim-plug into ".a:vimplug_install_path."?","&Y\n&N") | |
execute '!curl -fLo '.a:vimplug_install_path.'/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' | |
endif | |
endfun | |
fun! SetupVimPlug() | |
let vimplug_install_path = expand('$HOME').'/.vim/autoload' | |
call EnsureVimPlugIsOnDisk(vimplug_install_path) | |
call plug#begin('~/.vim/plugged') | |
Plug 'altercation/vim-colors-solarized' | |
Plug 'airblade/vim-gitgutter' | |
Plug 'vim-airline/vim-airline' | |
Plug 'vim-airline/vim-airline-themes' | |
Plug 'ctrlpvim/ctrlp.vim' | |
Plug 'wesQ3/vim-windowswap' | |
Plug 'nathanaelkane/vim-indent-guides' | |
Plug 'easymotion/vim-easymotion' | |
" Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } | |
Plug 'scrooloose/nerdtree' | |
Plug 'ervandew/supertab' | |
Plug 'tpope/vim-eunuch' | |
Plug 'tpope/vim-surround' | |
Plug 'jiangmiao/auto-pairs' | |
Plug 'vim-scripts/tComment' | |
Plug 'junegunn/vim-easy-align' | |
Plug 'tpope/vim-bundler' | |
Plug 'vim-ruby/vim-ruby' | |
Plug 'tpope/vim-rails' | |
Plug 'tpope/vim-endwise' | |
Plug 'thoughtbot/vim-rspec' | |
Plug 'slim-template/vim-slim' | |
Plug 'asux/vim-capybara' | |
Plug 'scrooloose/syntastic' | |
Plug 'kchmck/vim-coffee-script', { 'for': 'coffee' } | |
Plug 'pangloss/vim-javascript' | |
Plug 'MarcWeber/vim-addon-mw-utils' | Plug 'tomtom/tlib_vim' | Plug 'garbas/vim-snipmate' | |
Plug 'honza/vim-snippets' | |
Plug 'tpope/vim-fugitive' | |
Plug 'mileszs/ack.vim' | |
Plug 'rizzatti/dash.vim' | |
call plug#end() | |
endfun | |
call SetupVimPlug() | |
" vim-colors-solarized | |
let g:solarized_termcolors = 256 | |
let g:solarized_termtrans = 1 | |
set background=dark | |
colorscheme solarized | |
set fileencodings=ucs-bom,utf-8,default,latin1 | |
set nocompatible | |
set helplang=en | |
set history=50 | |
set nomodeline | |
set printoptions=paper:letter | |
set ruler "show the cursor position | |
set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc | |
set hlsearch | |
set incsearch | |
set showmatch | |
set shiftwidth=4 | |
set tabstop=4 | |
set expandtab "Always expand tabs to spaces | |
set softtabstop=4 | |
set pastetoggle=<F7> | |
set autoindent | |
set smartindent | |
set showcmd " Display incomplete commands | |
set scrolloff=7 " Keep a 7-lines 'lookahead' when scrolling | |
set wildmenu " Show auto-complete matches | |
set wildignore=*.bdb,*.msu,*.bfi,*.bjk,*.bpk,*.bdm,*.bfm,*.bxi,*.bmi,*.msx,*.lnk,*~,*.bak,*.pyc | |
set statusline=%<%f%m%r\ %{fugitive#statusline()}%=\|\ Dec:\ %-3b\ Hex:\ 0x%2B\ \|\ %20(%4l,%4c%V\ \|\ %3P%) | |
set laststatus=2 " Always show the status bar | |
" Share Mac OS X clipboard | |
if $TMUX == '' | |
set clipboard=unnamed | |
endif | |
" Set a decent text width. This makes printouts cleaner, and makes it easier | |
" to read the files on an 80-column screen (f. ex. a server monitor) | |
set textwidth=78 | |
" Numbers | |
set number | |
set numberwidth=5 | |
" Settings for specific file types (shouldn't this go to ftplugin?) | |
let g:xml_syntax_folding=1 | |
autocmd FileType xml setlocal foldmethod=syntax | |
" Tweak for Ruby | |
autocmd FileType ruby set smartindent shiftwidth=2 tabstop=2 softtabstop=2 | |
" Tweak for eRuby | |
autocmd FileType eruby set smartindent shiftwidth=2 tabstop=2 softtabstop=2 foldmethod=marker foldmarker=<div,</div> | |
" Tweak for Python | |
autocmd FileType python set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class | |
"Tweak for Make | |
autocmd FileType make set noexpandtab | |
"Tweak for HTML | |
autocmd FileType html set smartindent shiftwidth=2 tabstop=2 softtabstop=2 foldmethod=marker foldmarker=<div,</div> | |
" Treat JSON as JavaScript | |
autocmd BufNewFile,BufRead *.json set filetype=javascript | |
" Treat RABL as Ruby | |
autocmd BufRead,BufNewFile *.rabl setf ruby | |
" Tweak for CoffeeScript | |
autocmd BufNewFile,BufReadPost *.coffee setl shiftwidth=2 expandtab | |
" Jump to the last position when reopening a file | |
if has("autocmd") | |
autocmd BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | |
\| exe "normal g'\"" | endif | |
endif | |
" auto reload vimrc when editing it | |
autocmd! BufWritePost .vimrc source ~/.vimrc | |
" Set <leader> | |
let mapleader="," | |
" quickly clear the search string (to clear highlights) | |
nnoremap <leader><space> :noh<CR> | |
"map <F12> :set spell!<BAR>set spell?<CR> | |
"hi Search term=reverse cterm=bold ctermfg=7 ctermbg=2 | |
"Enable and disable mouse use | |
set mouse=a | |
noremap <Leader>m :call ToggleMouse() <CR> | |
function! ToggleMouse() | |
if &mouse == 'a' | |
set mouse-=a | |
set nonumber | |
echo "-- Mouse disabled --" | |
else | |
set mouse=a | |
set number | |
echo "-- Mouse enabled --" | |
endif | |
endfunction | |
" new-omni-completion | |
filetype plugin indent on | |
set completeopt=longest,menu | |
" taglist plugin | |
nnoremap <silent> <F2> :TlistToggle<CR> | |
let Tlist_WinWidth=30 | |
let Tlist_Show_One_File=1 | |
let Tlist_Exit_OnlyWindow=1 | |
" NERDTree | |
nnoremap <Leader>n :NERDTreeToggle<CR> | |
autocmd StdinReadPre * let s:std_in=1 | |
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif | |
autocmd BufEnter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif | |
" autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTreeToggle | wincmd w | endif | |
" CTRL+S saves the buffer | |
nmap <C-s> :w<CR> | |
" Close tab | |
nmap <Leader>w :tabc<CR> | |
" Ignore case for search operations ... | |
set ignorecase | |
" ... but be case sensitive if the search pattern contains uppercase chars | |
set smartcase | |
" | |
" Useful commands | |
" | |
command! Marked !open -a Marked.app '%:p' | |
"command Sudow :w !sudo tee % > /dev/null | |
"command SW :w !sudo cat > % | |
" Remember things between sessions | |
if has('nvim') | |
" '20 - remember marks for 20 previous files | |
" <50 - save 50 lines for each register | |
" :20 - remember 20 items in command-line history | |
" % - remember the buffer list (if nvim started without a file arg) | |
set shada='20,<50,:20,%,n~/.config/nvim/.nviminfo | |
else | |
" '20 - remember marks for 20 previous files | |
" \"50 - save 50 lines for each register | |
" :20 - remember 20 items in command-line history | |
" % - remember the buffer list (if vim started without a file arg) | |
" n - set name of viminfo file | |
set viminfo='20,\"50,:20,%,n~/.vim/.viminfo | |
endif | |
" cool~ | |
"inoremap @date <C-R>=strftime("%d.%m.%Y")<CR> | |
map <F5> :set list!<BAR>set list?<CR> | |
map <F6> :set hls!<BAR>set hls?<CR> | |
map <F8> :marks<CR> | |
"map <F9> :registers<CR> | |
"map <F10> :map<CR> | |
"map <C-Right> :tabnext<CR> | |
"map <C-Left> :tabprevious<CR> | |
" cursor highlight | |
set cursorline | |
"highlight CursorLine cterm=NONE ctermbg=Black | |
"autocmd InsertEnter * set nocursorline | |
"autocmd InsertLeave * set cursorline | |
" | |
" Line number setting | |
" | |
"hi LineNr ctermfg=white ctermbg=darkgreen | |
" Display extra whitespace | |
set list listchars=tab:»·,trail:· | |
" ctrlp | |
let g:ctrlp_map = '<c-p>' | |
let g:ctrlp_cmd = 'CtrlP' | |
" Backward compatible for Command-T... | |
nmap <leader>t <c-p> | |
let g:ctrlp_regexp = 1 | |
let g:ctrlp_match_window_reversed = 0 | |
let g:ctrlp_prompt_mappings = { 'PrtAdd(".*")': ['<space>'] } | |
" Vim Git Gutter | |
highlight clear SignColumn | |
" Airline | |
let g:airline_powerline_fonts = 1 | |
if !exists('g:airline_symbols') | |
let g:airline_symbols = {} | |
endif | |
let g:airline_left_sep = '⮀' | |
let g:airline_left_alt_sep = '⮁' | |
let g:airline_right_sep = '⮂' | |
let g:airline_right_alt_sep = '⮃' | |
let g:airline_symbols.branch = '⭠' | |
let g:airline_symbols.readonly = '⭤' | |
let g:airline_symbols.linenr = '⭡' | |
let g:airline_symbols.branch = '⎇' | |
let g:airline_symbols.paste = 'ρ' | |
let g:airline_symbols.paste = 'Þ' | |
let g:airline_symbols.paste = '∥' | |
let g:airline_symbols.whitespace = 'Ξ' | |
" No more arrows! | |
nnoremap <Left> :echoe "Use h"<CR> | |
nnoremap <Right> :echoe "Use l"<CR> | |
nnoremap <Up> :echoe "Use k"<CR> | |
nnoremap <Down> :echoe "Use j"<CR> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment