sponsor Vim development Vim logo Vim Book Ad

drcstubs : Imaps to provide active stubs  (currently: c, LaTeX, sh, vim)

 script karma  Rating 24/9, Downloaded by 2184  Comments, bugs, improvements  Vim wiki

created by
Charles Campbell
 
script type
ftplugin
 
description
All of the DrCStubs ftplugin scripts provide maps which work during insert mode.  One may use either the shorthand or longhand maps to invoke the corresponding imap.  They are invoked whenever a string is followed by a backquote.

One major advantage of these imaps is that they, in turn, take advantage of the user's cindent settings and/or indentation scripts.  Thus the result should be as if the user had typed them him/herself.

  * These imaps will not operate if "set paste:" is on.
  * They work well with vimscript#1270 indenting scripts

In the maps below:

An "X" is where the cursor will end up after the map is invoked.
An "Y" is where the cursor will end up after an <esc> is pressed.
A  "|" means a newline.

Another form of help is available by typing >

:Drcstubs

------------------
C LANGUAGE SUPPORT
------------------
     Shorthand    Longhand     Expands
     Map          Map          To
     ---------    --------     -------
     i`           if`          if(X) {Y}
     e`           els[e]`      else {X}
     ei`          eli[f]`      else if(X) {Y}
     f`           for\=`       for(X;;) {Y}
     w`           wh[ile]`     while(X) {Y}
     s`           sw[itch]`    switch(X) {Y}
     c`           ca[se]`      case X: Y break;
     d`           defa[ult]`   default: Y break;
     `            do`          do {X} while(Y);
     E`           Ed[bg]`      Edbg((\"func(X)\"Y));
     R`           Rd[bg]`      Rdbg((\"funcX\"Y));
     D`           Dp[rintf]`   Dprintf((1,\"X\"Y));
                  in[clude]`   #include X
                  de[fine]`    #define X
                  #`           #ifdef X ... #endif

-------------
LATEX SUPPORT
-------------
       Environments And Abbreviations
     Shorthand    Longhand     Expands
     Map          Map          To
     ---------    --------     -------
     align`                    \begin{align}|X|\end{align}
     arr`         array`       \left[\begin{array}{ccc}|X|\end{array}\right]
     ctr`         center`      \begin{center}|X|\end{center}
     desc`        description` \begin{description}|\item[X]|\end{sdescription}
     enum`        enumerate`   \begin{enumerate}|\item X|\end{enumerate}
     eps`         epsf`        \begin{figure}[H]\centering\framebox{\epsfbox{X.eps}}\end{figure}
     eqn`         equation`    \begin{equation}|X|\end{equation}
     eqna`        eqnarray`    \begin{eqnarray}|X&=& Y \\|\end{eqnarray}
     fig`         figure`      \begin{figure}[H]\centering \framebox{X} \caption{CAPTION HERE} \end{figure}
     flalign`                  \begin{flalign}|X|\end{flalign}
     frac`                     \frac{X}{Y}
     gat`         gather`      \begin{gather}|X|\end{gather}
     i`                        \item X
     i`                        \item[X] Y        (if vim v7, and in a description block)
     item`        itemize`     \begin{itemize}|\item X|\end{itemize}
     mat`         matrix`      \left[|\begin{array}{cc}| X &   & \\|&   & |\end{array}|\right]
     mini`        minipage`    \begin{minipage}[H]{4in}|X|\end{minipage}
     multc`       multicol`    \multicolumn{1}{X|c|}{MultiColumn}
     multl`       multline`    \begin{multline}|X|\end{multline}
     split`                    \begin{equation}\begin{split}|X|\end{split}\end{equation}
     tab`         tabular`     (too long for here)
     v`                        \verb`X`
     verb`        verbatim`    \begin{verbatim}|X|\end{verbatim}

         Script Style Support
     Shorthand    Longhand     Expands
     Map          Map          To
     ---------    --------     -------
     bf`                       \textbf{}
     it`                       \textit{}
     rm`                       \textrm{}
     sc`                       \textsc{}
     sf`                       \textsf{}
     sl`                       \textsl{}
     tt`                       \texttt{}
     mtt`                      \mathtt{}
     mrm`                      \mathrm{}
     mbf`                      \mathbf{}
     msf`                      \mathsf{}
     mtt`                      \mathtt{}
     mit`                      \mathit{}
     mcal`                     \mathcal{}

                 Greek Letters:
     Shorthand    Expands        Shorthand    Expands
     Map          To             Map          To
     ---------    -------        ---------    -------
     a`           \alpha        v             \nu
     b`           \beta         f             \xi
     g`           \gamma        p             \pi
     d`           \delta        vp            \varpi
     e`           \epsilon      r             \rho
     ve`          \varepsilon   vr            \varrho
     z`           \zeta         s             \sigma
     n`           \eta          v             \varsigma
     t`           \theta        t             \tau
     vt`          \vartheta     u             \upsilon
     io`          \iota         h             \phi
     k`           \kappa        vh            \varphi
     l`           \lambda       x             \chi
     m`           \mu           q             \psi
     w`           \omega


----------
SH SUPPORT
----------
     Shorthand    Longhand     Expands
     Map          Map          To
     ---------    --------     -------
     ca[se]`      c`           case X in|Y|esac
     fo[r]`       f`           for X in Y ; do|Z|done
     if`          i`           if [[ X ]]; then|Y|fi
     eli[f]`      ei`          elif [[ X ]]; then|Y
     els[e]`      e`           else|X
     fu[nction]`               function X|{|Y|}
     wh[ile]`     w`           while [[ X ]]; do|Y|done


-----------
VIM SUPPORT
-----------
     Shorthand    Longhand     Expands
     Map          Map          To
     ---------    --------     -------
     i            if           if X|endif
     e            els[e]       else|X
     ei           eli[f]       elseif X
                  fu[nction]   fun! X(Y)|endfun
     w            wh[ile]      while X|endwhile
     F            Df[unc]      call Dfunc("func(X)")|Y
     R            Dr[et]       call Dret("return func X")
     D            De[echo]     call Decho("X")|Y

(alpha/beta version available at http://www.drchip.org/astronaut/vim/index.html#DRCSTUBS)
 
install details
1. Place drcstubs.tar.gz in your $HOME/.vim or ..wherever..\vimfiles directory
2. gunzip drcstubs.tar.gz
3. tar -oxvf drcstubs.tar
4. Have  "filetype plugin indent on" in your <.vimrc>
 

rate this script Life Changing Helpful Unfulfilling 
script versions (upload new version)

Click on the package to download.

package script version date Vim version user release notes
drcstubs.vba.gz 3 2010-04-01 7.0 Charles Campbell New mappings and menu support in stub (template) files for c, sh, tex, and vim
drcstubs.tar.gz 1 2005-05-03 6.0 Charles Campbell Initial upload
ip used for rating: 142.132.191.50

If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to the maillist. Help Bram help Uganda.
   
Vim at Github