X-Git-Url: http://id.pley.net/dotfiles.git/blobdiff_plain/7db6359521ae4d3e6435fe23e097c23926a9ef5f..8c7646827c99e47629fbc50d247e2420632fbf17:/vimrc?ds=sidebyside diff --git a/vimrc b/vimrc index d27a4df..dbc5942 100644 --- a/vimrc +++ b/vimrc @@ -1,1573 +1,111 @@ -version 5.3 -" ================================================================== -" File: $HOME/.vimrc -" Availability: This file is available as -" ~20K -" ~56K -" (mirror) -" Size: This file is about 57K in size and has 1,500+ lines. -" Purpose: Setup file for the editor Vim (Vi IMproved) -" Author: Sven Guckes guckes@vim.org (guckes@math.fu-berlin.de) -" -" 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: -" for control-m -" for control-v which quotes the following character -" 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=[4%dm " escape sequence for background - set t_Sf=[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 "" but I prefer the tab key: - set wildchar= -" -" 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 . +" 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[...] -" -" 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: - ab Agnksa js@xs4all.nl (Jeroen Scheerder) -" -" Author of Mutt: - ab Amutt me@cs.hmc.edu (Michael Elkins) -" -" Author of Slrn: - ab Aslrn davis@space.mit.edu (John E. Davis) -" -" Author of Vim: -" ab Avim mool@oce.nl (Bram Moolenaar) - ab Avim bram@vim.org (Bram Moolenaar) -" -" Former Maintainer of the Vim FAQ: - ab Avimfaq laurent@Grafnetix.COM (Laurent Duperval) -" -" Mailing Lists (MLs) -" -" The Vim mailing lists: See http://www.vim.org/mail.html for more info! - ab MLvim vim@vim.org (VIM Help List) - ab MLvimdev vim-dev@vim.org (VIM Development List) - ab MLvimmac guckes-vimmac@math.fu-berlin.de (VIM on MacOS Development List) -" -" More mailing lists: - ab MLgnksa gnksa-workers@babayaga.math.fu-berlin.de (GNKSA Workers List) - ab MLmuttdev mutt-dev@mutt.org (Mutt Developer List) - ab MLmuttuser mutt-users@mutt.org (Mutt Users List) - ab MLzsh zsh-users@math.gatech.edu (ZShell Users List) -" -" -" 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 Ypager To: ums@teco.eduSubject: PAGE:01777777796 - iab Yphone TEL/FAX (+49 30) 8838884Cellphone (+49 177) 7777796 - iab Ysnail Sven GuckesPariser Str. 52D-10719 Berlin -" -" My addresses (Email and WWW) -" makes it easy to type them without typos ;-) - ab Amaili guckes@inf.fu-berlin.de - ab Amailm guckes@math.fu-berlin.de - ab Amailv guckes@vim.org - ab Amailz guckes@zedat.fu-berlin.de - ab MYADDR guckes@math.fu-berlin.de - ab MYNAME Sven Guckes -" -" Setting the reply address when replying as the guy from SKB: - ab ASKB Sprachboerse -" 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 =strftime("%y%m%d") -" Example: 971027 -" - iab Ytime =strftime("%H:%M") -" Example: 14:28 -" - iab YDT =strftime("%y%m%d %T") -" Example: 971027 12:00:00 -" - iab YDATE =strftime("%a %b %d %T %Z %Y") -" 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 =strftime("%c %a") -" else -" iab YDATE =strftime("%D %T %a") -" 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==col(".") -" -" 981210 Whenever I paste some text into VIM I have to -" toggle from "nopaste" to "paste" and back again: -" map :set paste!:set paste? - map [14~ :set paste!:set paste? -" -" "tal" is the "trailer alignment" filter program -" Hopefully it will ship with Vim one day. -" vmap #t !tal -" vmap #t !tal -p 0 -" -" Disable the command 'K' (keyword lookup) by mapping it -" to an "empty command". (thanks, Lawrence! :-): -" map K : - map K : -" -" 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 :shell -" -" Make CTRL-^ rebound to the *column* in the previous file - noremap `" -" -" 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 2 -" -" 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: -" -" -" 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 - cnoremap - cnoremap -" cnoremap - cnoremap b - cnoremap f - cnoremap -" -" Additional codes for that "English" keyboard at the Xterminal - cnoremap [D - cnoremap [C -" -" Some editing is helpful in insert mode, too: - inoremap - inoremap -" -" Make the up and down movements move by "display/screen lines": -" map j gj -" map gj -" map k gk -" map 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 =vimrc - nn ,v :edit =vimrc -" ,v = vimrc editing (edit this file) -" map ,v :e ~/.vimrc -" ,u = "update" by reading this file -" map ,u :source ~/.vimrc -" =================================================================== -" -" 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 127 - cmap 127 -" the same for Linux Debian which uses - imap [3~ - imap  -" -" ;rcm = remove "control-m"s - for those mails sent from DOS: - cmap ;rcm %s///g -" -" Make whitespace visible: -" Sws = show whitespace - nmap ,Sws :%s/ /_/g - vmap ,Sws :%s/ /_/g -" -" Sometimes you just want to *see* that trailing whitespace: -" Stws = show trailing whitespace - nmap ,Stws :%s/ *$/_/g - vmap ,Stws :%s/ *$/_/g -" -" 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+1CYDATE - map ,,L 1G/Last change:\s*/e+1CYDATE -" 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+1D:r!datekJ -" -" =================================================================== -" 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/^[ ]*$/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/^[> ]\+$// -" vmap ,cqel :s/^[> ]\+$// - nmap ,cqel :%s/^[>]\+$// - vmap ,cqel :s/^[> ]\+$// -" 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! ;-) -" -" Jason "triple-dots" King elephant@onaustralia.com.au -" 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 -" -" Gary Kline (kline@tera.tera.com) indents his -" own text in replies with TAB or spaces. -" Here's how to get rid of these indentation: - vmap ,gary :s/^>[ ]\+\([^>]\)/> \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*$/,/[^ ]/-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/^> // - map ,dp vip:s/^> // - vmap ,dp :s/^> // -" -" ,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/^/> / -" 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/^/> / -" -" ,qp = quote current inner paragraph (works since vim-5.0q) -" select inner paragraph -" then do the quoting as a substitution: - map ,qp vip:s/^/> / -" -" ,qp = quote current paragraph -" just do the quoting as a substitution: - vmap ,qp :s/^/> / +" =============== 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]*>/> >/ -" -" Fix various other quote characters: -" ,fq "fix quoting" - vmap ,fq :s/^> \([-":}\|][ ]\)/> > / -" -" 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 gqap - map gqap -" -" ,b = break line in commented text (to be used on a space) -" nmap ,b dwi> - nmap ,b r -" ,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>Jxx - nmap ,B rVjgq -" -" ,,, break current line at current column, -" inserting ellipsis and "filling space": -" nmap ,,, ,,1,,2 -" nmap ,,1 a...X...FXrlmaky$o" -" nmap ,,2 :s/./ /g3X0"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: $x -" map ,cc ma1G}jy/ writes'aoCc: $p -" -" ,mlu = make letter urgent (by giving the "Priority: urgent") - map ,mlu 1G}OPriority: urgent -" -" Fixing the From: line -" -" ,cS = change Sven's address. - map ,cS 1G/^From: Sven Guckes/e+2C -" 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: yypIX-Old--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:s/\(Re: \)\+/Re: / -" -" ,Re : Change "Re: Re[n]" to "Re[n+1]" in Subject lines: - map ,Re 1G/^Subject: :s/Re: Re\[\([0-9]\+\)\]/Re[\1]/ -" -" Put parentheses around "visual text" -" Used when commenting out an old subject. -" Example: -" Subject: help -" Subject: vim - using autoindent (Re: help) -" -" ,) and ,( : - vmap ,( v``>a) - vmap ,) v``>a) -" -" Part 6 - Inserting Special or Standard Text -" Part 6a - Start of text - saying "hello". -" -" ,hi = "Hi!" (indicates first reply) - map ,hi 1G}oHi! -" -" ,ha = "helloagain" (indicates reply to reply) - map ,ha 1G}oHello, again! -" -" ,H = "Hallo, Du!" (German equivalent of "hi!" for replies) - map ,H G/Quoting /e+1ye1G}oHallo, !Po -" -" -" 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?^> -- $d} -" map ,kqs G?^> *-- $dG -" ,kqs = kill quoted sig unto start of own signature: -" map ,kqs G?^> *-- $d/^-- $/ -" -" ,aq = "add quote" -" Reads in a quote from my favourite quotations: - nmap ,aq :r!agrep -d "^-- $" ~/.P/quotes/collectionb -" 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 -" -" 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 - nmap ,SM :r!agrep -d "^-- $" WOOF ~/.P/sig/SIGS - nmap ,SV :r!agrep -d "^-- $" IMproved ~/.P/sig/SIGS -" -" ,at = "add text" - -" read in text file (requires manual completion): - nmap ,at :r ~/.P/txt/ -" -" MUTT: Auto-kill signatures for replies -" map ,kqs G?^> *-- $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". -" These mappings are from Lawrence Clapp lclapp@iname.com: -" spellcheck the document -- skip quoted text -" nmap :w ! grep -v '^>' \| spell -" vmap :w ! grep -v '^>' \| spell -" At home under Linux it looks something more like this: -" nmap :w ! grep -v '^>' \| ispell -??? -" -" 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 # format is used to map function keys. If your -" terminal does not support the requested function key, use a -" literal #. 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 -" Preben Guldberg c928400@student.dtu.dk -" 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/\$w"yy$:yr! -" 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 -" -" Give the URL under the cursor to Netscape -" map ,net yA:!netscape -remote "openurl "" -" -" -" =================================================================== -" 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 :split - map :bp - map :bn - map :bd -" -" Buffer commands (split,move,delete) - -" for Mac keyboard (Performa 5200, US keyboard) -" - map [19~ :split - map [20~ :bp - map [23~ :bn - map [31~ :bd -" -" Obvious mappings -" -" map -" map -" -" Emacs style editing in insert mode -" This is something I tried for a minute -" and forgot about the minute after. ;-) -" -" imap 0i -" imap hi -" imap xi -" imap A -" imap lli -" imap jli -" imap kli -" imap b bi -" imap f lWi -" -" Normal mode - tcsh style movements [960425] -" -" nmap 0 -" nmap h -" nmap x -" nmap $ -" nmap l -" nmap b b -" nmap f w -" -" DOS keyboard mapping for cursor keys -" -" map [A -" map [B -" map [C -" map [D -" imap [A -" imap [B -" imap [C -" imap [D -" -" DOS keyboard -" "insert" -" map [1~ i -" map [1~ -" "home" -" map [2~ ^ -" map [2~ 0 -" map [2~ -" "pgup" -" map [3~ -" map [3~ -" "delete" -" map [4~ x -" map [4~ -" "end" -" map [5~ $ -" map [5~ -" "pgdn" -" map [6~ -" map [6~ -" -" Keyboard mapping for cursor keys -" [works for SUNs in Solarium (room 030) - 970815] -" - map OA - map OB - map OC - map OD - imap OA - imap OB - imap OC - imap OD -" -" Keyboard mapping for cursor keys -" [works for XTerminals - 970818] - map [A - map [B - map [C - map [D - imap [A - imap [B - imap [C - imap [D -" -" =================================================================== -" 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!" -" exe aucommand." :map ,ha 1G}oHello, again!" -" exe aucommand." :map ,H G/Quoting /e+1ye1G}oHallo, !Po" -" exe aucommand." :map ,re 1G}oRe!" -" -" 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")syn clearelsesyn onen`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 -" -" Capitalizing the previously typed word, -" returning to the previous position: -" imap CAP mzB~`za -" -" Uppercasing the previously typed word, -" returning to the previous position: -" imap CAP mzvBU`za -" imap CAP 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 -"vmap ,ly :w !lynx -force_html /dev/fd/0 -" -" Fri Jun 19 19:19:19 CEST 1998 -" Hi, Vikas! vikasa@att.com -" The key produces the code "OD" and Vikas wants to make -" Vim jump back one word in normal mode, ie using the command 'b': -" nmap OD b -" Works for me! :-) -" -" Some simple example of the "expand modifiers": -" insert the current filename *with* path: - iab YPATHFILE =expand("%:p") -" insert the current filename *without* path: - iab YFILE =expand("%:t:r") -" insert the path of current file: - iab YPATH =expand("%:h") -" -" #b = "browse" - send selected URL to Netscape - vmap #b y:!netscape -remote "openurl "" -" -" Toggle highlight search and report the current value: -" map #1 :set hls! -" map #2 :echo "HLSearch: " . strpart("OffOn",3*&hlsearch,3) -" map ## #1#2 -" -" Sorting current line containing a list of numbers -" map ## :s/ //gvip!sort -n -" -" Replying to the mutt mailing list: -" Remove header lines Cc: and Bcc: and insert [mutt] at the beginning -" map ,MM 1G/^Cc:2dd}o[mutt] -" -" map ,U %s###gc -" map ,F {jma}kmb:'a,'b!sed -e "s/^>//"|\ -" sed -f ~/.P/elm/scripts/weedout.sed -" map ,mb ebiEadw -" -" stripping netscape bookmarks and making them list items -" vmap ,ns :.,$s/^ *
<\(A.*"\) ADD.*">\(.*\)$/
  • <\1>\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///gc:s///gc -" -" 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... -" =================================================================== -" ... then please send me an email! Thanks! --Sven guckes@vim.org -" I have received some emails so far - thanks, folks! -" Enjoy Vim! :-) -" =================================================================== -" Yet another example for an autocommand: [980616] -" au VimLeave * echo "Thanks for using Vim"version". --Sven Guckes@vim.org!" -" =================================================================== -" 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 softtabstop=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