diff --git a/shrc.zsh b/shrc.zsh index 320026d..cd1f01e 100644 --- a/shrc.zsh +++ b/shrc.zsh @@ -41,7 +41,7 @@ alias logsf="logs -f" alias diff="git --no-pager diff --color=auto --no-ext-diff --no-index" # being specific -alias erc="e ~/.zshrc ~/shrc.zsh ~/.bashrc" +alias erc="e ~/.zshrc ~/shrc.zsh ~/.bashrc ~/.vimrc" alias irc="screen -dR irc irssi" alias crawl='screen -dR crawl ssh crawl@crawl.develz.org -i ~/.ssh/crawl' alias crawla='screen -dR crawl ssh crawl@crawl.akrasiac.org -l joshua -i ~/.ssh/crawl' diff --git a/vimrc b/vimrc index 6332f5f..bd54d7c 100644 --- a/vimrc +++ b/vimrc @@ -1,51 +1,153 @@ -set nocompatible " screw vi +" vim:cc=79,39 +set nocompatible " screw vi -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" +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 -syntax enable " required for folding as well +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... + 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 + colorscheme candycode else - colorscheme Tomorrow-Night + colorscheme Tomorrow-Night - set colorcolumn=79 + set colorcolumn=79 endif -set nomodeline " ignore vim settings in files -set backupdir=~/.vim/backup " put tilde files elsewhere +set history=512 " command lines to remember -set number " lines -set hlsearch " highlight -let c_syntax_for_h=1 " use C highlighting for .h files +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=syntax -set foldlevelstart=99 -"set smartindent " automatic indentation -set nosmartindent +set foldlevelstart=99 " start with everything unfolded -set backspace=eol,start,indent " make backspace useful +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 -" 8 space tabs -set tabstop=8 -set shiftwidth=8 -set smarttab +set tabstop=8 shiftwidth=8 smarttab " 8 space tabs -" 4 spaces as tabs for various languages -au FileType bash,sh,zsh,awk,python,lua setlocal tabstop=8 expandtab shiftwidth=4 softtabstop=4 -au BufRead,BufNewFile *.json setlocal tabstop=8 expandtab shiftwidth=4 softtabstop=4 +function! TabFour() + setlocal tabstop=8 expandtab shiftwidth=4 softtabstop=4 +endfunction + +if has('autocmd') + augroup tabs " 4 spaces as tabs for various languages + au! + au FileType bash,sh,zsh,awk,python,lua,vim call TabFour() + au BufRead,BufNewFile *.json call TabFour() + augroup END + + " attempt to preserve cursor position + " FIXME: waits for input after running + autocmd BufReadPost * + \ if line("'\"") > 1 && line("'\"") <= line("$") | + \ exe "normal! g`\"" | + \ endif +endif + +set backspace=eol,start,indent " make backspace useful + +" easy indent/unindent +nn >> +nn << +" indentation without ending selection +vn >gv +vn J +"nn dd +" oh wait, terminals don't do that... + +nn :w +nn :e +nn :q +nn :w! +nn :e! +nn :q! +nn :wall +"nn :eall +nn :qall + +" bad habits +no +no +no +no +ino +ino +ino +ino +nn +nn +nn :m-2 +nn :m+1 + +" rebind annoying things +nn Q gq +nn K + +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