1 " ---------------------------------------------------------------------------
 
   3 " ---------------------------------------------------------------------------
 
   5 set nocompatible                      " essential
 
   6 set history=1000                      " lots of command line history
 
   7 set confirm                           " error files / jumping
 
   8 set fileformats=unix,dos,mac          " support these files
 
   9 filetype plugin indent on             " load filetype plugin
 
  10 set iskeyword+=_,$,@,%,#,-            " none word dividers
 
  11 set viminfo='1000,f1,:100,@100,/20
 
  12 set modeline                          " make sure modeline support is enabled
 
  13 set autoread                          " reload files (no local changes only)
 
  15 " ---------------------------------------------------------------------------
 
  17 " ---------------------------------------------------------------------------
 
  19 if &t_Co > 2 || has("gui_running")
 
  22     set t_AB=
\e[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm
 
  23     set t_AF=
\e[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm
 
  30   set hlsearch  " Highlight all search matches
 
  31   " Press Space to turn off highlighting and clear any message already displayed.
 
  32   :nnoremap <silent> <Space> :nohlsearch<Bar>:echo<CR>
 
  36 " ---------------------------------------------------------------------------
 
  38 " ---------------------------------------------------------------------------
 
  40 highlight Comment         ctermfg=DarkGrey guifg=#444444
 
  41 highlight StatusLineNC    ctermfg=Black ctermbg=DarkGrey cterm=bold
 
  42 highlight StatusLine      ctermbg=Black ctermfg=LightGrey
 
  44 " ----------------------------------------------------------------------------
 
  45 "   Highlight Trailing Whitespace
 
  46 " ----------------------------------------------------------------------------
 
  48 set list listchars=trail:.,tab:>.
 
  49 highlight SpecialKey ctermfg=DarkGray ctermbg=Black
 
  51 " ----------------------------------------------------------------------------
 
  53 " ----------------------------------------------------------------------------
 
  55 set nobackup                           " do not keep backups after close
 
  56 set nowritebackup                      " do not keep a backup while working
 
  57 set noswapfile                         " don't keep swp files either
 
  58 set backupdir=$HOME/.vim/backup        " store backups under ~/.vim/backup
 
  59 set backupcopy=yes                     " keep attributes of original file
 
  60 set backupskip=/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*
 
  61 set directory=~/.vim/swap,~/tmp,.      " keep swp files under ~/.vim/swap
 
  63 " ----------------------------------------------------------------------------
 
  65 " ----------------------------------------------------------------------------
 
  67 set ruler                  " show the cursor position all the time
 
  68 set noshowcmd              " don't display incomplete commands
 
  69 set nolazyredraw           " turn off lazy redraw
 
  70 "set number                 " line numbers
 
  71 set wildmenu               " turn on wild menu
 
  72 set wildmode=list:longest,full
 
  73 set ch=2                   " command line height
 
  74 set backspace=2            " allow backspacing over everything in insert mode
 
  75 set whichwrap+=<,>,h,l,[,] " backspace and cursor keys wrap to
 
  76 set shortmess=filtIoOA     " shorten messages
 
  77 set report=0               " tell us about changes
 
  78 set nostartofline          " don't jump to the start of line when scrolling
 
  80 " ----------------------------------------------------------------------------
 
  82 " ----------------------------------------------------------------------------
 
  84 set showmatch              " brackets/braces that is
 
  85 set mat=5                  " duration to show matching brace (1/10 sec)
 
  86 set incsearch              " do incremental searching
 
  87 set laststatus=2           " always show the status line
 
  88 set ignorecase             " ignore case when searching
 
  89 set smartcase              " case-sensitive if search contains an uppercase character
 
  90 set visualbell             " shut the heck up
 
  92 " ----------------------------------------------------------------------------
 
  94 " ----------------------------------------------------------------------------
 
  96 set autoindent             " automatic indent new lines
 
  97 set smartindent            " be smart about it
 
  98 "set nowrap                 " do not wrap lines
 
  99 set softtabstop=2          " yep, two
 
 100 set shiftwidth=2           " ..
 
 102 set expandtab              " expand tabs to spaces
 
 103 set nosmarttab             " screw tabs
 
 104 set formatoptions+=n       " support for numbered/bullet lists
 
 105 set textwidth=80           " wrap at 80 chars by default
 
 106 set virtualedit=block      " allow virtual edit in visual block ..
 
 108 " ----------------------------------------------------------------------------
 
 110 " ----------------------------------------------------------------------------
 
 113   set tabpagemax=50                     " open 50 tabs max
 
 116 " ----------------------------------------------------------------------------
 
 118 " ----------------------------------------------------------------------------
 
 120 " <F2> to pastetoggle, to turn-off autoindent when pasting from system clipboard
 
 121 nnoremap <F2> :set invpaste paste?<CR>
 
 125 "" <F8>/<Shift>-<F8> to navigation between buffers
 
 128   nnoremap <F8> :sbnext<CR>
 
 129   nnoremap <S-F8> :sbprevious<CR>
 
 135 "map <A-F7> :copen<CR>
 
 137 "" emacs movement keybindings in insert mode
 
 143 " reflow paragraph with Q in normal and visual mode
 
 147 "" sane movement with wrap turned on
 
 156 "inoremap <Down> <C-o>gj
 
 157 "inoremap <Up> <C-o>gk
 
 159 "" do not menu with left / right in command line
 
 160 "cnoremap <Left> <Space><BS><Left>
 
 161 "cnoremap <Right> <Space><BS><Right>
 
 163 " ----------------------------------------------------------------------------
 
 165 " ----------------------------------------------------------------------------
 
 167 " jump to last position of buffer when opening
 
 168 au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") |
 
 169                          \ exe "normal g'\"" | endif
 
 171 " don't use cindent for javascript
 
 172 autocmd FileType javascript setlocal nocindent
 
 174 " ----------------------------------------------------------------------------
 
 176 " ----------------------------------------------------------------------------
 
 178 "let g:LookupFile_TagExpr = '".ftags"'
 
 179 "let g:LookupFile_MinPatLength = 2
 
 180 "let g:LookupFile_ShowFiller = 0                  " fix menu flashiness
 
 181 "let g:LookupFile_PreservePatternHistory = 1      " preserve sorted history?
 
 182 "let g:LookupFile_PreserveLastPattern = 0         " start with last pattern?
 
 184 "nmap <unique> <silent> <D-f> <Plug>LookupFile
 
 185 "imap <unique> <silent> <D-f> <C-O><Plug>LookupFile
 
 187 " ----------------------------------------------------------------------------
 
 189 " ----------------------------------------------------------------------------
 
 191 if system('uname') =~ 'Darwin'
 
 193     \ '/usr/local/bin:/usr/local/sbin:' .
 
 195     \ '/opt/local/bin:/opt/local/sbin:' .
 
 199 " ---------------------------------------------------------------------------
 
 201 " ---------------------------------------------------------------------------
 
 203 au Filetype sh,bash set ts=4 sts=4 sw=4 expandtab
 
 206 " ---------------------------------------------------------------------------
 
 208 " ---------------------------------------------------------------------------
 
 210 "map ,f :tabnew <cfile><CR>
 
 212 "map ,dt :tabnew %:h/<CR>
 
 214 "" I use these commands in my TODO file
 
 215 "map ,a o<ESC>:r!date +'\%A, \%B \%d, \%Y'<CR>:r!date +'\%A, \%B \%d, \%Y' \| sed 's/./-/g'<CR>A<CR><ESC>
 
 218 "map ,x :s/^\[ \]/[x]/<CR>
 
 219 "map ,X :s/^\[x\]/[ ]/<CR>
 
 221 " ---------------------------------------------------------------------------
 
 222 "  Strip all trailing whitespace in file
 
 223 " ---------------------------------------------------------------------------
 
 225 function! StripWhitespace ()
 
 228 map ,s :call StripWhitespace ()<CR>
 
 230 " ---------------------------------------------------------------------------
 
 232 " ---------------------------------------------------------------------------
 
 234 au Filetype gitcommit set tw=68  spell
 
 235 "au Filetype html,xml,xsl,rhtml source $HOME/.vim/scripts/closetag.vim
 
 237 " --------------------------------------------------------------------------
 
 239 " --------------------------------------------------------------------------
 
 241 let g:manpageview_pgm= 'man -P "/usr/bin/less -is"'
 
 242 let $MANPAGER = '/usr/bin/less -is'