title: Trying to create custom vim functions
body: <p>This is my ~/.vimrc</p>
  
  <pre><code>filetype plugin indent on
  syntax on
  syntax enable
  
  """ &lt;F5&gt; calls make
  function! CallMake() 
      :!make
  endfunction
  :map &lt;F5&gt; :call CallMake()&lt;CR&gt;
  :imap &lt;F5&gt; &lt;C-O&gt;:call CallMake()&lt;CR&gt;
  
  """ &lt;F6&gt; calls run.sh
  function! CallRun()
      :!./run.sh
  endfunction
  :map &lt;F6&gt; :call CallRun()&lt;CR&gt;
  :imap &lt;F6&gt; &lt;C-O&gt;:call CallRun()&lt;CR&gt;
  
  """ Test
  map &lt;F7&gt; :ls&lt;CR&gt;
  map! &lt;F7&gt; :ls&lt;CR&gt;
  
  """ Remapped keys
  " swap ; and : in normal mode
  nnoremap ; :
  nnoremap : ;
  
  " exit insert mode with jk
  imap jk &lt;Esc&gt;
  
  " show commands as you're typing them
  set showcmd
  
  " enable mouse
  set mouse=a
  
  " show line numbers
  set number
  
  """ Search options
  set hlsearch
  set ignorecase
  
  """ tabs
  set tabstop=4
  set shiftwidth=4
  set expandtab
  
  colors koehler
  </code></pre>
  
  <p>The problem is all I get when I press F5, F6, or F7 is the terminal bell. 
  Does anyone know what I'm doing wrong?</p>
  
  <p>I'm using the default Ubuntu 10.10 terminal, and zsh as my shell, if either of those matter.</p>
  
  <p>The goal here is to make F5 to call make in the current directory, and make F6 call 
  ./run.sh in the current directory. If there is a better way than how I'm doing it,
  I'd also like to know about that.</p>
  
  <p>Thanks for any help :)</p>