Difference between revisions of "Vim"
Jump to navigation
Jump to search
m (head links) |
(metapost patch) |
||
Line 22: | Line 22: | ||
* add metafun macros (from metafun manual) | * add metafun macros (from metafun manual) | ||
* should be easy: clone [http://www.vim.org/scripts/script.php?script_id=403 this] script to enable metapost/metafun and XML inside ConTeXt | * should be easy: clone [http://www.vim.org/scripts/script.php?script_id=403 this] script to enable metapost/metafun and XML inside ConTeXt | ||
+ | |||
+ | === MetaPost extension === | ||
+ | |||
+ | Should highlight the syntax between <tt>btex/verbatimtex</tt> ... <tt>etex</tt> as TeX. | ||
+ | |||
+ | This doesn't work 100% (problems with commands inside comments): If anyone knows how to repair that, please do so. It would be nice if this would have landed in the official metapost syntax highlighting script for vim one day. | ||
+ | |||
+ | unlet b:current_syntax | ||
+ | syn include @texTop syntax/tex.vim | ||
+ | " MetaPost has TeX inserts for typeset labels | ||
+ | " verbatimtex, btex, and etex will be treated as keywords | ||
+ | syn match mpTeXbegin "\(verbatimtex\|btex\)" | ||
+ | syn match mpTeXend "etex" | ||
+ | syn region mpTeXinsert start="\(verbatimtex\|btex\)"hs=e+1 end="etex"he=s-1 \ | ||
+ | contains=@texTop,mpTeXbegin,mpTeXend containedin=ALL keepend | ||
== Powerful key mappings == | == Powerful key mappings == |
Revision as of 23:17, 11 July 2005
< Related Programs | Text editor >
This page will be about editing ConTeXt source in (g)vim.
Useful plugins
- autocomplete: http://vim.sourceforge.net/scripts/script.php?script_id=182, almost undocumented, but life-saving
- spell-checker: http://www.vim.org/scripts/script.php?script_id=499, should work automatically once the ConTeXt support is there
- native spell-checking support should be included in Vim 7
LaTeX plugins
perhaps it would be possible to borrow anything from them:
http://vim-latex.sourceforge.net/
TODO
- extract data from texweb and create syntax highlighting definitions for ConTeXt
- add metafun macros (from metafun manual)
- should be easy: clone this script to enable metapost/metafun and XML inside ConTeXt
MetaPost extension
Should highlight the syntax between btex/verbatimtex ... etex as TeX.
This doesn't work 100% (problems with commands inside comments): If anyone knows how to repair that, please do so. It would be nice if this would have landed in the official metapost syntax highlighting script for vim one day.
unlet b:current_syntax syn include @texTop syntax/tex.vim " MetaPost has TeX inserts for typeset labels " verbatimtex, btex, and etex will be treated as keywords syn match mpTeXbegin "\(verbatimtex\|btex\)" syn match mpTeXend "etex" syn region mpTeXinsert start="\(verbatimtex\|btex\)"hs=e+1 end="etex"he=s-1 \ contains=@texTop,mpTeXbegin,mpTeXend containedin=ALL keepend
Powerful key mappings
a set of buffer-local insert-mode macros to speed up ConTeXt source editing (by D.A. 19:52, 8 Jul 2005 (CEST))
- I have remapped <leader> to comma (one hardly ever use commas just before a letter)
- two types of mappings: stand-alone and changing the previous word
- usage of mappings that change the previous word: type the name of the macro and ,ta (for tag, use your leader character instead of the comma); it created \start-\stop block of the macro
- put the code into .vim/after/plugin/context.vim
let maplocalleader = mapleader " Make start-stop block out of the previous word imap <buffer> <LocalLeader>ta \start<Cr>\stop<Cr><Esc>4bhdiw$pj$pO imap <buffer> <LocalLeader>tb \begin<Cr>\end<Cr><Esc>4bhdiw$pj$pO " Itemize imap <buffer> <LocalLeader>it \startitemize<Cr>\stopitemize<Esc>O\item<Space> imap <buffer> <LocalLeader>en \startitemize[n]<Cr>\stopitemize<Esc>O\item<Space> imap <buffer> <LocalLeader>i<Return> \item<Space> " Font switching and emphasize imap <buffer> <LocalLeader>em {\em }<Left> imap <buffer> <LocalLeader>sc {\sc }<Left> " Define... and setup... imap <buffer> <LocalLeader>de \define imap <buffer> <LocalLeader>se \setup " Typing and type imap <buffer> <LocalLeader>ty \type{}<Left> imap <buffer> <LocalLeader>typ typing<LocalLeader>ta " Quote and quotation imap <buffer> <LocalLeader>" \quotation{}<Left> imap <buffer> <LocalLeader>' \quote{}<Left>