Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #Copyright 2011 LeoH. All rights reserved.
- #
- #Redistribution and use in source and binary forms, with or without
- #modification, are permitted provided that the following conditions are
- #met:
- #
- # 1. Redistributions of source code must retain the above copyright
- # notice, this list of conditions and the following disclaimer.
- #
- # 2. Redistributions in binary form must reproduce the above
- # copyright notice, this list of conditions and the following
- # disclaimer in the documentation and/or other materials provided
- # with the distribution.
- #
- #THIS SOFTWARE IS PROVIDED BY LeoH ``AS IS'' AND ANY
- #EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- #IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- #PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL LeoH OR
- #CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- #EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- #PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- #PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- #LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- #NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- #SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- #
- #The views and conclusions contained in the software and documentation
- #are those of the authors and should not be interpreted as representing
- #official policies, either expressed or implied, of LeoH.
- #-config: -----------------
- terminal=gnome-terminal
- caml=camllight
- execkey='ΓΉ'
- #---------------------------
- FIFO=/tmp/vimcaml.fifo.$RANDOM
- mkfifo $FIFO || { echo error while generating $FIFO 1>&2; exit 1; }
- sleep inf > $FIFO &
- sleepPid=$!
- tty=$(tty)
- vimcommand="bash -c \"
- vim -c 'set filetype=ocaml' -c 'map $execkey :!echo -e \\\"\\n\\\" > $tty
- ma{V}:!cat > '$FIFO'
- u'\'a;
- kill $sleepPid;
- rm $FIFO;
- \""
- #explanation: the $execkey shortcut will send the current paragraph to camllight
- #:!echo -e \\\"\\n\\\" > $tty : prints a new line to camllight for clarity
- #ma : mark cursor position
- #{V} : select current paragraph
- #:!cat > '\"$FIFO\"' : send paragraph to camllight
- #u' : paragraph will have been deleted so undo
- #\'a : cursor position will have been lost so restore it
- $terminal -e "$vimcommand"
- $caml < $FIFO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement