Browse thread
[Caml-list] Jumping to matching keywords with % in Vim
-
Issac Trotts
- Aleksey Nogin
- Stefano Zacchiroli
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2003-11-17 (16:40) |
From: | Stefano Zacchiroli <zack@b...> |
Subject: | [Caml-list] vim - switching between .ml and .mli |
On Mon, Nov 17, 2003 at 03:30:30AM -0800, Issac Trotts wrote: > For those who use Vim and have the matchit.vim plugin installed, > here are a few lines to put in $HOME/.vim/ftplugin/ocaml.vim : Thanks! This is what I offer in exchange: support for switching from .ml to .mli with ",s" and ",S" (the latter split a new window). It requires vim-python in order to remember the previous position in a file: " switching between interfaces (.mli) and implementations (.ml) if !exists("g:did_ocaml_switch") && has("python") let g:did_ocaml_switch = 1 map ,s :call OCaml_switch_switch()<CR> map ,S :call OCaml_switch_switch_new()<CR> fun OCaml_switch_pynit() python << EOF import vim positions = {} def ocaml_save_position(): positions[vim.current.buffer.name] = vim.current.window.cursor def ocaml_restore_position(): try: vim.current.window.cursor = positions[vim.current.buffer.name] except KeyError: pass EOF endfun call OCaml_switch_pynit() fun OCaml_switch_switch() if (match(bufname(""), "\\.mli$") >= 0) python ocaml_save_position() exec "edit " . substitute(bufname(""), "\\.mli$", ".ml", "") python ocaml_restore_position() elseif (match(bufname(""), "\\.ml$") >= 0) python ocaml_save_position() exec "edit " . bufname("") . "i" python ocaml_restore_position() endif endfun fun OCaml_switch_switch_new() " as above but in a new window if (match(bufname(""), "\\.mli$") >= 0) python ocaml_save_position() exec "new " . substitute(bufname(""), "\\.mli$", ".ml", "") python ocaml_restore_position() elseif (match(bufname(""), "\\.ml$") >= 0) python ocaml_save_position() exec "new " . bufname("") . "i" python ocaml_restore_position() endif endfun endif -- ^Stefano Zacchiroli -- Master in Computer Science @ Uni. Bologna, Italy$ ^zack@{cs.unibo.it,debian.org,bononia.it} -- http://www.bononia.it/zack$ ^Frequentando il mio maestro mi ero reso conto [.] che la logica poteva$ ^servire a molto a condizione di entrarci dentro e poi di uscirne -Adso$ ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners