"Vi settings
" by Andrew Dawes based on design by Albert Schueller: 9/05/03
filetype on
filetype plugin on
set autoindent
set bs=2
set background=dark
"set columns=80
set clipboard=autoselect
set hidden
set keywordprg=ispell
set mouse=n
set nobackup
set notitle
set ruler
set showmode
set suffixes=.aux,.log,.dvi,.ps,.pdf,.bak,~,.o,.h,.info,.swp
"set textwidth=75
set vb t_vb=
set wm=0
set nocompatible
set incsearch
set tabstop=2
set softtabstop=2
set shiftwidth=2
set expandtab
" Setup color console
if has("terminfo")
set t_Co=8
set t_Sf=[3%p1%dm
set t_Sb=[4%p1%dm
else
set t_Co=8
set t_Sf=[3%dm
set t_Sb=[4%dm
endif
"Format a paragraph
"map , gq}
"correct shift mistake
map :W :w
map :Q :q
"----------------------------------------------------------------------------
"Handy Mappings
"
" Less style page down using the space bar.
" map
ino
" Next buffer
map ;n :bn
"Read mail
" map ;m :!m
"Switching windows.
map ;w
" Put the date at the top of the file
map ;d :1
O!!date
o
"
" Don't break words in middle
set linebreak
" Show incomplete paragraphs even when they don'f fit on screen (avoid @'s)
set display+=lastline
"Autocommands
"Clear out existing autocmds if .vimrc gets sourced twice.
autocmd!
autocmd FileType text setlocal textwidth=78
"Start syntax highlighting in Vim 5.0
syntax on
"Autocommands for Python files.
augroup Python
au BufNewFile,BufRead,BufEnter *.py set noexpandtab
augroup END
"Autocommands for LaTeX files.
augroup LaTeX
" Movement commands
au BufNewFile,BufRead,BufEnter *.tex omap o /^%\=$/
au BufNewFile,BufRead,BufEnter *.tex omap O ?^%\=$?
au BufNewFile,BufRead,BufEnter *.tex map ;c :!rm -f %<.ps %<.log %<.aux %<.dvi %<.ps %<.pdf
"au BufNewFile,BufRead,BufEnter *.tex map , gqo
"au BufNewFile,BufRead,BufEnter *.tex map ;p :!dvips %<.dvi
au BufNewFile,BufRead,BufEnter *.tex map ;f :!ltpdf %
au BufNewFile,BufRead,BufEnter *.tex map ;h :1
O\documentclass[12pt]{amsart}
\usepackage{amsmath}
\input{mydef}
\begin{document}
Go
\end{document}:6
au BufNewFile,BufRead,BufEnter *.tex map ;l :w
:!latex %
au BufNewFile,BufRead,BufEnter *.tex map ;m :w
:!make
au BufNewFile,BufRead,BufEnter *.tex map ;L o75i%A
"au BufNewFile,BufRead,BufEnter *.tex map ;, gq/%
au BufNewFile,BufRead,BufEnter *.tex map ;x :!xdvi %<.dvi -geometry 702x733+247+3 &
au BufNewFile,BufRead,BufEnter *.tex map ;p :!dvips -o %<.ps %<.dvi
au BufNewFile,BufRead,BufEnter *.tex map ;g :!gv %<.ps &
au BufNewFile,BufRead,BufEnter *.tex vmap ;E v`>a}`a\right)`a}`a\|`
au BufNewFile,BufRead,BufEnter *.tex iab EM {\em
au BufNewFile,BufRead,BufEnter *.tex iab BF {\bf
au BufNewFile,BufRead,BufEnter *.tex iab EX {\bf Example}:
au BufNewFile,BufRead,BufEnter *.tex iab ER {\bf Exercise}:
au BufNewFile,BufRead,BufEnter *.tex iab BV \begin{verbatim}
au BufNewFile,BufRead,BufEnter *.tex iab BE \begin{enumerate}
au BufNewFile,BufRead,BufEnter *.tex iab BI \begin{itemize}
au BufNewFile,BufRead,BufEnter *.tex iab EE \end{enumerate}
au BufNewFile,BufRead,BufEnter *.tex iab EV \end{verbatim}
au BufNewFile,BufRead,BufEnter *.tex iab EI \end{itemize}
au BufNewFile,BufRead,BufEnter *.tex vmap ;V v`>aEV `
au BufNewFile,BufRead,BufEnter *.tex set shiftwidth=2
au BufNewFile,BufRead,BufEnter *.tex set comments=b:%,:%,:\\\
au BufNewFile,BufRead,BufEnter *.tex set smarttab
au BufNewFile,BufRead,BufEnter *.tex set et
au BufNewFile,BufRead,BufEnter *.tex set smartindent
au BufNewFile,BufRead,BufEnter *.tex set cinwords=\\begin\{enumerate\}
au BufNewFile,BufRead,BufEnter *.tex set fo=t
au BufEnter *.tex cd %:p:h
"map the cursor keys to screen lines:
" Up, Down, Home and End keys in normal and insert mode
"au BufNewFile,BufRead,BufEnter *.tex map gk
"au BufNewFile,BufRead,BufEnter *.tex map k gk
"au BufNewFile,BufRead,BufEnter *.tex imap gk
"au BufNewFile,BufRead,BufEnter *.tex map gj
"au BufNewFile,BufRead,BufEnter *.tex map j gj
"au BufNewFile,BufRead,BufEnter *.tex imap gj
"au BufNewFile,BufRead,BufEnter *.tex map g
"au BufNewFile,BufRead,BufEnter *.tex imap g
"au BufNewFile,BufRead,BufEnter *.tex map g
"au BufNewFile,BufRead,BufEnter *.tex imap g
augroup END
"Autocommands for Html Files.
augroup HTML
au BufNewFile,BufRead,BufEnter *.html,*.content,*.ptml set syntax=html
"Timestamp an html file.
au BufNewFile,BufRead,BufEnter *.html,*.content map ;t /
j!!date
``:w
au BufNewFile,BufRead,BufEnter *.html,*.content vmap ;A v`>a`hi
au BufNewFile,BufRead,BufEnter *.html,*.content vmap ;H v`>a`
au BufNewFile,BufRead,BufEnter *.html,*.content vmap ;B v`>a`
au BufNewFile,BufRead,BufEnter *.html,*.content vmap ;C v`>a`
au BufNewFile,BufRead,BufEnter *.html,*.content vmap ;E v`>a`
au BufNewFile,BufRead,BufEnter *.html,*.content vmap ;P v`>a
`
au BufNewFile,BufRead,BufEnter *.html,*.content vmap ;U v`>a`
au BufNewFile,BufRead,BufEnter *.html,*.content iab EM
au BufNewFile,BufRead,BufEnter *.html,*.content iab EEM
au BufNewFile,BufRead,BufEnter *.html,*.content iab BF
au BufNewFile,BufRead,BufEnter *.html,*.content iab EBF
au BufNewFile,BufRead,BufEnter *.html,*.content iab CE
au BufNewFile,BufRead,BufEnter *.html,*.content iab ECE
au BufNewFile,BufRead,BufEnter *.html,*.content map ;d /!!dateA
au BufNewFile,BufRead,BufEnter *.html,*.content set shiftwidth=1
au BufNewFile,BufRead,BufEnter *.html,*.content set smarttab
au BufNewFile,BufRead,BufEnter *.html,*.content set et
au BufNewFile,BufRead,BufEnter *.html,*.content set smartindent
au BufNewFile,BufRead,BufEnter *.html,*.content set cinwords=,,,,
augroup END
augroup Perl
au FileType perl set cindent
au FileType perl set shiftwidth=1
au FileType perl set smarttab
au FileType perl set comments=b:#
au BufNewFile,BufRead,BufEnter *.pl map ;x :!%<
au BufNewFile,BufRead,BufEnter *.pl set comments=b:#
au BufNewFile,BufRead,BufEnter *.pl set shiftwidth=1
au BufNewFile,BufRead,BufEnter *.pl set smarttab
au BufNewFile,BufRead,BufEnter *.pl set cindent
au BufNewFile,BufRead,BufEnter *.pl vmap ;c :s/^/#/
au BufNewFile,BufRead,BufEnter *.pl vmap ;u :s/^[#]//
augroup END
augroup C
au BufNewFile,BufRead,BufEnter *.h,*.c set shiftwidth=2
au BufNewFile,BufRead,BufEnter *.h,*.c set smarttab
au BufNewFile,BufRead,BufEnter *.h,*.c set cindent
augroup END
augroup C++
au BufEnter *.h,*.template,*.cpp,*.cc cd %:p:h
au BufNewFile,BufRead,BufEnter *.h,*.template,*.cpp,*.cc set shiftwidth=2
au BufNewFile,BufRead,BufEnter *.h,*.template,*.cpp,*.cc set smarttab
au BufNewFile,BufRead,BufEnter *.h,*.template,*.cpp,*.cc set cindent
au BufNewFile,BufRead,BufEnter *.h,*.template,*.cpp,*.cc map ;g :w:!g++ %
au BufNewFile,BufRead,BufEnter *.h,*.template,*.cpp,*.cc map ;r :!a.out
au BufNewFile,BufRead,BufEnter *.h,*.template,*.cpp,*.cc map ;l o75i/o
au BufNewFile,BufRead,BufEnter *.h,*.template,*.cpp,*.cc map ;m :make
au BufNewFile,BufRead,BufEnter *.h,*.template,*.cpp,*.cc map ;d /Last Changed:!!dateI//Last Changed:
au BufNewFile,BufRead,BufEnter *.h,*.template,*.cpp,*.cc map ;h :1O//File Name://Author: Andrew M C Dawes//Email Address: dawes@phy.duke.edu//Description://Last Changed:#include int main() {return 0;}:1
augroup END
augroup Mutt
au BufNewFile,BufRead .followup,.letter,mutt*,nn.*,snd.* set tw=72
"au BufNewFile,BufRead .followup,.letter,mutt*,nn.*,snd.* set fo+=a
augroup END
augroup Makefile
au BufNewFile,BufRead,BufEnter Makefile,makefile set shiftwidth=8
au BufNewFile,BufRead,BufEnter Makefile,makefile set nosmarttab
augroup END
"Autocommands for gnuplot files.
augroup gnuplot
au BufNewFile,BufRead,BufEnter *.plot map ;p :!gnuplot %<.plot
au BufNewFile,BufRead,BufEnter *.plot map ;g :!gv %<.ps &
augroup END
"Autocommands for fortran 90 files.
augroup Fortran90
au BufNewFile,BufRead,BufEnter *.f90 set softtabstop=2
au BufNewFile,BufRead,BufEnter *.f90 set expandtab
augroup END