version 5.1 " Remainder: " :%s/from/to/gc is to search and replace " Key Mapping " ----------- map! * imap L$ imap H vmap  ""d vmap "*d vmap "*d vmap "*y vmap ""d"*P nmap "*P nmap L$ vmap L$ nmap H vmap H "Page up and down through ctrl j and k map map "No Ex mode map Q gq "Next and Previous Buffer map :bn "Next and Previous error (using Make) map :cn map :cp "Pico ^J (justified text) nmap vipgq "Resize windows map :resize +2 map :resize -2 "Paste in Insert Mode "imap pA "To copy to clipboard, "*yap nmap nmap "Buffer switching "map :bn //disabled, used in jumping tags "map :bp "Make gf rebound to last cursor position noremap gf gf`" "Buffer delete ("hide" buffer nmap :bd:sbr " Jumping to function with tags nmap ?[^a-zA-z0-9_]lvt( nmap :pop " , Commands " ---------- "Way cool!! Open URL in netscape map ,net yA:!nets45 -remote "openurl " " Misc "----------- " list files in current directory. map ,ls :!ls --color=no "Way cool!! Open URL in netscape map ,net yA:!netscape -remote "openurl " "Change current directory to the buffer's director nmap ,cd :cd =expand("%:p:h") "Paste makes easy nmap ,pa :set pastei*:set nopaste "Editing make file nmap ,em :sp Makefile "Make Ctrl-g show buffer number too noremap 2 "Tex and Latex "------------- map ,lx :!latex % map ,dx :!xdvi =expand("%:t:r") . "." . "dvi" . "> /dev/null" & "Commenting "---------- " ,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 " ,Sl = "squeeze lines" " Turn all blocks of empty lines (within current visual) " into *one* empty line: map ,Sl :g/^$/,/./-j " ,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 "Vim setup files "--------------- " 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 :sp =vimrc " Indenting " --------- set autoindent set smartindent set shiftwidth=2 set cinoptions=>2 " Formatting " ---------- map ,H :s/.*/= & =/t-s/./=/gt+ "autoindenting the whole file and jump to the previous location map ,= mz1GVG='z " Programming " ----------- " Commenting a paragraph (C and Java Style -- // ) " ccp = C Comment Paragraph map ,ccp vip:s%^%// % vmap ,ccp :s%^%// % " Removing the comment of a commented paragraph (C and Java Style -- //) " rcc = Remove C Comment map ,rcc vip:s%^// %% vmap ,rcc :s%^// %% " Commenting a paragraph (Shell style -- #) " scp = Shell Comment Paragraph map ,scp vip:s%^%# % vmap ,scp :s%^%# % " Removing the comment of a commented paragraph (Shell style -- #) " rcc = Remove C Comment map ,rsc vip:s%^# %% vmap ,rsc :s%^# %% " CVS add file map ,cadd :!cvs add % "Tags "==== nmap ,ta :!(cd %:p:h;ctags -R)& set tags=./tags,tags " Compiling Options " ----------------- "Compiling java code map :!javac % map :!javac -depend % "Make command switch "Default: " set makeprg=javac\ -J-Djavac.pipe.output=true\ % "Java -depend map :set makeprg=javac\ -J-Djavac.pipe.output=true\ -depend\ % "Java Nomral map :set makeprg=javac\ -J-Djavac.pipe.output=true\ % " General Settings " ---------------- set ts=3 set tw=77 set backspace=2 set nowrap set ruler "set guifont=Screen15,\ 7x12,font\\,with\\,commas set iskeyword=!-~,^*,^|,^\" set readonly set magic set autowrite set matchtime=4 set cmdheight=2 " Insert 2 spaces after . when joining lines set joinspaces set lazyredraw set viminfo=%,'50,\"100,:0,n~/.viminfo " Syntax highlighting " ------------------- set showmatch set showmode set background=dark if &term == "colorxterm" :if has("terminfo") : set t_Co=16 : set t_AB=[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm : set t_AF=[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm :else : set t_Co=16 : set t_Sf=[3%dm : set t_Sb=[4%dm :endif else :if has("terminfo") : set t_Co=8 : set t_Sf=[3%p1%dm : set t_Sb=[4%p1%dm :else : set t_Co=8 : set t_Sf=[3%dm : set t_Sb=[4%dm :endif endif syntax on " Search Paths " ------------ set path=.,,$VIM/,$HOME/,c:\MyCode\java\,c:\MyCode\java\jcp\, " Abstractions " ------------ ab _email willlee@uclink4.berkeley.edu ab _hp http://www.csua.berkeley.edu/~wlee ab _newper c:\Frontpage\ Webs\Content\newper\ ab _jpad c:\MyCode\java\jpad\ ab __vimrc ~/.vimrc ab _jcp c:\Mycode\java\jcp\ " First, some command to add date stamps (with and without time). " I do these manually whenever I feel them necessary. " iab Ydate =strftime("%y%m%d") " Example: 971027 " iab Ytime =strftime("%H:%M") " Example: 14:28 " iab YDT =strftime("%y%m%d %X") " Example: 971027 12:00:00 " " iab YDATE =strftime("%a %b %d %T %Z %Y") iab YDATE =strftime("%a %b %d, %Y %X") " Example: Tue Dec 16 12:07:00 CET 1997 " " ,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 " 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 "Functions and Misc stuff: "---------- "Great Network read write script! source ~/.vim/scripts/netrw.vim " make current file (using default :mak) " -------------------------------------- "Make current buffer nmap ,mkb :do make_current_buffer User make "Make file nmap ,mak :mak augroup make_current_buffer au! au User make let old_ext = expand("%:e") au User make if old_ext == "java" au User make let new_ext = "class" au User make else au User make let new_ext = old_ext au User make endif au User make unlet old_ext au User make exec "mak " . expand("%:t:r") . "." . new_ext au USer make unlet new_ext augroup END " ------------------------------------------------------------------------- " toggle files nmap ,tf :do toggle_suffix User toggle augroup toggle_suffix au! " first the commands that switch buffer or open new file au User switch let _newfile = expand("%:r") . "." . b:_new au User switch unlet b:_new " if already buffered, use :buffer au User switch if bufexists(_newfile) au User switch exec "b " . bufname(_newfile) " else if file exists, edit it (inherits some settings) au User switch elseif filereadable(_newfile) au User switch exec "e " . _newfile au User switch else au User switch echo _newfile . ": no such file" au User switch endif au User switch unlet _newfile " now for the real thing " first get extension au User toggle let b:_old = expand("%:e") au User toggle if b:_old == "c" au User toggle let b:_new = "h" au User toggle elseif b:_old == "C" au User toggle let b:_new = "H" au User toggle elseif b:_old == "cc" au User toggle let b:_new = "h" au User toggle elseif b:_old == "h" au User toggle let b:_new = "cc" au User toggle elseif b:_old == "H" au User toggle let b:_new = "C" au User toggle elseif b:_old == "hh" au User toggle let b:_new = "cc" au User toggle endif au User toggle unlet b:_old au User toggle if exists("b:_new") au User toggle do toggle_suffix User switch au User toggle endif au User toggle exec "syn on" augroup END " ------------------------------------------------------------------------- "====================== "= Other useful stuff = "====================== " =================================================================== " 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| " ===================================================================