-version 5.3
-" ==================================================================
-" File: $HOME/.vimrc
-" Availability: This file is available as
-" ~20K <URL:http://www.math.fu-berlin.de/~guckes/setup/vimrc.gz>
-" ~56K <URL:http://www.math.fu-berlin.de/~guckes/setup/vimrc>
-" <URL:http://www.vim.org/rc> (mirror)
-" Size: This file is about 57K in size and has 1,500+ lines.
-" Purpose: Setup file for the editor Vim (Vi IMproved)
-" <URL:http://www.math.fu-berlin.de/~guckes/sven/>
-" Related files:
-" http://www.math.fu-berlin.de/~guckes/vim/src/latex.vim
-" http://www.math.fu-berlin.de/~guckes/vim/src/html.vim
-" http://www.math.fu-berlin.de/~guckes/vim/syntax/
-" Note: Please send comments to me - email preferred! :-)
-" Last update: Thu Dec 10 02:02:02 CET 1998
-" ===================================================================
-" The latest versions of Vim are usually in my signature file:
-" http://www.math.fu-berlin.de/~guckes/sig/SIGS Have a look!
-" ===================================================================
-" Note to Windows users: Get these files from any Vim mirror:
-" vim52rt.zip (840K) vim runtime files (docs + syntax files)
-" gvimw32.zip (440K) gvim - precompiled binary for Windows 32bit
-" These should fit onto one floppy. Just a recommendation.
-" ===================================================================
-" Installation of this setup file:
-"
-" To use this setup file, copy it to
-" this filename on these systems:
-" ~/.vimrc Unix and OS/2
-" s:.vimrc Amiga
-" $VIM\_vimrc MS-DOS and Win32
-"
-" NOTE: This setup file uses a lot of features of Vim-5.
-" If you are still using Vim-4 (or an even older version)
-" then you should upgrade - it is really worth the effort!
-" To find out why get Vim-5 and read ":help version5".
-"
-" The first line of this setup file contains the information
-" "version xxx" which allows VIM to check whether the setup file
-" fits the syntax that it understands.
-" Versions of VIM other than of version 5 then will give a warning
-" as they do not understand this setup file command - a feature:
-" Give a warning so the user knows that there is something odd
-" about the setup file.
-" ===================================================================
-" Whitespace meta sequence:
-" vim-5.0s introduced the meta sequence "\s" which stands for "whitespace"
-" ie either a space or a tab. This makes mappings a lot easier.
-" I have therefore updated my mappings to use this sequence.
-" But this is incompatible with previous versions and, of course, Vi.
-" ===================================================================
-" Info on the latest versions is on the Vim HomePage:
-" http://www.vim.org/ - which is a daily mirror of the pages at
-" http://www.math.fu-berlin.de/~guckes/vim/
-" and in Sven's signature file:
-" http://www.math.fu-berlin.de/~guckes/sig/SIGS
-" ===================================================================
-" ===================================================================
-" Structure of this file:
-" Lines starting with an inverted comma (") are comments.
-" Some mappings are commented out. Remove the comment to enable them.
-"
-" There are three kinds of things which are defined in this file:
-" Mapping ("map"), settings ("set"), and abbreviations ("ab").
-" Settings affect the behaviour of commands.
-" Mappings maps a key sequence to a command.
-" Abbreviations define words which are replaced
-" right *after* they are typed in.
-"
-" ===================================================================
-" Note on mappings - "angle notation" (see ":help <>"):
-" VIM allows you to define mappings with special characters
-" with a notation that uses non-special characters:
-" The notation encloses decriptive words in angle brackets (<>).
-" The characters you will most often are:
-" <C-M> for control-m
-" <C-V> for control-v which quotes the following character
-" <ESC> for the escape character.
-" All control characters have been replaced to use the angle notation
-" so you should be able to read this file without problems.
-" (Well, sometimes I leave some tabs [control-i] in the file. ;-)
-" ===================================================================
-" External programs:
-" Some mappings make use of external programs.
-" The following you should find on every UNIX system:
-" awk, egrep, grep, ispell, perl, sed.
-" If you are using DOS then you should get these for you system!!
-" Programs that are supplied with the mailer ELM: elmalias, readmsg.
-" To get these look at page
-" http://www.math.fu-berlin.de/~guckes/elm/dist.html
-" One major advantage of vim-5 (actually, 5.0g) is that there is now
-" the internal function "strftime". This allows to insert the current
-" date and time in various format. Example: mapping ",L" (see below)
-" ===================================================================
-" SETtings
-" ===================================================================
-"
-" autoindent: "off" as I usually do not write code.
- set noautoindent
-"
-" autowrite: "on" saves a lot of trouble
- set autowrite
-"
-" backup: backups are for wimps ;-)
- set nobackup
-"
-" backspace: '2' is much smarter.
- set backspace=2
-"
-" background: Are we using a "light" or "dark" background?
- set background=dark
-"
-" compatible ....
- set nocompatible
-"
-" comments default: sr:/*,mb:*,el:*/,://,b:#,:%,:XCOMM,n:>,fb:-
- set comments=b:#,:%,fb:-,n:>,n:)
-"
-" cpoptions you should get to know - source of many FAQs! ;-)
-" cpoptions: "compatible options" to match Vi behaviour
-" set cpoptions="aABceFs" "default!
-" FAQ: Do NOT include the flag '<' if you WANT angle notation!
-"
-" dictionary: english words first
- set dictionary=/usr/dict/words,/local/lib/german.words
-"
-" digraph: required for those umlauts
- set digraph
-"
-" errorbells: damn this beep! ;-)
- set noerrorbells
+" Use Vim settings, rather then Vi settings (much better!).
+" This must be first, because it changes other options as a side effect.
+set nocompatible
-" esckeys: allow usage of cursor keys within insert mode
- set esckeys
-"
-" formatoptions: Options for the "text format" command ("gq")
-" I need all those options (but 'o')!
- set formatoptions=cqrt
-"
-" helpheight: zero disables this.
- set helpheight=0
-"
-" helpfile: filename of the helpfile
-" set helpfile=c:\\vim-4.6\\docs\\help.txt
-" this is where I usually put it on DOS; sometimes is required
-" to set as the default installation does not find it :-(
-"
-" hidden:
- set hidden
-"
-" highlight=8b,db,es,hs,mb,Mn,nu,rs,sr,tb,vr,ws
- set highlight=8r,db,es,hs,mb,Mr,nu,rs,sr,tb,vr,ws
-"
-" hlsearch : highlight search - show the current search pattern
-" This is a nice feature sometimes - but it sure can get in the
-" way sometimes when you edit.
- set nohlsearch
-"
-" icon: ...
- set noicon
-"
-" set iconstring file of icon (Sven doesn't use an icon)
-" set iconstring
-"
-" ignorecase: ignore the case in search patterns? NO!
- set noignorecase
-"
-" insertmode: start in insert mode? Naah.
- set noinsertmode
-"
-"
-" iskeyword: Add the dash ('-'), the dot ('.'), and the '@'
-" as "letters" to "words".
-" iskeyword=@,48-57,_,192-255 (default)
- set iskeyword=@,48-57,_,192-255,-,.,@-@
-"
-" joinspaces: insert two spaces after a period with every
-" joining of lines. This is very nice!
- set joinspaces
-"
-" keywordprg: Program to use for the "K" command.
-" set keywordprg=man\ -s
-"
-" laststatus: show status line? Yes, always!
-" laststatus: Even for only one buffer.
- set laststatus=2
-"
-" [VIM5]lazyredraw: do not update screen while executing macros
- set lazyredraw
-"
-" magic: use some magic in search patterns? Certainly!
- set magic
-"
-" modeline: ...
-" Allow the last line to be a modeline - useful when
-" the last line in sig gives the preferred textwidth for replies.
- set modeline
- set modelines=1
-"
-" number: ...
- set nonumber
-"
-" path: The list of directories to search when you specify
-" a file with an edit command.
-" Note: "~/.P" is a symlink to my dir with www pages
-" "$VIM/syntax" is where the syntax files are.
- set path=.,,~/.P/vim,~/.P/vim/syntax,~/.P/vim/source,$VIM/syntax/
-" set path=.,,~/.P/vim,~/.P/mutt/,~/.P/elm,~/.P/slrn/,~/.P/nn
-"
-" report: show a report when N lines were changed.
-" report=0 thus means "show all changes"!
- set report=0
-"
-" ruler: show cursor position? Yep!
- set ruler
-"
-" Setting the "shell" is always tricky - especially when you are
-" trying to use the same vimrc on different operatin systems.
-" shell for DOS
-" set shell=command.com
-" shell for UNIX - math.fu-berlin.de BSD
-" set shell=zsh
-" shell for UNIX - inf.fu-berlin.de BSD&Solaris
-" set shell=zsh
-" shell for UNIX - zedat.fu-berlin.de BSD&Solaris
-" set shell=/bin/tcsh
-" zsh now available at zedat! :-)
-" set shell=zsh
-" Now that vim-5 has ":if" I am trying to automate the setting:
-"
- if has("dos16") || has("dos32")
- let shell='command.com'
- endif
- if has("unix")
- let shell='zsh'
- endif
-"
-" shiftwidth: Number of spaces to use for each
-" insertion of (auto)indent.
- set shiftwidth=8
-"
-" shortmess: Kind of messages to show. Abbreviate them all!
-" New since vim-5.0v: flag 'I' to suppress "intro message".
- set shortmess=at
-"
-" showcmd: Show current uncompleted command? Absolutely!
- set showcmd
-"
-" showmatch: Show the matching bracket for the last ')'?
- set showmatch
-"
-" showmode: Show the current mode? YEEEEEEEEESSSSSSSSSSS!
- set showmode
-"
-" suffixes: Ignore filename with any of these suffixes
-" when using the ":edit" command.
-" Most of these are files created by LaTeX.
- set suffixes=.aux,.bak,.dvi,.gz,.idx,.log,.ps,.swp,.tar
-"
-" startofline: no: do not jump to first character with page
-" commands, ie keep the cursor in the current column.
- set nostartofline
-"
-" tabstop
- set tabstop=8
-"
-"
-" Set the colors for vim on "xterm"
- if &term=="xterm"
- set t_Co=8 " "terminal has eight colors"
- set t_Sb=\e[4%dm " escape sequence for background
- set t_Sf=\e[3%dm " escape sequence for foreground
-" source ~/.P/vim/syntax/colors.vim
-" http://www.math.fu-berlin.de/~guckes/vim/syntax/colors.vim
-" [todo] Add this to the Vim FAQ
- endif
-"
-" textmode: no - I am using Vim on UNIX!
- set notextmode
-"
-" textwidth
- set textwidth=79
-"
-" title:
- set notitle
-"
-" ttyfast: are we using a fast terminal?
-" seting depends on where I use Vim...
- set nottyfast
-"
-" ttybuiltin:
- set nottybuiltin
-"
-" ttyscroll: turn off scrolling -> faster!
- set ttyscroll=0
-"
-" ttytype:
-" set ttytype=rxvt
-"
-" viminfo: What info to store from an editing session
-" in the viminfo file; can be used at next session.
- set viminfo=%,'50,\"100,:100,n~/.viminfo
-"
-" visualbell:
- set visualbell
-"
-" t_vb: terminal's visual bell - turned off to make Vim quiet!
-" Please use this as to not annoy cow-orkers in the same room.
-" Thankyou! :-)
- set t_vb=
-"
-" whichwrap:
- set whichwrap=<,>
-"
-" wildchar the char used for "expansion" on the command line
-" default value is "<C-E>" but I prefer the tab key:
- set wildchar=<TAB>
-"
-" wrapmargin:
- set wrapmargin=1
-"
-" writebackup:
- set nowritebackup
-"
-" ===================================================================
-" ABbreviations
-" ===================================================================
-" 980701: Moved the abbreviations *before* the mappings as
-" some of the abbreviations get used with some mappings.
-"
-" Abbreviations for some important numbers:
- iab Npi 3.1415926535897932384626433832795028841972
- iab Ne 2.7182818284590452353602874713526624977573
-"
-" Abbreviations for some classic long words:
-"
-" Donau... is the German word for the (read in reverse)
-" "additional paragraph of the law regulating the pension of
-" widows to captains of the ship company on (the river) Danube"
-" (I am not making this up! ;-)
- iab YDD Donaudampfschiffahrtgesellschaftskapitaenwitwenrentengesetzzusatzparagraph
-"
-" YLL : The name of a town in Wales. I am not making this up!
- iab YLL LLanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch
-" http://www.llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch.co.uk
-" http://194.159.85.168/ - I am not making this up! :-)
-"
-" YTauma: The name of a hill in New Zealand.
- iab YTauma Taumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwenuakitanatahu
-"
-" Yalpha : The lower letter alphabet.
- iab Yalpha abcdefghijklmnopqrstuvwxyz
-"
-" YALPHA : The upper letter alphabet.
- iab YALPHA ABCDEFGHIJKLMNOPQRSTUVWXYZ
-"
-" Ydigit : The ten digits.
- iab Ydigit 1234567890
-"
-" Yruler : A ruler.
- iab Yruler 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
-"
-" Yupsidedown : This describes people from "down under"
-" (Hi, Dean!).
- iab Yupsidedown umop-ap!sdn
-"
-" Ysuper: A nice long word from the musical "Mary Poppins".
- iab Ysuper supercalifragilisticexpialidocious
+" TODO: this may not be in the correct place. It is intended to allow overriding <Leader>.
+" source ~/.vimrc.before if it exists.
+if filereadable(expand("~/.vimrc.before"))
+ source ~/.vimrc.before
+endif
-" Yanti: The longest proper word in the English language?!
- iab Yanti antidisestablishmentarianism
-"
-" Ypass : Standard answer to Usenet posts
-" with the "Subject: HELP" (hehe)
- iab Ypass "You are in a maze of twisty little passages, all alike."
-"
-" Ysesqui : "Sesquipedalophobia" means "fear of big words." ;-)
- iab Ysesqui sesquipedalophobia
-"
-" classic pangrams (which include every letter of the alphabet):
-" German:
-" sylvia wagt quick den jux bei pforzheim
-" bayerische jagdwitze von maxl querkopf
-" zwei boxkaempfer jagen eva quer durch sylt
-" kaufen sie jede woche vier gute bequeme pelze
-" falsches üben von xylophonmusik quält jeden größeren zwerg.
-" Bei jedem klugen Wort von Sokrates rief Xanthippe zynisch: Quatsch!
-" English:
-" the quick brown fox jumps over the lazy dog
-" French:
-" voyez le brick geant que j'examine pres du wharf.
-"
-" And a sentence to break some quoing levels:
-" "This man's house (which 's yellow) burned down."
-"
-" And now for something completely different:
-" I couldn't bear to bear bears over the border.
-"
-" Inserting an ellipsis to indicate deleted text
- iab Yell [...]
- vmap ,ell c[...]<ESC>
-"
-" Correcting those typos. [I almost never get these right. :-(]
-" See also: http://www.igd.fhg.de/~zach/programs/acl/
- iab alos also
- iab aslo also
- iab charcter character
- iab charcters characters
- iab exmaple example
- iab shoudl should
- iab seperate separate
- iab teh the
-" Some frequent typos in German:
- iab nciht nicht
- iab doer oder
- iab Dreckfuhler Druckfehler
-" Sorry, Laurent!
- iab Laurant Laurent
-"
-" See http://www.math.fu-berlin.de/~guckes/sig/:
- iab YDDS dash-dash-space
-"
-" For reports and texts on my studies:
- iab YKT Komplexitaetstheorie
- iab YRA Rechnerarchitektur
- iab YPM Pattern Matching
-" see http://elib.zib.de/ICM98 :
- iab YICM International Congress of Mathematicians
-"
-" Some sentences that I really use often in emails about Vim:
- iab YAW You are welcome! :-)
- iab YEV Enjoy Vim!
-"
-" Often used filenames - only needed these on the command line:
-" see also: http://www.math.fu-berlin.de/~guckes/setup/
-"
- cab ELMALIAS ~/.elm/aliases.text
- cab Erc ~/.elm/elmrc
- cab Mrc ~/.muttrc
- cab Src ~/.slrnrc
- cab Zrc ~/.zsh/.zshrc
- cab SIGs ~/.P/sig/SIGS
-"
-" A list of filenames that are needed to shorten some autocommands:
-" cab MAILNEWSFILES .article,.followup,.letter,mutt*[0-9],/postpone/*
-" cab MAILNEWSFILES *.article,*.followup,*.letter,*mutt*
-let MAILNEWSFILES = "*.article,*.followup,*.letter,mutt*"
-"
-" see also: http://www.math.fu-berlin.de/~guckes/sig/SIGS
-"
-" Email Adresses:
-" I usually use these when adding addresses to the header
-" of emails (mutt) and posts (slrn).
-"
-" Author of the Good NetKeeping Seal of Approval:
-"
-" Author of Mutt:
-"
-" Author of Slrn:
-"
-" Author of Vim:
-"
-" Former Maintainer of the Vim FAQ:
-"
-" Mailing Lists (MLs)
-"
-" The Vim mailing lists: See http://www.vim.org/mail.html for more info!
-"
-" More mailing lists:
-"
-"
-" News: newsgroup names
-"
-" Newsgroup about "warloding" of signatures - see
-" also http://www.math.fu-berlin.de/~guckes/afw/
- iab Nafw alt.fan.warlord
- iab Nahbou alt.humor.best-of-usenet
- iab Nzedat bln.announce.fub.zedat.d
- iab Ncsd bln.announce.fub.cs.d
- iab Nce comp.editors
-" Newsgroup about "lynx":
- iab Nhtml comp.infosystems.www.authoring.html
-" Newsgroup about "elm": Elm is dead - long live Mutt!
- iab Nelm comp.mail.elm
-" Newsgroup about "pine": When will they release pine-4?
-" iab Ncmp comp.mail.pine
- iab Npine comp.mail.pine
-" iab Ncsmd comp.sys.mac.digest
-" Newsgroup about "mobil phone systems":
- iab Ndcm de.comm.mobil
- iab Nmobil de.comm.mobil
-" Newsgroup about "web browsers":
- iab Nlynx comp.infosystems.www.browsers.misc
- iab Nnetscape comp.infosystems.www.browsers.misc
-" Newsgroup about "mutt" [since 980401]: The coolest mail user agent
- iab Nmutt comp.mail.mutt
-" Newsgroup about "nn": Once was the best newsreader. Still good.
- iab Nnn news.software.nn
-" Newsgroup for "newbies".
-" All you ever wanted to know - but were afraid to ask. ;-)
- iab Newbie news.newusers.questions
-" Newsgroup about "newsreader *agents*" (netscape and slrn):
- iab Nnsr news.software.readers
-"
-" Usenet header lines (used when composing a post):
-"
- iab UFT Followup-To:
- iab UMCT Mail-Copies-To: MYADDR
- iab UNG Newsgroups:
- iab URT Reply-To: MYADDR
- iab UFUB Organization: Freie Universitaet Berlin
-"
-" Current version numbers of my favourite programs:
-" http://www.math.fu-berlin.de/~guckes/sig/SIGS
-" And some abbreviations to type them in mail&news:
-"
- iab Velm ELM2.4PL25 [951204]
- iab VElm ELM2.5b2 [980213]
- iab Vlynx lynx-2.8.0 [980310
- iab Vmutt mutt-0.92.8 [980514]
- iab Vslrn slrn-0.9.5.2 [980503]
- iab Vvim vim-5.1 [980407]
- iab Vvimdev vim-5.2c [980518]
-"
-" For current version numbers take a look at my signature file:
-" http://www.math.fu-berlin.de/~guckes/sig/SIGS
-"
-" My snail mail address, phone numbers, and email->pager gateway:
-" Postcards and FAXes are welcome (especially with cartoons :-).
-" If you want, you can send a message to my pager by email, too.
- iab Yphone TEL/FAX (+49 30) 8838884<C-M>Cellphone (+49 177) 7777796
- iab Ysnail Sven Guckes<C-M>Pariser Str. 52<C-M>D-10719 Berlin
-"
-" My addresses (Email and WWW)
-" makes it easy to type them without typos ;-)
- ab MYNAME Sven Guckes
-"
-" Setting the reply address when replying as the guy from SKB:
-" See also: http://www.math.fu-berlin.de/~guckes/skb/
-"
-" My Home Pages at the departments at the FUB
-"
- ab WWWm http://www.math.fu-berlin.de/~guckes/
- ab WWWi http://www.inf.fu-berlin.de/~guckes/
- ab WWWz http://userpage.zedat.fu-berlin.de/~guckes/
-"
-" WWW Pages base URLs
-"
- ab HPA http://www.math.fu-berlin.de/~guckes/afw/
- ab HPa http://www.math.fu-berlin.de/~guckes/ascii/
- ab HPc http://www.math.fu-berlin.de/~guckes/calvin/
- ab HPD http://www.math.fu-berlin.de/~guckes/dos/
- ab HPe http://www.math.fu-berlin.de/~guckes/eplus/ab.faq.html
- ab HPE http://www.math.fu-berlin.de/~guckes/elm/
- ab HPI http://www.math.fu-berlin.de/~guckes/irc/
- ab HPi http://www.math.fu-berlin.de/~guckes/ispell/
- ab HPL http://www.math.fu-berlin.de/~guckes/lynx/
- ab HPl http://www.math.fu-berlin.de/~guckes/less/
- ab HPm http://www.math.fu-berlin.de/~guckes/mail/
- ab HPM http://www.math.fu-berlin.de/~guckes/mutt/
- ab HPN http://www.math.fu-berlin.de/~guckes/nn/
- ab HPP http://www.math.fu-berlin.de/~guckes/pine/
- ab HPp http://www.math.fu-berlin.de/~guckes/procmail/
- ab HPr http://babayaga.math.fu-berlin.de/~rxvt/
- ab HPR http://www.math.fu-berlin.de/~guckes/rfc/
- ab HPs http://www.math.fu-berlin.de/~guckes/screen/
- ab HPS http://www.math.fu-berlin.de/~guckes/slrn/
- ab HPv http://www.math.fu-berlin.de/~guckes/vi/
-" HPOV - the "original" URL of the Vim Home Page!
- ab HPOV http://www.math.fu-berlin.de/~guckes/vim/
- ab HPV http://www.vim.org/
- ab HPX http://www.math.fu-berlin.de/~guckes/xmas/
- ab HPZ http://www.math.fu-berlin.de/~guckes/zsh/
-"
-" Other important WWW addresses
-"
- ab URLutefuchs http://www.math.fu-berlin.de/~utefuchs/
- ab URLaltavista http://altavista.digital.com/
- ab URLftpsearch http://ftpsearch.ntnu.no/ftpsearch/
- ab URLvimfaq http://www.grafnetix.com/~laurent/vim/faq.html
- ab URLbambi http://www.math.fu-berlin.de/~leitner/CnH/bambi.html
- ab URLsecret http://www.math.fu-berlin.de/~leitner/CnH/secret.html
- ab URLwhome http://www.math.fu-berlin.de/~leitner/CnH/who.me.html
- ab URLstopspam http://www.math.fu-berlin.de/~guckes/pics/stop.this.spam.jpg
- ab FTPFUB ftp://ftp.fu-berlin.de/
- ab FTPVIM ftp://ftp.fu-berlin.de/pub/misc/editors/vim/
-"
-" ===================================================================
-" Abbreviations - Header Lines for Email and News
-" ===================================================================
-" Define regexpr for headers to use with mappings
-" as it makes reading the mappings much easier:
-" cab HADDR From\\|Cc\\|To
- cab HEMAIL ^\(From\\|Cc\\|To\\|Date\\|Subject\\|Message-ID\\|Message-Id\\|X-\)
- cab HNEWS ^\(From\\|Cc\\|To\\|Date\\|Subject\\|Message-ID\\|X-\\|Newsgroups\)
-"
-" ===================================================================
-" Abbreviations - General Editing - Inserting Dates and Times
-" ===================================================================
-"
-" First, some command to add date stamps (with and without time).
-" I use these manually after a substantial change to a webpage.
-" [These abbreviations are used with the mapping for ",L".]
-"
- iab Ydate <C-R>=strftime("%y%m%d")<CR>
-" Example: 971027
-"
- iab Ytime <C-R>=strftime("%H:%M")<CR>
-" Example: 14:28
-"
- iab YDT <C-R>=strftime("%y%m%d %T")<CR>
-" Example: 971027 12:00:00
-"
- iab YDATE <C-R>=strftime("%a %b %d %T %Z %Y")<CR>
-" Example: Tue Dec 16 12:07:00 CET 1997
-"
-" On Windows the functions "strftime" seems to have a different
-" format. Therefore the following may be necessary: [980730]
-" if !has("unix")
-" iab YDATE <C-R>=strftime("%c %a")<CR>
-" else
-" iab YDATE <C-R>=strftime("%D %T %a")<CR>
-" endif
-"
-" ===================================================================
-" MAPpings
-" ===================================================================
-" Caveat: Mapping must be "prefix free", ie no mapping must be the
-" prefix of any other mapping. Example: "map ,abc foo" and
-" "map ,abcd bar" will give you the error message "Ambigous mapping".
-"
-" The backslash ('\') is the only(?) unmapped key, so this is the best
-" key to start mappings with as this does not take away a command key.
-" However, the backslash is never in the same position with keyboards.
-" Eg on German keyboards it is AltGr-sz - don't ask.
-" Anyway, I have decided to start mappings with the comma as this
-" character is always on the same position on almost all keyboards
-" and I hardly have a need for that command.
-"
-" The following maps get rid of some basic problems:
-"
-" With Vim-4 the format command was just 'Q' and
-" I am too used to it. So I need this back!
- nnoremap Q gq
- vnoremap Q gq
-"
-" 980527 I often reformat a paragraph to fit some textwidth -
-" and I use the following mapping to adjust it to the
-" current position of the cursor:
- map #tw :set textwidth=<C-R>=col(".")<C-M>
-"
-" 981210 Whenever I paste some text into VIM I have to
-" toggle from "nopaste" to "paste" and back again:
-" map <f4> :set paste!<c-m>:set paste?<c-m>
- map <esc>[14~ :set paste!<c-m>:set paste?<c-m>
-"
-" "tal" is the "trailer alignment" filter program
-" Hopefully it will ship with Vim one day.
-" vmap #t !tal<CR>
-" vmap #t !tal -p 0<CR>
-"
-" Disable the command 'K' (keyword lookup) by mapping it
-" to an "empty command". (thanks, Lawrence! :-):
-" map K :<CR>
- map K :<BS>
-"
-" Disable the suspend for ^Z.
-" I use Vim under "screen" where a suspend would lose the
-" connection to the " terminal - which is what I want to avoid.
- map <C-Z> :shell
-"
-" Make CTRL-^ rebound to the *column* in the previous file
- noremap <C-^> <C-^>`"
-"
-" Make "gf" rebound to last cursor position (line *and* column)
- noremap gf gf`"
-"
-" When I let Vim write the current buffer I frequently mistype the
-" command ":w" as ":W" - so I have to remap it to correct this typo:
- nmap :W :w
-"
-" Are you used to the Unix commands "alias" and "which"?
-" I sometimes use these to look up my abbreviations and mappings.
-" So I need them available on the command line:
- map :alias map
- map :which map
-"
-" The command {number}CTRL-G show the current nuffer number, too.
-" This is yet another feature that vi does not have.
-" As I always want to see the buffer number I map it to CTRL-G.
-" Pleae note that here we need to prevent a loop in the mapping by
-" using the comamnd "noremap"!
- noremap <C-G> 2<C-G>
-"
-" 980311 Sourcing syntax files
-" My personal syntax files are in ~/.P/vim/syntax/
-" and I need a quick way to edit and source them.
- map ,SO :so ~/.P/vim/syntax/
-"
-" 980706 Sourcing syntax files from the distribution
-" A nice and fast way to both source syntax files
-" and to take a look at "what's there":
- map ,V :so $VIM/syntax/
-"
-" ===================================================================
-" Customizing the command line
-" ===================================================================
-" Valid names for keys are: <Up> <Down> <Left> <Right> <Home> <End>
-" <S-Left> <S-Right> <S-Up> <PageUp> <S-Down> <PageDown> <LeftMouse>
-"
-" Many shells allow editing in "Emacs Style".
-" Although I love Vi, I am quite used to this kind of editing now.
-" So here it is - command line editing commands in emacs style:
- cnoremap <C-A> <Home>
- cnoremap <C-F> <Right>
- cnoremap <C-B> <Left>
-" cnoremap <C-E> <End>
- cnoremap <ESC>b <S-Left>
- cnoremap <ESC>f <S-Right>
- cnoremap <ESC><C-H> <C-W>
-"
-" Additional codes for that "English" keyboard at the Xterminal
- cnoremap <ESC>[D <S-Left>
- cnoremap <ESC>[C <S-Right>
-"
-" Some editing is helpful in insert mode, too:
- inoremap <C-F> <Right>
- inoremap <C-B> <Left>
-"
-" Make the up and down movements move by "display/screen lines":
-" map j gj
-" map <Down> gj
-" map k gk
-" map <Up> gk
-"
-" ===================================================================
-" VIM - Editing and updating the vimrc:
-" As I often make changes to this file I use these commands
-" to start editing it and also update it:
- if has("unix")
- let vimrc='~/.vimrc'
- else
-" ie: if has("dos16") || has("dos32") || has("win32")
- let vimrc='$VIM\_vimrc'
- endif
- nn ,u :source <C-R>=vimrc<CR><CR>
- nn ,v :edit <C-R>=vimrc<CR><CR>
-" ,v = vimrc editing (edit this file)
-" map ,v :e ~/.vimrc<CR>
-" ,u = "update" by reading this file
-" map ,u :source ~/.vimrc<CR>
-" ===================================================================
-"
-" General Editing
-"
-" Define "del" char to be the same backspace (saves a LOT of trouble!)
-" As the angle notation cannot be use with the LeftHandSide
-" with mappings you must type this in *literally*!
- map <C-V>127 <C-H>
- cmap <C-V>127 <C-H>
-" the same for Linux Debian which uses
- imap <Esc>[3~ <C-H>
- imap \7f <C-H>
-"
-" ;rcm = remove "control-m"s - for those mails sent from DOS:
- cmap ;rcm %s/<C-M>//g
-"
-" Make whitespace visible:
-" Sws = show whitespace
- nmap ,Sws :%s/ /_/g<C-M>
- vmap ,Sws :%s/ /_/g<C-M>
-"
-" Sometimes you just want to *see* that trailing whitespace:
-" Stws = show trailing whitespace
- nmap ,Stws :%s/ *$/_/g<C-M>
- vmap ,Stws :%s/ *$/_/g<C-M>
-"
-" General Editing - Turning umlauts into ascii (for German keyboards)
-"
-" imap ä ae
-" imap ö oe
-" imap ü ue
-" imap ß ss
-"
-" Ä -> Ä :%s/\Ä/Ä/gc -> D
-" Ö -> Ö :%s/\Ö/Ö/gc -> V
-" Ü -> Ü :%s/\Ü/Ü/gc -> \
-" ä -> ä :%s/\ä/ä/gc -> d
-" ö -> ö :%s/\ö/ö/gc -> v
-" ü -> ü :%s/\ü/ü/gc -> |
-"
-" ===================================================================
-" Inserting Dates and Times / Updating Date+Time Stamps
-" ===================================================================
-" ,L = "Last updated" - replace old time stamp with a new one
-" preserving whitespace and using internal "strftime" command:
-" requires the abbreviation "YDATE"
- map ,L 1G/Last update:\s*/e+1<CR>CYDATE<ESC>
- map ,,L 1G/Last change:\s*/e+1<CR>CYDATE<ESC>
-" Example:
-" before: "Last update: Thu Apr 6 12:07:00 CET 1967"
-" after: "Last update: Tue Dec 16 12:07:00 CET 1997"
-"
-" ,L = "Last updated" - replace old time stamp with a new one
-" using external "date" command (not good for all systems):
-" map ,L 1G/Last update: */e+1<CR>D:r!date<CR>kJ
-"
-" ===================================================================
-" General Editing - link to program "screen"
-" ===================================================================
-"
-" ,Et = edit temporary file of "screen" program
- map ,Et :e /tmp/screen-exchange
-" as a user of Unix systems you *must* have this program!
-" see also: http://www.math.fu-berlin.de/~guckes/screen/
-"
-" Email/News - Editing replies/followups
-"
-" Part 1 - prepare for editing
-"
-" Part 2 - getting rid of empty (quoted) lines and space runs.
-"
-" ,cel = "clear empty lines"
-" - delete the *contents* of all lines which contain only whitespace.
-" note: this does not delete lines!
-" map ,cel :g/^[<C-I> ]*$/d
- map ,cel :%s/^\s\+$//
-" ,del = "delete 'empty' lines"
-" - delete all lines which contain only whitespace
-" note: this does *not* delete empty lines!
- map ,del :g/^\s\+$/d
-"
-" ,cqel = "clear quoted empty lines"
-" Clears (makes empty) all lines which start with '>'
-" and any amount of following spaces.
-" nmap ,cqel :%s/^[> ]*$//
-" vmap ,cqel :s/^[> ]*$//
-" nmap ,cqel :%s/^[><C-I> ]\+$//
-" vmap ,cqel :s/^[><C-I> ]\+$//
- nmap ,cqel :%s/^[>]\+$//
- vmap ,cqel :s/^[><C-I> ]\+$//
-" NOTE: If the meta sequence "\s"
-" The following do not work as "\s" is not a character
-" and thus cannot be part of a "character set".
-" map ,cqel :g/^[>\s]\+$/d
-"
-" Some people have strange habits within their writing.
-" But if you cannot educate them - rewrite their text! ;-)
-"
-" does uses ".." or "..." rather than the usual punctuation
-" (comma, semicolon, colon, full stop). So...
-"
-" Turning dot runs with following spaces into an end-of-sentence,
-" ie dot-space-space:
- vmap ,dot :s/\.\+ \+/. /g
-"
-" own text in replies with TAB or spaces.
-" Here's how to get rid of these indentation:
- vmap ,gary :s/^>[ <C-I>]\+\([^>]\)/> \1/
-"
-" ,ksr = "kill space runs"
-" substitutes runs of two or more space to a single space:
-" nmap ,ksr :%s/ */ /g
-" vmap ,ksr :s/ */ /g
- nmap ,ksr :%s/ \+/ /g
- vmap ,ksr :s/ \+/ /g
-" Why can't the removal of space runs be
-" an option of "text formatting"? *hrmpf*
-"
-" ,Sel = "squeeze empty lines"
-" Convert blocks of empty lines (not even whitespace included)
-" into *one* empty line (within current visual):
- map ,Sel :g/^$/,/./-j
-"
-" ,Sbl = "squeeze blank lines"
-" Convert all blocks of blank lines (containing whitespace only)
-" into *one* empty line (within current visual):
-" map ,Sbl :g/^\s*$/,/[^ <c-i>]/-j
-" map ,Sbl :g/^\s*$/,/[^ \t]/-j
- map ,Sbl :g/^\s*$/,/\S/-j
-"
-" ===================================================================
-" Editing of email replies and Usenet followups - using autocommands
-" ===================================================================
-"
-" Remove ALL auto-commands. This avoids having the
-" autocommands twice when the vimrc file is sourced again.
-" autocmd!
-"
-" Let Vim identify itself when editing emails with Mutt:
-" au! BufNewFile mutt* let @"="X-Editor: Vim-".version." http://www.vim.org\n"|exe 'norm 1G}""P'
-"
-" set the textwidth to 70 characters for replies (email&usenet)
-" au BufNewFile,BufRead .letter,mutt*,nn.*,snd.* set tw=78
-"
-" Try to use the mapping ",D" when doing a followup.
-" autocmd BufNewFile ~/.followup ,D|
-"
-" Part 3 - Change Quoting Level
-"
-" ,dp = de-quote current inner paragraph
-" map ,dp {jma}kmb:'a,'bs/^> //<CR>
- map ,dp vip:s/^> //<CR>
- vmap ,dp :s/^> //<CR>
-"
-" ,qp = quote current paragraph
-" jump to first inner line, mark with 'a';
-" jump to last inner line, mark with 'b';
-" then do the quoting as a substitution
-" on the line range "'a,'b":
-" map ,qp {jma}kmb:'a,'bs/^/> /<CR>
-" vim-5 now has selection of "inner" and "all"
-" of current text object - mapping commented!
-"
-" ,qp = quote current paragraph (old version)
-" jump to first inner line, Visual,
-" jump to last inner line,
-" then do the quoting as a substitution:
-" map ,qp {jV}k:s/^/> /<CR>
-"
-" ,qp = quote current inner paragraph (works since vim-5.0q)
-" select inner paragraph
-" then do the quoting as a substitution:
- map ,qp vip:s/^/> /<CR>
-"
-" ,qp = quote current paragraph
-" just do the quoting as a substitution:
- vmap ,qp :s/^/> /<CR>
+" =============== Pathogen Initialization ===============
+" This loads all the plugins in ~/.vim/bundle
+" Use tpope's pathogen plugin to manage all other plugins
-"
-" Changing quote style to *the* true quote prefix string "> ":
-"
-" Fix Supercite aka PowerQuote (Hi, Andi! :-):
-" before ,kpq: > Sven> text
-" after ,kpq: > > text
-" ,kpq kill power quote
- vmap ,kpq :s/^> *[a-zA-Z]*>/> >/<C-M>
-"
-" Fix various other quote characters:
-" ,fq "fix quoting"
- vmap ,fq :s/^> \([-":}\|][ <C-I>]\)/> > /
-"
-" Part 4 - Weed Headers of quoted mail/post
-"
-" These mappings make use of the abbreviation that define a list of
-" Email headers (HEMAIL) and News headers (HNEWS):
- nmap ,we vip:v/HEMAIL/d
- vmap ,we :v/HEMAIL/d
- nmap ,wp vip:v/HNEWS/d
- vmap ,wp :v/HNEWS/d
-"
-" Old versions for vim-4.6:
-" ,we = "weed email header"
-" nmap ,we !ipegrep "^(Date:\|From \|From:\|Subject:\|To:\|$)"
-" vmap ,we !egrep "^(Date:\|From \|From:\|Subject:\|To:\|$)"
-" ,wp = "weed post header"
-" nmap ,wp !ipegrep "^(Date:\|From:\|Subject:\|Newsgroups:\|Followup-To:\|Keywords:\|References:\|Message-ID\|$)"
-" vmap ,wp !egrep "^(Date:\|From:\|Subject:\|Newsgroups:\|Followup-To:\|Keywords:\|References:\|Message-ID\|$)"
-"
-" ,ri = "Read in" basic lines from the email header
-" Useful when replying to an email:
-" nmap ,ri :r!readmsg\|egrep "^From:\|^Subject:\|^Date:\|^To: \|^Cc:"
-" NOTE: "readmsg" ships with the mailer ELM.
-"
-"
-" Part 5 - Reformatting Text
-"
-" NOTE: The following mapping require formatoptions to include 'r'
-" and "comments" to include "n:>" (ie "nested" comments with '>').
-"
-" Formatting the current paragraph according to
-" the current 'textwidth' with ^J (control-j):
- imap <C-J> <c-o>gqap
- map <C-J> gqap
-"
-" ,b = break line in commented text (to be used on a space)
-" nmap ,b dwi<CR>> <ESC>
- nmap ,b r<CR>
-" ,j = join line in commented text
-" (can be used anywhere on the line)
-" nmap ,j Jxx
- nmap ,j Vjgq
-"
-" ,B = break line at current position *and* join the next line
-" nmap ,B i<CR>><ESC>Jxx
- nmap ,B r<CR>Vjgq
-"
-" ,,, break current line at current column,
-" inserting ellipsis and "filling space":
-" nmap ,,, ,,1,,2
-" nmap ,,1 a...X...<ESC>FXr<CR>lmaky$o<CC-R>"<ESC>
-" nmap ,,2 :s/./ /g<C-M>3X0"yy$dd`a"yP
-"
-"
-" ===================================================================
-" Edit your reply! (Or else!)
-" ===================================================================
-"
-" Part 6 - Inserting Special or Standard Text
-" Part 6a - The header
+ runtime bundle/tpope-vim-pathogen/autoload/pathogen.vim
+ call pathogen#infect()
+ call pathogen#helptags()
-" Add adresses for To: and Cc: lines
-"
-" ,ca = check alias (reads in expansion of alias name)
-" map ,ca :r!elmalias -f "\%v (\%n)"
-" ,Ca = check alias (reads in expansion of alias name)
-" map ,Ca :r!elmalias -f "\%n <\%v>"
-"
-" ,cc = "copy notice"
-" Insert a Cc line so that person will receive a "courtesy copy";
-" this tells the addressee that text is a copy of a public article.
-" This assumes that there is exactly one empty line after the first
-" paragraph and the first line of the second paragraph contains the
-" return address with a trailing colon (which is later removed).
- map ,cc 1G}jyykPICc: <ESC>$x
-" map ,cc ma1G}jy/ writes<CR>'aoCc: <ESC>$p
-"
-" ,mlu = make letter urgent (by giving the "Priority: urgent")
- map ,mlu 1G}OPriority: urgent<ESC>
-"
-" Fixing the From: line
-"
-" ,cS = change Sven's address.
- map ,cS 1G/^From: Sven Guckes/e+2<CR>C<Amailv><ESC>
-" Used when replying as the "guy from vim".
-"
-" Fixing the Subject line
-"
-" Pet peeve: Unmeaningful Subject lines. Change them!
-" ,cs = change Subject: line
- map ,cs 1G/^Subject: <CR>yypIX-Old-<ESC>-W
-" This command keeps the old Subject line in "X-Old-Subject:" -
-" so the recipient can still search for it and
-" you keep a copy for editing.
-"
-"
-" ,re : Condense multiple "Re:_" to just one "Re:":
- map ,re 1G/^Sub<CR>:s/\(Re: \)\+/Re: /<CR>
-"
-" ,Re : Change "Re: Re[n]" to "Re[n+1]" in Subject lines:
- map ,Re 1G/^Subject: <C-M>:s/Re: Re\[\([0-9]\+\)\]/Re[\1]/<C-M><C-A>
-"
-" Put parentheses around "visual text"
-" Used when commenting out an old subject.
-" Example:
-" Subject: help
-" Subject: vim - using autoindent (Re: help)
-"
-" ,) and ,( :
- vmap ,( v`<i(<ESC>`>a)<ESC>
- vmap ,) v`<i(<ESC>`>a)<ESC>
-"
-" Part 6 - Inserting Special or Standard Text
-" Part 6a - Start of text - saying "hello".
-"
-" ,hi = "Hi!" (indicates first reply)
- map ,hi 1G}oHi!<CR><ESC>
-"
-" ,ha = "helloagain" (indicates reply to reply)
- map ,ha 1G}oHello, again!<CR><ESC>
-"
-" ,H = "Hallo, Du!" (German equivalent of "hi!" for replies)
- map ,H G/Quoting /e+1<CR>ye1G}oHallo, !<ESC>Po<ESC>
-"
-"
-" Part 6 - Inserting Special or Standard Text
-" Part 6b - End of text - dealing with "signatures".
-"
-" remove signatures
-"
-" ,kqs = kill quoted sig (to remove those damn sigs for replies)
-" goto end-of-buffer, search-backwards for a quoted sigdashes
-" line, ie "^> -- $", and delete unto end-of-paragraph:
- map ,kqs G?^> -- $<CR>d}
-" map ,kqs G?^> *-- $<CR>dG
-" ,kqs = kill quoted sig unto start of own signature:
-" map ,kqs G?^> *-- $<CR>d/^-- $/<C-M>
-"
-" ,aq = "add quote"
-" Reads in a quote from my favourite quotations:
- nmap ,aq :r!agrep -d "^-- $" ~/.P/quotes/collection<ESC>b
-" see http://www.math.fu-berlin.de/~guckes/quotes/collection
-"
-" ,s = "sign" -
-" Read in signature file (requires manual completion):
- nmap ,s :r!agrep -d "^-- $" ~/.P/sig/SIGS<S-Left>
-"
-" available as http://www.math.fu-berlin.de/~guckes/sig/SIGS
-"
-" ,S = signature addition of frequently used signatures
- nmap ,SE :r!agrep -d "^-- $" comp.mail.elm ~/.P/sig/SIGS<S-Left>
- nmap ,SM :r!agrep -d "^-- $" WOOF ~/.P/sig/SIGS<S-Left>
- nmap ,SV :r!agrep -d "^-- $" IMproved ~/.P/sig/SIGS<S-Left>
-"
-" ,at = "add text" -
-" read in text file (requires manual completion):
- nmap ,at :r ~/.P/txt/
-"
-" MUTT: Auto-kill signatures for replies
-" map ,kqs G?^> *-- $<C-M>dG
-" autocmd BufNewFile,BufRead .followup,.letter,mutt*,nn.*,snd.* :normal ,kqs
-"
-" At the end of editing your reply you should check your spelling
-" with the spelling checker "ispell".
-" spellcheck the document -- skip quoted text
-" nmap <F5> :w ! grep -v '^>' \| spell<CR>
-" vmap <F5> :w ! grep -v '^>' \| spell<CR>
-" At home under Linux it looks something more like this:
-" nmap <F5> :w ! grep -v '^>' \| ispell -???<CR>
-"
-" Tell the recipient that I was replying to an old email of his:
- ab SvenR Sven [finally takeing the time to reply to old emails]
-"
-" Toggles: [todo]
-"
-" toggle autoindent
-" toggle hlsearch
-" cycle textwidth between values 60, 70, 75, 80
-"
-" ===================================================================
-" HTML - HTML - HTML - HTML - HTML - HTML - HTML - HTML
-" ===================================================================
-" This has become quite big - so I moved it out to another file:
-" http://www.math.fu-berlin.de/~guckes/vim/source/html.vim [980227]
-" source ~guckes/.P/vim/source/html.vim
-"
-" ===================================================================
-" LaTeX - LaTeX - LaTeX - LaTeX - LaTeX - LaTeX - LaTeX
-" ===================================================================
-" This has become quite big - so I moved it out to another file:
-" http://www.math.fu-berlin.de/~guckes/vim/source/latex.vim
-" source ~guckes/.P/vim/source/latex.vim
-"
-" ===================================================================
-" PGP - encryption and decryption
-" ===================================================================
-"
-" encrypt
- map ;e :%!/bin/sh -c 'pgp -feast 2>/dev/tty'
-" decrypt
- map ;d :/^-----BEG/,/^-----END/!/bin/sh -c 'pgp -f 2>/dev/tty'
-" sign
- map ;s :,$! /bin/sh -c 'pgp -fast +clear 2>/dev/tty'
- map ;v :,/^-----END/w !pgp -m
-"
-" PGP - original mappings
-"
-" encrypt and sign (useful for mailing to someone else)
-"csh: map #1 :,$! /bin/sh -c 'pgp -feast 2>/dev/tty^V|^V|sleep 4'
-" sh: map #1 :,$! pgp -feast 2>/dev/tty^V|^V|sleep 4
-"
-" sign (useful for mailing to someone else)
-"csh: map #2 :,$! /bin/sh -c 'pgp -fast +clear 2>/dev/tty'
-" sh: map #2 :,$! pgp -fast +clear 2>/dev/tty
-"
-" decrypt
-"csh: map #3 :/^-----BEG/,/^-----END/!\
-" /bin/sh -c 'pgp -f 2>/dev/tty^V|^V|sleep 4'
-" sh: map #3 :/^-----BEG/,/^-----END/!\
-" pgp -f 2>/dev/tty^V|^V|sleep 4
-"
-" view (pages output, like more)
-"csh: map #4 :,/^-----END/w !pgp -m
-" sh: map #4 :,/^-----END/w !pgp -m
-"
-" encrypt alone (useful for encrypting for oneself)
-"csh: map #5 :,$! /bin/sh -c 'pgp -feat 2>/dev/tty^V|^V|sleep 4'
-" sh: map #5 :,$! pgp -feat 2>/dev/tty^V|^V|sleep 4
-"
-" Elijah http://www.mathlab.sunysb.edu/~elijah/pgppub.html says :
-" The significant feature is that stderr is redirected independently
-" of stdout, and it is redirected to /dev/tty which is a synonym for
-" the current terminal on Unix. I don't know why the ||sleep 4
-" stuff is there, but it is harmless so I left it. Since csh is such
-" junk, special rules are used if you are using it (tcsh, too).
-" ksh and bash should use the sh form. zsh, et al: consult your
-" manual. The #<num> format is used to map function keys. If your
-" terminal does not support the requested function key, use a
-" literal #<num>. Not all of the clones correctly support this.
-"
-" ===================================================================
-" Useful stuff. At least these are nice examples. :-)
-" ===================================================================
-"
-" ,t = transpose two characters: from aXb -> bXa
-" map ,t XplxhhPl
-" This macros shortened by one character by
-" map ,t XpxphXp
-" map ,t xphXpxp
-"
-" make space move the cursor to the right - much better than a *beep*
-" nmap \ l
-"
-" ,E = execute line
-" map ,E 0/\$<CR>w"yy$:<C-R>y<C-A>r!<C-E>
-" This command excutes a shell command from the current line and
-" reads in its output into the buffer. It assumes that the command
-" starts with the fist word after the first '$' (the shell prompt
-" of /bin/sh). Try ",E" on that line, ie place the cursor on it
-" and then press ",E":
-" $ ls -la
-" Note: The command line commands have been remapped to tcsh style!!
-"
-"
-" ,dr = decode/encode rot13 text
- vmap ,dr :!tr A-Za-z N-ZA-Mn-za-m
+" ================ General Config ====================
-" Use this with an external "rot13" script:
-" " ,13 - rot13 the visual text
-" vmap ,13 :!rot13<CR>
-"
-" Give the URL under the cursor to Netscape
-" map ,net yA:!netscape -remote "openurl <C-R>""
-"
-"
-" ===================================================================
-" Mapping of special keys - arrow keys and function keys.
-" ===================================================================
-" Buffer commands (split,move,delete) -
-" this makes a little more easy to deal with buffers.
-" (works for Linux PCs in room 030)
- map <F4> :split<C-M>
- map <F5> :bp<C-M>
- map <F6> :bn<C-M>
- map <F12> :bd<C-M>
-"
-" Buffer commands (split,move,delete) -
-" for Mac keyboard (Performa 5200, US keyboard)
-"
- map <ESC>[19~ :split<C-M>
- map <ESC>[20~ :bp<C-M>
- map <ESC>[23~ :bn<C-M>
- map <ESC>[31~ :bd<C-M>
-"
-" Obvious mappings
-"
-" map <PageUp> <C-B>
-" map <PageDown> <C-F>
-"
-" Emacs style editing in insert mode
-" This is something I tried for a minute
-" and forgot about the minute after. ;-)
-"
-" imap <C-A> <ESC>0i
-" imap <C-B> <ESC>hi
-" imap <C-D> <ESC>xi
-" imap <C-E> <ESC>A
-" imap <C-F> <ESC>lli
-" imap <C-N> <ESC>jli
-" imap <C-P> <ESC>kli
-" imap <ESC>b <ESC>bi
-" imap <ESC>f <ESC>lWi
-"
-" Normal mode - tcsh style movements [960425]
-"
-" nmap <C-A> 0
-" nmap <C-B> h
-" nmap <C-D> x
-" nmap <C-E> $
-" nmap <C-F> l
-" nmap <ESC>b b
-" nmap <ESC>f w
-"
-" DOS keyboard mapping for cursor keys
-"
-" map <ESC>[A <Up>
-" map <ESC>[B <Down>
-" map <ESC>[C <Right>
-" map <ESC>[D <Left>
-" imap <ESC>[A <Up>
-" imap <ESC>[B <Down>
-" imap <ESC>[C <Right>
-" imap <ESC>[D <Left>
-"
-" DOS keyboard
-" "insert"
-" map <ESC>[1~ i
-" map <ESC>[1~ <insert>
-" "home"
-" map <ESC>[2~ ^
-" map <ESC>[2~ 0
-" map <ESC>[2~ <Home>
-" "pgup"
-" map <ESC>[3~ <C-B>
-" map <ESC>[3~ <PageUp>
-" "delete"
-" map <ESC>[4~ x
-" map <ESC>[4~ <Del>
-" "end"
-" map <ESC>[5~ $
-" map <ESC>[5~ <END>
-" "pgdn"
-" map <ESC>[6~ <C-F>
-" map <ESC>[6~ <PageDown>
-"
-" Keyboard mapping for cursor keys
-" [works for SUNs in Solarium (room 030) - 970815]
-"
- map <ESC>OA <Up>
- map <ESC>OB <Down>
- map <ESC>OC <Right>
- map <ESC>OD <Left>
- imap <ESC>OA <Up>
- imap <ESC>OB <Down>
- imap <ESC>OC <Right>
- imap <ESC>OD <Left>
-"
-" Keyboard mapping for cursor keys
-" [works for XTerminals - 970818]
- map <ESC>[A <Up>
- map <ESC>[B <Down>
- map <ESC>[C <Right>
- map <ESC>[D <Left>
- imap <ESC>[A <Up>
- imap <ESC>[B <Down>
- imap <ESC>[C <Right>
- imap <ESC>[D <Left>
-"
-" ===================================================================
-" AutoCommands
-" ===================================================================
-"
-" Autocommands are the key to "syntax coloring".
-" There's one command in your vimrc that should
-" load/source the file $VIM/syntax/syntax.vim
-" which contains the definition for colors and
-" the autocommands that load other syntax files
-" when necessary, ie when the filename matches
-" a given pattern, eg "*.c" or *".html".
-"
-" just load the main syntax file when Vim was compiled with "+syntax"
- if has("syntax")
- " define my own syntax file (to be sourced t the end of syntax.vim):
- " let mysyntaxfile="~guckes/.P/vim/syntax/syntax.vim"
- " URL: http://www.math.fu-berlin.de/~guckes/vim/syntax/syntax.vim
- " The main/standard syntax file:
- so $VIMRUNTIME/syntax/syntax.vim
- "
- " Use my own syntax file on "mail/news messages":
- let aucommand = "au BufNewFile,BufRead ".MAILNEWSFILES
-" exe aucommand." source ~guckes/.P/vim/syntax/sven.vim"
- "
- hi! Comment term=bold ctermfg=cyan guifg=Blue
- endif
-"
-"
-" EXAMPLE: Restricting mappings to some files only:
-" An autocommand does the macthign on the filenames -
-" but abbreviations are not expanded within autocommands.
-" Workaround: Use "exe" for expansion:
-" let aucommand = "au BufNewFile,BufRead ".MAILNEWSFILES
-" exe aucommand." :map ,hi 1G}oHi!<CR><ESC>"
-" exe aucommand." :map ,ha 1G}oHello, again!<CR><ESC>"
-" exe aucommand." :map ,H G/Quoting /e+1<CR>ye1G}oHallo, !<ESC>Po<ESC>"
-" exe aucommand." :map ,re 1G}oRe!<CR><ESC>"
-"
-" Automatically place the cursor onto the first line of the mail body:
-" autocmd BufNewFile,BufRead MAILNEWSFILES :normal 1G}j
-"
-" Toggle syntax coloring on/off with "__":
-" nn __ mg:if has("syntax_items")<Bar>syn clear<CR>else<Bar>syn on<CR>en<CR>`g
-" Note: It works - but the screen flashes are quite annoying. :-/
-"
-"
-" ===================================================================
-" EXAMPLES
-" ===================================================================
-"
-" Visualizing trailing whitespace:
-" :set hls
-" /\s\+$
-"
-" Toggling a numerical variable between two values.
-" Example: Switch the textwidth (tw) between values "70" and "80":
-" map \1 :let &tw = 150 - &tw<CR>
-"
-" Capitalizing the previously typed word,
-" returning to the previous position:
-" imap CAP <ESC>mzB~`za
-"
-" Uppercasing the previously typed word,
-" returning to the previous position:
-" imap CAP <ESC>mzvBU`za
-" imap CAP <ESC>mzBvaWU`za
-"
-" ===================================================================
-" TEMPORARY STUFF - TESTING THINGS
-" ===================================================================
-"
-" View a html document (or part of it) with lynx. You need
-" a system that supports the /def/fd/* file descriptors :-(
-"nmap ,ly :w !lynx -force_html /dev/fd/0<CR>
-"vmap ,ly :w !lynx -force_html /dev/fd/0<CR>
-"
-" Fri Jun 19 19:19:19 CEST 1998
-" The <Left> key produces the code "<Esc>OD" and Vikas wants to make
-" Vim jump back one word in normal mode, ie using the command 'b':
-" nmap <Esc>OD b
-" Works for me! :-)
-"
-" Some simple example of the "expand modifiers":
-" insert the current filename *with* path:
- iab YPATHFILE <C-R>=expand("%:p")<cr>
-" insert the current filename *without* path:
- iab YFILE <C-R>=expand("%:t:r")<cr>
-" insert the path of current file:
- iab YPATH <C-R>=expand("%:h")<cr>
-"
-" #b = "browse" - send selected URL to Netscape
- vmap #b y:!netscape -remote "openurl <C-R>""
-"
-" Toggle highlight search and report the current value:
-" map #1 :set hls!<cr>
-" map #2 :echo "HLSearch: " . strpart("OffOn",3*&hlsearch,3)<cr>
-" map ## #1#2
-"
-" Sorting current line containing a list of numbers
-" map ## :s/ /<C-M>/g<CR>vip!sort -n
-"
-" Replying to the mutt mailing list:
-" Remove header lines Cc: and Bcc: and insert [mutt] at the beginning
-" map ,MM 1G/^Cc:<CR>2dd}o[mutt]<CR>
-"
-" map ,U %s#<URL:\(.*\)>#<a href="\1"></a>#gc
-" map ,F {jma}kmb:'a,'b!sed -e "s/^>//"<C-V><C-V>|\
-" sed -f ~/.P/elm/scripts/weedout.sed
-" map ,mb ebi<CR><b><ESC>Ea</b><CR><ESC>dw
-"
-" stripping netscape bookmarks and making them list items
-" vmap ,ns :.,$s/^ *<DT><\(A.*"\) ADD.*">\(.*\)$/<li> <\1><C-M><C-I>\2/
-"
-" Jump to the last space before the 80th column.
-" map ,\| 80\|F
-"
-" extracting variable names from mutt's init.c
-" :%s/^.*"\([a-z0-9_]*\)".*$/\1/
-"
-" \<> = change to <> notation by substituting ^M and ^[
-" cab \<> s/<C-V><ESC>/<ESC>/gc<C-M>:s/<C-V><C-M>/<C-M>/gc<C-M>
-"
-" Changing the From_ line in pseudo mail folders to an appropriate
-" value - so you can read them with a mailer.
-" %s/^From /From guckes Thu Apr 6 12:07:00 1967/
-"
-" ===================================================================
-" ASCII tables - you may need them some day. Save them to a file!
-" ===================================================================
-"
-" ASCII Table - | octal value - name/char |
-"
-" |000 nul|001 soh|002 stx|003 etx|004 eot|005 enq|006 ack|007 bel|
-" |010 bs |011 ht |012 nl |013 vt |014 np |015 cr |016 so |017 si |
-" |020 dle|021 dc1|022 dc2|023 dc3|024 dc4|025 nak|026 syn|027 etb|
-" |030 can|031 em |032 sub|033 esc|034 fs |035 gs |036 rs |037 us |
-" |040 sp |041 ! |042 " |043 # |044 $ |045 % |046 & |047 ' |
-" |050 ( |051 ) |052 * |053 + |054 , |055 - |056 . |057 / |
-" |060 0 |061 1 |062 2 |063 3 |064 4 |065 5 |066 6 |067 7 |
-" |070 8 |071 9 |072 : |073 ; |074 < |075 = |076 > |077 ? |
-" |100 @ |101 A |102 B |103 C |104 D |105 E |106 F |107 G |
-" |110 H |111 I |112 J |113 K |114 L |115 M |116 N |117 O |
-" |120 P |121 Q |122 R |123 S |124 T |125 U |126 V |127 W |
-" |130 X |131 Y |132 Z |133 [ |134 \ |135 ] |136 ^ |137 _ |
-" |140 ` |141 a |142 b |143 c |144 d |145 e |146 f |147 g |
-" |150 h |151 i |152 j |153 k |154 l |155 m |156 n |157 o |
-" |160 p |161 q |162 r |163 s |164 t |165 u |166 v |167 w |
-" |170 x |171 y |172 z |173 { |174 | |175 } |176 ~ |177 del|
-"
-" ===================================================================
-" ASCII Table - | decimal value - name/char |
-"
-" |000 nul|001 soh|002 stx|003 etx|004 eot|005 enq|006 ack|007 bel|
-" |008 bs |009 ht |010 nl |011 vt |012 np |013 cr |014 so |015 si |
-" |016 dle|017 dc1|018 dc2|019 dc3|020 dc4|021 nak|022 syn|023 etb|
-" |024 can|025 em |026 sub|027 esc|028 fs |029 gs |030 rs |031 us |
-" |032 sp |033 ! |034 " |035 # |036 $ |037 % |038 & |039 ' |
-" |040 ( |041 ) |042 * |043 + |044 , |045 - |046 . |047 / |
-" |048 0 |049 1 |050 2 |051 3 |052 4 |053 5 |054 6 |055 7 |
-" |056 8 |057 9 |058 : |059 ; |060 < |061 = |062 > |063 ? |
-" |064 @ |065 A |066 B |067 C |068 D |069 E |070 F |071 G |
-" |072 H |073 I |074 J |075 K |076 L |077 M |078 N |079 O |
-" |080 P |081 Q |082 R |083 S |084 T |085 U |086 V |087 W |
-" |088 X |089 Y |090 Z |091 [ |092 \ |093 ] |094 ^ |095 _ |
-" |096 ` |097 a |098 b |099 c |100 d |101 e |102 f |103 g |
-" |104 h |105 i |106 j |107 k |108 l |109 m |110 n |111 o |
-" |112 p |113 q |114 r |115 s |116 t |117 u |118 v |119 w |
-" |120 x |121 y |122 z |123 { |124 | |125 } |126 ~ |127 del|
-"
-" ===================================================================
-" ASCII Table - | hex value - name/char |
-"
-" | 00 nul| 01 soh| 02 stx| 03 etx| 04 eot| 05 enq| 06 ack| 07 bel|
-" | 08 bs | 09 ht | 0a nl | 0b vt | 0c np | 0d cr | 0e so | 0f si |
-" | 10 dle| 11 dc1| 12 dc2| 13 dc3| 14 dc4| 15 nak| 16 syn| 17 etb|
-" | 18 can| 19 em | 1a sub| 1b esc| 1c fs | 1d gs | 1e rs | 1f us |
-" | 20 sp | 21 ! | 22 " | 23 # | 24 $ | 25 % | 26 & | 27 ' |
-" | 28 ( | 29 ) | 2a * | 2b + | 2c , | 2d - | 2e . | 2f / |
-" | 30 0 | 31 1 | 32 2 | 33 3 | 34 4 | 35 5 | 36 6 | 37 7 |
-" | 38 8 | 39 9 | 3a : | 3b ; | 3c < | 3d = | 3e > | 3f ? |
-" | 40 @ | 41 A | 42 B | 43 C | 44 D | 45 E | 46 F | 47 G |
-" | 48 H | 49 I | 4a J | 4b K | 4c L | 4d M | 4e N | 4f O |
-" | 50 P | 51 Q | 52 R | 53 S | 54 T | 55 U | 56 V | 57 W |
-" | 58 X | 59 Y | 5a Z | 5b [ | 5c \ | 5d ] | 5e ^ | 5f _ |
-" | 60 ` | 61 a | 62 b | 63 c | 64 d | 65 e | 66 f | 67 g |
-" | 68 h | 69 i | 6a j | 6b k | 6c l | 6d m | 6e n | 6f o |
-" | 70 p | 71 q | 72 r | 73 s | 74 t | 75 u | 76 v | 77 w |
-" | 78 x | 79 y | 7a z | 7b { | 7c | | 7d } | 7e ~ | 7f del|
-" ===================================================================
-"
-" ===================================================================
-" If your read this...
-" ===================================================================
-" I have received some emails so far - thanks, folks!
-" Enjoy Vim! :-)
-" ===================================================================
-" Yet another example for an autocommand: [980616]
-" ===================================================================
-" Last but not least...
-" =====================================================
-" The last line is allowed to be a "modeline" with my setup.
-" It gives vim commands for setting variable values that are
-" specific for editing this file. Used mostly for setting
-" the textwidth (tw) and the "shiftwidth" (sw).
-" Note that the colon within the value of "comments" needs to
-" be escaped with a backslash! (Thanks, Thomas!)
-" vim:tw=70 et sw=4 comments=\:\"
+set number "Line numbers are good
+set backspace=indent,eol,start "Allow backspace in insert mode
+set history=1000 "Store lots of :cmdline history
+set showcmd "Show incomplete cmds down the bottom
+set showmode "Show current mode down the bottom
+set gcr=a:blinkon0 "Disable cursor blink
+set visualbell "No sounds
+set autoread "Reload files changed outside vim
-hi Normal guibg=#000000 guifg=#FFFFFF
-set sw=2 ts=2 tw=0 wm=0 nowrap cindent
-set shellpipe=2>
-set comments=sr:/**,m:*\ ,e:*/,://,b:#,:%,:XCOMM,n:>,n:\:,fb:-
+" This makes vim act like all other editors, buffers can
+" exist in the background without being in a window.
+" http://items.sjbach.com/319/configuring-vim-right
+" set hidden
-augroup Perl
- autocmd!
- autocmd BufEnter *.pl set sw=2 ts=2 tw=0 wm=0 nowrap si
-augroup END
+"turn on syntax highlighting
+syntax on
-augroup Email
- autocmd!
- autocmd BufEnter /var/tmp/pico.* set tw=70
-augroup END
+" ================ Search Settings =================
-set expandtab
-set tabstop=4
+set incsearch "Find the next match as we type the search
+set hlsearch "Hilight searches by default
+set viminfo='100,f1 "Save up to 100 marks, enable capital marks
+
+" ================ Turn Off Swap Files ==============
+
+set noswapfile
+set nobackup
+set nowb
+
+" ================ Persistent Undo ==================
+" Keep undo history across sessions, by storing in file.
+" Only works all the time.
+
+silent !mkdir ~/.vim/backups > /dev/null 2>&1
+set undodir=~/.vim/backups
+set undofile
+
+" ================ Indentation ======================
+
+set autoindent
+set smartindent
+set smarttab
set shiftwidth=4
+set tabstop=4
+set expandtab
+
+filetype plugin on
+filetype indent on
+
+" Display tabs and trailing spaces visually
+set list listchars=tab:\ \ ,trail:·
+
+set nowrap "Don't wrap lines
+set linebreak "Wrap lines at convenient points
+
+" ================ Folds ============================
+
+set foldmethod=indent "fold based on indent
+set foldnestmax=3 "deepest fold is 3 levels
+set nofoldenable "dont fold by default
+
+" ================ Completion =======================
+
+set wildmode=list:longest
+set wildmenu "enable ctrl-n and ctrl-p to scroll thru matches
+set wildignore=*.o,*.obj,*~ "stuff to ignore when tab completing
+set wildignore+=*vim/backups*
+set wildignore+=*sass-cache*
+set wildignore+=*DS_Store*
+set wildignore+=vendor/rails/**
+set wildignore+=vendor/cache/**
+set wildignore+=*.gem
+set wildignore+=log/**
+set wildignore+=tmp/**
+set wildignore+=*.png,*.jpg,*.gif
+
+"
+
+" ================ Scrolling ========================
+
+set scrolloff=8 "Start scrolling when we're 8 lines away from margins
+set sidescrolloff=15
+set sidescroll=1
+
+" ================ Customization ========================
+set background=dark
+set modeline
+set modelines=1
+set ruler
+set laststatus=2