tacitdynamite /.vimrc

Most of this stuff is copied from elsewhere
" When started as "evim", evim.vim will already have done these settings.
if v:progname =~? "evim"
  finish
endif

" Use Vim settings, rather then Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible

" allow backspacing over everything in insert mode
set backspace=indent,eol,start

if has("vms")
  set nobackup		" do not keep a backup file, use versions instead
else
  set backup		" keep a backup file
endif
set history=50		" keep 50 lines of command line history
set ruler		" show the cursor position all the time
set showcmd		" display incomplete commands
set incsearch		" do incremental searching

" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries
" let &guioptions = substitute(&guioptions, "t", "", "g")

" Don't use Ex mode, use Q for formatting
map Q gq

" In many terminal emulators the mouse works just fine, thus enable it.
set mouse=a

" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has("gui_running")
  syntax on
  set hlsearch
endif

" Only do this part when compiled with support for autocommands.
if has("autocmd")

  " Enable file type detection.
  " Use the default filetype settings, so that mail gets 'tw' set to 72,
  " 'cindent' is on in C files, etc.
  " Also load indent files, to automatically do language-dependent indenting.
  filetype plugin indent on

  " Put these in an autocmd group, so that we can delete them easily.
  augroup vimrcEx
  au!

  " For all text files set 'textwidth' to 78 characters.
  autocmd FileType text setlocal textwidth=80

  " When editing a file, always jump to the last known cursor position.
  " Don't do it when the position is invalid or when inside an event handler
  " (happens when dropping a file on gvim).
  autocmd BufReadPost *
    \ if line("'\"") > 0 && line("'\"") <= line("$") |
    \   exe "normal! g`\"" |
    \ endif

  augroup END

else

  
endif " has("autocmd")

set formatoptions=1
set lbr
set tabstop=4
set shiftwidth=4
set shiftround
set expandtab
" this lets you indent different levels of methods
set foldmethod=indent
set foldlevel=0
set foldnestmax=2
set fillchars=stl:_,stlnc:-,vert:\|,fold:\ ,diff:-

" THIS NO LONGER WORKS
" F will now toggle folding on and off
" I used to use this, but then it got in the way of 'find backward'
" map F :let &fen = !&fen 
" now I try to use f5 because of what i learned (see below - f4)
" map  :let &fen = !&fen

" this sets autoindent for java files only
autocmd BufEnter *.java set cin sw=4
set complete=.,w,b,u,t,i
" use ctags .tags file to autocomplete, etc
autocmd FileType java set tags=~/.tags
" set makeprg=vimAnt
set efm=\ %#[javac]\ %#%f:%l:%c:%*\\d:%*\\d:\ %t%[%^:]%#:%m,
           \%A\ %#[javac]\ %f:%l:\ %m,%-Z\ %#[javac]\ %p^,%-C%.%#
" autocmd BufRead *.java set efm=%A\ %#[javac]\ %f:%l:\ %m,%-Z\ %#[javac]\ %p^,%-C%.%#
autocmd BufRead *.java set makeprg=ant\ -find\ build.xml
" this is another thing I got from vince liu's blog.  he made it so that 
" intellisense works with tab completion instead of with ctrl x ctrl u.  
" thank god.  let's just hope this works.  

  " Modified tab completion. It works fine now.
function! My_TabComplete()
let line = getline('.')                         " curline
let substr = strpart(line, -1, col('.')+1)      " from start to cursor
let substr = matchstr(substr, "[^ \t]*$")       " word till cursor
if (strlen(substr)==0)                          " nothing to match on empty string
 return "\"
endif
let bool = match(substr, '\.')                  " position of period, if any  
if (bool==-1)
 return "\\"                         " existing text matching
else
 return "\\"                         " plugin matching 
endif
endfunction
autocmd BufNew,BufRead *.java inoremap  =My_TabComplete()

" child-friendly paste
" if you press f4 it removes auto-formatting
" from http://www.davidpashley.com/blog/computing/vim/vim-paste
nmap  :set invpaste paste?
imap  :set invpaste
set pastetoggle=

" Convenient command to see the difference between the current buffer and the
" file it was loaded from, thus the changes you made.
command DiffOrig vert new | et bt=nofile | r # | 0d_ | diffthis
	 	\ | wincmd p | diffthis