" 2006.11.11 jhs commented out whole file " " version 5.2 from ernst from web guckes page " " ================================================================== " " File: $HOME/.vimrc " " Availability: This file is available as " " " " " " (mirror) " " Purpose: Setup file for the editor Vim (Vi IMproved) " " Author: Sven Guckes guckes@_ERASE_.vim.org (guckes@_ERASE_.math.fu-berlin.de) " " " " Size: This file is about 56K in size and has 1,500+ lines. " " 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: Fri Aug 28 18:30:00 CEST 1998 " " =================================================================== " " Latest versions of Vim according to my Vim signature: " " -- " " Sven Guckes guckes@_ERASE_.vim.org | Vim = Vi IMproved | versions " " FAQ http://www.vim.org/faq/ | for users: VIM-5.2 [980824] " " Users http://www.vim.org/user.html | developers: developing... " " Wishes http://www.vim.org/wish.html | Additions&Corrections welcome! " " =================================================================== " " Note to Windows users: Get these files from any Vim mirror: " " vim52rt.zip (840K) " " gvimw32.zip (440K) " " 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 " " " 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 " " " 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@_ERASE_.xs4all.nl (Jeroen Scheerder) " " " " Author of Mutt: " ab Amutt me@_ERASE_.cs.hmc.edu (Michael Elkins) " " " " Author of Slrn: " ab Aslrn davis@_ERASE_.space.mit.edu (John E. Davis) " " " " Author of Vim: " " ab Avim mool@_ERASE_.oce.nl (Bram Moolenaar) " ab Avim bram@_ERASE_.vim.org (Bram Moolenaar) " " " " Former Maintainer of the Vim FAQ: " ab Avimfaq laurent@_ERASE_.Grafnetix.COM (Laurent Duperval) " " " " Mailing Lists (MLs) " " " " The Vim mailing lists: See http://www.vim.org/mail.html for more info! " ab MLvim vim@_ERASE_.vim.org (VIM Help List) " ab MLvimdev vim-dev@_ERASE_.vim.org (VIM Development List) " ab MLvimmac guckes-vimmac@_ERASE_.math.fu-berlin.de (VIM on MacOS Development List) " " " " More mailing lists: " ab MLgnksa gnksa-workers@_ERASE_.babayaga.math.fu-berlin.de (GNKSA Workers List) " ab MLmuttdev mutt-dev@_ERASE_.mutt.org (Mutt Developer List) " ab MLmuttuser mutt-users@_ERASE_.mutt.org (Mutt USers List) " ab MLzsh zsh-users@_ERASE_.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@_ERASE_.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) " " " ab Amaili guckes@_ERASE_.inf.fu-berlin.de " ab Amailm guckes@_ERASE_.math.fu-berlin.de " ab Amailv guckes@_ERASE_.vim.org " ab Amailz guckes@_ERASE_.zedat.fu-berlin.de " ab MYADDR guckes@_ERASE_.math.fu-berlin.de " " " " 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 - "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(".") " " " " "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 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 " " " " ;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 contents of all lines which contain only whitespace. " " 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/^[> ]\+$// " " The following do not work as "\s" is not a character " " and thus cannot be part of a "character set". " " nmap ,cqel :%s/^[>\s]\+$// " " vmap ,cqel :s/^[>\s]\+$// " " " " Some people have strange habits within their writing. " " But if you cannot educate them - rewrite their text! ;-) " " " " Jason "triple-dots" King elephant@_ERASE_.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@_ERASE_.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* " " " " ,Sl = "squeeze lines" " " Turn all blocks of empty lines (within current visual) " " into *one* empty line: " map ,Sl :g/^$/,/./-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! " " " " set the textwidth to 70 characters for replies (email&usenet) " au 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/^/> / " " " " " 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 '>'). " " " " ,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 " " " 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/txt/quotes.favouriteb " " see http://www.math.fu-berlin.de/~guckes/txt/quotes.favourite " " " " ,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 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@_ERASE_.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] " "pre-jhs source ~guckes/.P/vim/source/html.vim " "jhs /usr/local/share/vim/syntax/c.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@_ERASE_.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 " " " 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: " " JHS NOtes I added a " in next line to avoid start error " " so $VIM/syntax/syntax.vim " " " " Use my own syntax file on "mail/news messages": " let aucommand = "au 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 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 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@_ERASE_.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@_ERASE_.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@_ERASE_.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=\:\"