mirror of
https://github.com/notwa/rc
synced 2024-11-05 04:29:03 -08:00
200 lines
5.1 KiB
VimL
200 lines
5.1 KiB
VimL
" vim:cc=79,39
|
||
set nocompatible " screw vi
|
||
|
||
if has('multi_byte')
|
||
scriptencoding utf-8 " allow it in this script
|
||
set termencoding=utf-8 " and this terminal supports it
|
||
set encoding=utf-8 " and the default file is in it
|
||
endif
|
||
|
||
if (&term =~ "^xterm") " enable colors on any xterm
|
||
let &t_Co=256
|
||
let &t_AF="\e[38;5;%dm"
|
||
let &t_AB="\e[48;5;%dm"
|
||
endif
|
||
|
||
if has('syntax')
|
||
syntax enable " required for folding as well
|
||
set hlsearch " highlight search results
|
||
endif
|
||
|
||
if has('gui_running')
|
||
set guioptions-=m " hide menu
|
||
set guioptions-=T " hide toolbar
|
||
set guifont=Consolas:h9
|
||
set columns=84
|
||
set lines=36
|
||
cd $HOME " might not be ideal...
|
||
|
||
colorscheme candycode
|
||
else
|
||
colorscheme Tomorrow-Night
|
||
|
||
set colorcolumn=79
|
||
endif
|
||
|
||
set history=512 " command lines to remember
|
||
|
||
set ruler " write out the cursor position
|
||
set lazyredraw " when executing macros, untyped things
|
||
|
||
if has('title')|set title|endif " terminal title
|
||
|
||
" be less verbose with some terms and tell vim to shut up
|
||
set shortmess=atI
|
||
|
||
" lower the priority of tab-completing files with these extensions
|
||
set suffixes=.bak,~,.swp,.o,.log,.out
|
||
|
||
set noerrorbells visualbell t_vb= " disable bells
|
||
|
||
" TODO: check if dir exists
|
||
set backupdir=~/.vim/backup " put tilde files elsewhere
|
||
|
||
set scrolloff=3 " row context during scrolling
|
||
set sidescrolloff=2 " col context during scrolling
|
||
|
||
set number " lines
|
||
let c_syntax_for_h=1 " use C highlighting for .h files
|
||
|
||
set incsearch " show first search result as we type
|
||
set ignorecase " insensitive searching
|
||
set smartcase " except when uppercase is used
|
||
|
||
set infercase " use existing case when ins-completing
|
||
|
||
set foldmethod=marker
|
||
set foldlevelstart=99 " start with everything unfolded
|
||
|
||
if 0
|
||
set autoindent " when creating newline, use same indent
|
||
if has('smartindent')
|
||
set smartindent " automatic indents with a lot of stuff
|
||
endif
|
||
endif " it's really just annoying though
|
||
|
||
set diffopt+=iwhite " ignore whitespace in diff command
|
||
|
||
" word wrapping
|
||
set nowrap
|
||
set nolinebreak
|
||
|
||
set tabstop=8 shiftwidth=8 smarttab " 8 space tabs
|
||
|
||
fu! TabFour()
|
||
setlocal tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
||
endf
|
||
|
||
fu! TabTwo()
|
||
setlocal tabstop=2 shiftwidth=2 expandtab
|
||
endf
|
||
|
||
if has('autocmd')
|
||
augroup tabs " 4 spaces as tabs for various languages
|
||
au!
|
||
au FileType bash,sh,zsh,mk,awk,python,pyrex,lua,vim call TabFour()
|
||
au BufRead,BufNewFile *.json call TabFour()
|
||
au BufRead,BufNewFile PKGBUILD call TabTwo()
|
||
au FileType ruby call TabTwo()
|
||
augroup END
|
||
|
||
augroup reload " http://superuser.com/a/417997
|
||
au!
|
||
au BufWritePost .vimrc,_vimrc,vimrc so $MYVIMRC
|
||
augroup END
|
||
|
||
fu! ResCur() " attempt to preserve cursor position
|
||
if line("'\"") > 1 && line("'\"") <= line("$")
|
||
normal! g`"
|
||
return 1
|
||
endif
|
||
endf
|
||
augroup resCur
|
||
au!
|
||
au BufWinEnter * call ResCur()
|
||
augroup END
|
||
endif
|
||
|
||
set backspace=eol,start,indent " make backspace useful
|
||
|
||
if has('wildmenu')
|
||
set wildmenu " tab completion in command-line
|
||
endif
|
||
|
||
" easy indent/unindent
|
||
nn <tab> >>
|
||
nn <s-tab> <<
|
||
" indentation without ending selection
|
||
vn <silent> <tab> >gv
|
||
vn <silent> <s-tab> <gv
|
||
|
||
" might make return useful
|
||
"nn <s-cr> J
|
||
"nn <c-cr> dd
|
||
" oh wait, terminals don't do that...
|
||
|
||
nn <F5> :w<cr>
|
||
nn <F8> :e<cr>
|
||
nn <F10> :q<cr>
|
||
nn <c-F5> :w!<cr>
|
||
nn <c-F8> :e!<cr>
|
||
nn <c-F10> :q!<cr>
|
||
nn <s-F5> :wall<cr>
|
||
"nn <s-F8> :eall<cr>
|
||
nn <s-F10> :qall<cr>
|
||
|
||
" bad habits
|
||
no <up> <nop>
|
||
no <down> <nop>
|
||
no <left> <nop>
|
||
no <right> <nop>
|
||
ino <up> <nop>
|
||
ino <down> <nop>
|
||
ino <left> <nop>
|
||
ino <right> <nop>
|
||
|
||
" good habits
|
||
nn <c-up> <c-y>
|
||
nn <c-down> <c-e>
|
||
ino <c-up> <c-o><c-y>
|
||
ino <c-down> <c-o><c-e>
|
||
nn <silent> <c-s-up> :m-2<cr>
|
||
nn <silent> <c-s-down> :m+1<cr>
|
||
ino <silent> <c-s-up> <c-o>:m-2<cr>
|
||
ino <silent> <c-s-down> <c-o>:m+1<cr>
|
||
|
||
" rebind annoying things
|
||
" reflow text
|
||
nn Q gq
|
||
" split lines (opposite of J)
|
||
nn K i<cr><esc>k$
|
||
vn K <nop>
|
||
" hide search highlighting
|
||
nn <silent> <c-]> :nohls<enter>
|
||
ino <silent> <c-]> <c-o>:nohls<enter>
|
||
" follow tag
|
||
nn <bar> <c-]>
|
||
" delete line
|
||
nn D dd
|
||
|
||
" this frees up x and X for use
|
||
set <s-Del>=[3;2~
|
||
nn <s-Del> X
|
||
|
||
" unfollow your leaders
|
||
nn <Leader>p "0p
|
||
nn <Leader>P "0P
|
||
nn <Leader>e :tabe
|
||
|
||
if v:version < 703 " even debian stable has 7.3, so...
|
||
set nomodeline
|
||
else
|
||
if &termencoding == "utf-8"
|
||
set list listchars=tab:»·,trail:·,extends:…,nbsp:‗
|
||
else
|
||
set list listchars=tab:>-,trail:.,extends:>,nbsp:_
|
||
endif
|
||
endif
|
||
|
||
" TODO: check if pathogen is installed
|
||
execute pathogen#infect()
|