Difference between revisions of "Vim"

From Wiki
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 >

http://www.vim.org/

This page will be about editing ConTeXt source in (g)vim.

Useful plugins

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>