My Vim Mappings

If you want to use them, copy them into your .vimrc configuration file and restart Vim. Some of them might not work correctly for you, because some depend on your Vim configuration. If one isn't working, send me an E-Mail and tell me what goes wrong! timo at teifel-net dot de.

" set currently marked area into parentheses: Use visual mode to
" select text, then press ,[ for example to insert [] around selected
" text

vnoremap ,( <ESC>`>a)<ESC>`<i(<ESC>`>ll
vnoremap ,< <ESC>`>a><ESC>`<i<<ESC>`>ll
vnoremap ,[ <ESC>`>a]<ESC>`<i[<ESC>`>ll
vnoremap ,{ <ESC>`>a}<ESC>`<i{<ESC>`>ll
vnoremap ,$ <ESC>`>a$<ESC>`<i$<ESC>`>ll
vnoremap ," <ESC>`>a"<ESC>`<i"<ESC>`>ll

"set Control-S to 'Save File'

imap <C-S> <C-O>:w<CR>
nmap <C-S> :w<CR>

" Replace selected text in complete document
" select text in visual mode, press ,s and you'll get a prompt asking
" for the new text.

vmap ,s y:%s/<C-R>"//g<Left><Left>

" htmlify; I wrote this when writing this webpage. It replaces all
" < and > in the selected area with the html-code &lt; and &gt;
" Use in visual mode

vnoremap ,h :s/>/\>/g<CR>:nohl<CR>:'<,'>s/</\</g<CR>:nohl<CR>

" While typing a word, change case first letter of this word by typing ~w
" You can just continue typing...

imap ~w <ESC>mzB~`za

" Move cursor out of current parenthese region:
" if you have: (text <CURSOR> text)x
" and press Control-J, the cursor moves to the position marked with x

imap <C-J> <ESC>%%a

" Mappings for changing part of words with CamelCase:
" cu changes to next uppercase letter, du deletes

fun! DelToUpcaseLetter()
  let line=getline(".")
  let col=col(".")
  " Search for not-lowercase letters to stop at word end
  let nextUp = match(line, "\\L", col)
  if nextUp != -1
    call setline(line("."), strpart(line, 0, col-1) . strpart(line, nextUp))
  endif
endfun
nmap cu :call DelToUpcaseLetter()i
nmap du :call DelToUpcaseLetter()