diff --git a/runtime/ftplugin/context.vim b/runtime/ftplugin/context.vim
index 1c7d678..6c11166 100644
--- a/runtime/ftplugin/context.vim
+++ b/runtime/ftplugin/context.vim
@@ -1,7 +1,8 @@
 " Vim filetype plugin file
-" Language:         ConTeXt typesetting engine
-" Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2008-07-09
+" Language:           ConTeXt typesetting engine
+" Maintainer:         Nicola Vitacolonna <nvitacolonna@gmail.com>
+" Former Maintainers: Nikolai Weibull <now@bitwi.se>
+" Latest Revision:    2016 Oct 14
 
 if exists("b:did_ftplugin")
   finish
@@ -11,16 +12,26 @@
 let s:cpo_save = &cpo
 set cpo&vim
 
-let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo<"
+if !exists('current_compiler')
+  compiler context
+endif
 
-setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tcroql
+let b:undo_ftplugin = "setl com< cms< def< inc< sua< fo< ofu<"
+      \ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
+
+setlocal comments=b:%D,b:%C,b:%M,:% commentstring=%\ %s formatoptions+=tjcroql2
+if get(b:, 'context_metapost', get(g:, 'context_metapost', 1))
+  setlocal omnifunc=context#complete
+  let g:omni_syntax_group_include_context = 'mf\w\+,mp\w\+'
+  let g:omni_syntax_group_exclude_context = 'mfTodoComment'
+endif
 
 let &l:define='\\\%([egx]\|char\|mathchar\|count\|dimen\|muskip\|skip\|toks\)\='
         \ .     'def\|\\font\|\\\%(future\)\=let'
         \ . '\|\\new\%(count\|dimen\|skip\|muskip\|box\|toks\|read\|write'
         \ .     '\|fam\|insert\|if\)'
 
-let &l:include = '^\s*\%(input\|component\)'
+let &l:include = '^\s*\\\%(input\|component\|product\|project\|environment\)'
 
 setlocal suffixesadd=.tex
 
@@ -31,5 +42,61 @@
         \ '\\start\(\a\+\):\\stop\1'
 endif
 
+let s:context_regex = {
+      \ 'beginsection' : '\\\%(start\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>',
+      \ 'endsection'   : '\\\%(stop\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>',
+      \ 'beginblock'   : '\\\%(start\|setup\|define\)',
+      \ 'endblock'     : '\\\%(stop\|setup\|define\)'
+      \ }
+
+function! s:move_around(count, what, flags, visual)
+  if a:visual
+    exe "normal! gv"
+  endif
+  call search(s:context_regex[a:what], a:flags.'s') " 's' sets previous context mark
+  call map(range(2, a:count), 'search(s:context_regex[a:what], a:flags)')
+endfunction
+
+" Move around macros.
+nnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:false) <CR>
+vnoremap <silent><buffer> [[ :<C-U>call <SID>move_around(v:count1, "beginsection", "bW", v:true)  <CR>
+nnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W",  v:false) <CR>
+vnoremap <silent><buffer> ]] :<C-U>call <SID>move_around(v:count1, "beginsection", "W",  v:true)  <CR>
+nnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection",   "bW", v:false) <CR>
+vnoremap <silent><buffer> [] :<C-U>call <SID>move_around(v:count1, "endsection",   "bW", v:true)  <CR>
+nnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection",   "W",  v:false) <CR>
+vnoremap <silent><buffer> ][ :<C-U>call <SID>move_around(v:count1, "endsection",   "W",  v:true)  <CR>
+nnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock",   "bW", v:false) <CR>
+vnoremap <silent><buffer> [{ :<C-U>call <SID>move_around(v:count1, "beginblock",   "bW", v:true)  <CR>
+nnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock",     "W",  v:false) <CR>
+vnoremap <silent><buffer> ]} :<C-U>call <SID>move_around(v:count1, "endblock",     "W",  v:true)  <CR>
+
+" Other useful mappings
+if get(g:, 'context_mappings', 1)
+  let s:tp_regex = '?^$\|^\s*\\\(item\|start\|stop\|blank\|\%(sub\)*section\|chapter\|\%(sub\)*subject\|title\|part\)'
+
+  fun! s:tp()
+    call cursor(search(s:tp_regex, 'bcW') + 1, 1)
+    normal! V
+    call cursor(search(s:tp_regex, 'W') - 1, 1)
+  endf
+
+  " Reflow paragraphs with commands like gqtp ("gq TeX paragraph")
+  onoremap <silent><buffer> tp :<c-u>call <sid>tp()<cr>
+  " Select TeX paragraph
+  vnoremap <silent><buffer> tp <esc>:<c-u>call <sid>tp()<cr>
+
+  " $...$ text object
+  onoremap <silent><buffer> i$ :<c-u>normal! T$vt$<cr>
+  onoremap <silent><buffer> a$ :<c-u>normal! F$vf$<cr>
+  vnoremap <buffer> i$ T$ot$
+  vnoremap <buffer> a$ F$of$
+endif
+
+" Commands for asynchronous typesetting
+command! -buffer -nargs=? -complete=file ConTeXt          call context#typeset(<q-args>)
+command!         -nargs=0                ConTeXtJobStatus call context#job_status()
+command!         -nargs=0                ConTeXtStopJobs  call context#stop_jobs()
+
 let &cpo = s:cpo_save
 unlet s:cpo_save
