185 lines
5.7 KiB
VimL
185 lines
5.7 KiB
VimL
set nocompatible
|
|
|
|
" Options {{{
|
|
set autoindent
|
|
set autoread
|
|
let &background = $BACKGROUND ==# 'light' ? 'light' : 'dark'
|
|
set backspace=indent,eol,start
|
|
set nobackup
|
|
set clipboard=unnamed
|
|
set colorcolumn=80
|
|
set cursorline
|
|
set diffopt=filler,vertical
|
|
set encoding=utf8
|
|
set expandtab
|
|
set foldenable
|
|
set foldlevelstart=100
|
|
set foldmethod=syntax
|
|
set foldnestmax=10
|
|
set formatoptions-=t
|
|
set hidden
|
|
set history=1000
|
|
set hlsearch
|
|
set incsearch
|
|
set laststatus=2
|
|
set lazyredraw
|
|
set list
|
|
if has('multi_byte') && &encoding ==# 'utf-8'
|
|
let &listchars = 'tab:▷ ,extends:»,precedes:«,trail:·'
|
|
let &showbreak = ' ⤷ '
|
|
else
|
|
let &listchars = 'tab:>~,extends:>,precedes:<,trail:-'
|
|
let &showbreak = '-> '
|
|
endif
|
|
set modelines=0
|
|
set number
|
|
set scrolloff=5
|
|
set shiftwidth=4
|
|
set showmatch
|
|
set noshowmode
|
|
set sidescrolloff=5
|
|
set nrformats-=octal
|
|
set smartindent
|
|
set smarttab
|
|
set splitbelow
|
|
set splitright
|
|
set noswapfile
|
|
set tabstop=4
|
|
set textwidth=79
|
|
set timeoutlen=1000
|
|
set ttimeoutlen=100
|
|
set ttyfast
|
|
" +--Disable hlsearch while loading viminfo
|
|
" | +--Remember marks for last 500 files
|
|
" | | +--Remember up to 10000 lines in each register
|
|
" | | | +--Remember up to 1MB in each register
|
|
" | | | | +--Remember last 1000 search patterns
|
|
" | | | | | +---Remember last 1000 commands
|
|
" | | | | | |
|
|
" v v v v v v
|
|
set viminfo=h,'500,<10000,s1000,/1000,:1000
|
|
set viminfofile=~/.vim/viminfo
|
|
set wildignore=*.o,*.obj,*.pyc,*.exe,*.so,*.dll
|
|
set wildmenu
|
|
set wrap
|
|
set writebackup
|
|
" }}}
|
|
|
|
" Plugins {{{
|
|
call plug#begin('~/.vim/bundle')
|
|
Plug 'altercation/vim-colors-solarized'
|
|
Plug 'bronson/vim-trailing-whitespace'
|
|
Plug 'elzr/vim-json'
|
|
Plug 'godlygeek/tabular' | Plug 'plasticboy/vim-markdown'
|
|
Plug 'junegunn/rainbow_parentheses.vim'
|
|
Plug 'kien/ctrlp.vim'
|
|
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
|
|
Plug 'tpope/vim-commentary'
|
|
Plug 'tpope/vim-fugitive'
|
|
Plug 'vim-airline/vim-airline'
|
|
Plug 'vim-airline/vim-airline-themes'
|
|
Plug 'vim-scripts/srec.vim'
|
|
Plug 'keith/swift.vim'
|
|
Plug 'chr4/nginx.vim'
|
|
call plug#end()
|
|
|
|
let g:ctrlp_match_window = 'bottom,order:ttb'
|
|
let g:ctrlp_switch_buffer = 0 " open files in new buffer
|
|
let g:ctrlp_working_path_mode = 0 " use the current working directory
|
|
|
|
let g:rainbow#pairs = [['(',')'], ['[',']'], ['{','}']]
|
|
|
|
" line : col (% of total)
|
|
let g:airline_section_z = airline#section#create(['%4l:%3v (%p%% of %L)'])
|
|
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.crypt = '🔒'
|
|
let g:airline_symbols.branch = '⎇'
|
|
let g:airline_symbols.paste = 'Ⓟ'
|
|
let g:airline_symbols.spell = '✔'
|
|
let g:airline_symbols.readonly = ' ⃠'
|
|
let g:airline_symbols.notexists = '∄'
|
|
let g:airline_symbols.whitespace = '✗'
|
|
|
|
highlight link srecStart Comment
|
|
highlight link srecType Comment
|
|
highlight link srecLength WarningMsg
|
|
highlight link srec16BitAddress Constant
|
|
highlight link srec24BitAddress Constant
|
|
highlight link srec32BitAddress Constant
|
|
highlight link srecChecksum Type
|
|
|
|
colorscheme solarized
|
|
filetype plugin indent on
|
|
syntax enable
|
|
" }}}
|
|
|
|
" Mappings {{{
|
|
let mapleader = "\<space>"
|
|
let maplocalleader = ","
|
|
|
|
" better navigation for wrapped lines
|
|
noremap j gj
|
|
noremap k gk
|
|
|
|
" quickly exit insert mode
|
|
inoremap jk <esc>
|
|
|
|
" retain selection when indenting/unindenting in visual mode
|
|
vnoremap > ><cr>gv
|
|
vnoremap < <<cr>gv
|
|
|
|
" better searching (case insensitive & expand on previous)
|
|
nnoremap // /\c
|
|
nnoremap /// /<C-R>/
|
|
|
|
" window resizing similar to the way I have tmux set up
|
|
nnoremap <c-w><c-k> 5<c-w>+
|
|
nnoremap <c-w><c-j> 5<c-w>-
|
|
nnoremap <c-w><c-h> 5<c-w><
|
|
nnoremap <c-w><c-l> 5<c-w>>
|
|
|
|
" easier tab navigation
|
|
nnoremap <c-j> :tabprevious<cr>
|
|
nnoremap <c-k> :tabnext<cr>
|
|
nnoremap <c-h> :tabfirst<cr>
|
|
nnoremap <c-l> :tablast<cr>
|
|
|
|
" quickly change background
|
|
nnoremap <leader>bg
|
|
\ :let &background = &background ==# 'light' ? 'dark' : 'light'<cr>
|
|
|
|
" turn off search highlight
|
|
nnoremap <leader>h :nohlsearch<cr>
|
|
|
|
" toggle NERDTree
|
|
nnoremap <leader>n :NERDTreeToggle<cr>
|
|
|
|
" toggle rainbow parens
|
|
nnoremap <leader>r :RainbowParentheses!!<cr>
|
|
|
|
" fix whitespace
|
|
nnoremap <leader>w :FixWhitespace<cr>
|
|
" }}}"
|
|
|
|
augroup vimrc " {{{
|
|
autocmd!
|
|
autocmd BufNewFile,BufRead bash_profile,bashrc set filetype=sh
|
|
autocmd BufNewFile,BufRead gitconfig set filetype=gitconfig
|
|
autocmd BufNewFile,BufRead rcrc set filetype=sh
|
|
autocmd BufNewFile,BufRead *.sx,*.s19 set filetype=srec
|
|
|
|
autocmd FileType vim setlocal foldmethod=marker
|
|
autocmd FileType python setlocal foldmethod=indent foldignore=
|
|
autocmd FileType markdown,text,gitcommit setlocal formatoptions+=t spell
|
|
autocmd FileType gitcommit setlocal textwidth=72
|
|
augroup END " }}}
|
|
|
|
if filereadable(expand("~/.vimrc.local")) | source ~/.vimrc.local | endif
|
|
|