summaryrefslogtreecommitdiffstats
path: root/Aufgabe5/doc.lang/if_mzsch.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Aufgabe5/doc.lang/if_mzsch.txt')
-rw-r--r--Aufgabe5/doc.lang/if_mzsch.txt269
1 files changed, 269 insertions, 0 deletions
diff --git a/Aufgabe5/doc.lang/if_mzsch.txt b/Aufgabe5/doc.lang/if_mzsch.txt
new file mode 100644
index 0000000..2760b11
--- /dev/null
+++ b/Aufgabe5/doc.lang/if_mzsch.txt
@@ -0,0 +1,269 @@
+*if_mzsch.txt* For Vim version 7.0. Last change: 2006 Apr 30
+
+
+ VIM REFERENCE MANUAL by Sergey Khorev
+
+
+The MzScheme Interface to Vim *mzscheme* *MzScheme*
+
+1. Commands |mzscheme-commands|
+2. Examples |mzscheme-examples|
+3. Threads |mzscheme-threads|
+4. The Vim access procedures |mzscheme-vim|
+5. Dynamic loading |mzscheme-dynamic|
+
+{Vi does not have any of these commands}
+
+The MzScheme interface is available only if Vim was compiled with the
+|+mzscheme| feature.
+
+Based on the work of Brent Fulgham.
+Dynamic loading added by Sergey Khorev
+
+For downloading MzScheme and other info:
+ http://www.plt-scheme.org/software/mzscheme/
+
+==============================================================================
+1. Commands *mzscheme-commands*
+
+ *:mzscheme* *:mz*
+:[range]mz[scheme] {stmt}
+ Execute MzScheme statement {stmt}. {not in Vi}
+
+:[range]mz[scheme] << {endmarker}
+{script}
+{endmarker}
+ Execute inlined MzScheme script {script}.
+ Note: This command doesn't work if the MzScheme
+ feature wasn't compiled in. To avoid errors, see
+ |script-here|.
+
+ *:mzfile* *:mzf*
+:[range]mzf[ile] {file} Execute the MzScheme script in {file}. {not in Vi}
+ All statements are executed in the namespace of the
+ buffer that was current during :mzfile start.
+ If you want to access other namespaces, use
+ 'parameterize'.
+
+All of these commands do essentially the same thing - they execute a piece of
+MzScheme code, with the "current range" set to the given line
+range.
+
+In the case of :mzscheme, the code to execute is in the command-line.
+In the case of :mzfile, the code to execute is the contents of the given file.
+
+Each buffer has its own MzScheme namespace. Global namespace is bound to
+the `global-namespace' value from the 'vimext' module.
+MzScheme interface defines exception exn:vim, derived from exn.
+It is raised for various Vim errors.
+
+During compilation, the MzScheme interface will remember the current MzScheme
+collection path. If you want to specify additional paths use the
+'current-library-collection-paths' parameter. E.g., to cons the user-local
+MzScheme collection path: >
+ :mz << EOF
+ (current-library-collection-paths
+ (cons
+ (build-path (find-system-path 'addon-dir) (version) "collects")
+ (current-library-collection-paths)))
+ EOF
+<
+
+All functionality is provided through module vimext.
+
+The exn:vim is available without explicit import.
+
+To avoid clashes with MzScheme, consider using prefix when requiring module,
+e.g.: >
+ :mzscheme (require (prefix vim- vimext))
+<
+All the examples below assume this naming scheme. Note that you need to do
+this again for every buffer.
+
+The auto-instantiation can be achieved with autocommands, e.g. you can put
+something like this in your .vimrc (EOFs should not have indentation): >
+ function s:MzRequire()
+ if has("mzscheme")
+ :mz << EOF
+ (require (prefix vim- vimext))
+ (let ((buf (vim-get-buff-by-name (vim-eval "expand(\"<afile>\")"))))
+ (when (and buf (not (eq? buf (vim-curr-buff))))
+ (parameterize ((current-namespace (vim-get-buff-namespace buf)))
+ (namespace-attach-module vim-global-namespace 'vimext)
+ (namespace-require '(prefix vim vimext)))))
+ EOF
+ endif
+ endfunction
+
+ function s:MzStartup()
+ if has("mzscheme")
+ au BufNew,BufNewFile,BufAdd,BufReadPre * :call s:MzRequire()
+ :mz << EOF
+ (current-library-collection-paths
+ (cons
+ (build-path (find-system-path 'addon-dir) (version) "collects")
+ (current-library-collection-paths)))
+ EOF
+ endif
+ endfunction
+
+ call s:MzStartup()
+<
+
+The global namespace just instantiated this module with the prefix "vimext:".
+ *mzscheme-sandbox*
+When executed in the |sandbox|, access to some filesystem and Vim interface
+procedures is restricted.
+
+==============================================================================
+2. Examples *mzscheme-examples*
+>
+ :mzscheme (display "Hello")
+ :mzscheme (vim-set-buff-line 10 "This is line #10")
+<
+Inline script usage: >
+ function! <SID>SetFirstLine()
+ :mz << EOF
+ (display "!!!")
+ (vim-set-buff-line 1 "This is line #1")
+ (vim-beep)
+ EOF
+ endfunction
+
+ nmap <F9> :call <SID>SetFirstLine() <CR>
+<
+File execution: >
+ :mzfile supascript.scm
+<
+Accessing the current buffer namespace from an MzScheme program running in
+another buffer within |:mzfile|-executed script : >
+ ; Move to the window below
+ (vim-command "wincmd j")
+ ; execute in the context of buffer, to which window belongs
+ ; assume that buffer has 'textstring' defined
+ (parameterize ((current-namespace
+ (vim-get-buff-namespace (vim-curr-buff))))
+ (eval '(vim-set-buff-line 1 textstring)))
+<
+
+==============================================================================
+3. Threads *mzscheme-threads*
+
+The MzScheme interface supports threads. They are independent from OS threads,
+thus scheduling is required. The option 'mzquantum' determines how often
+Vim should poll for available MzScheme threads.
+NOTE
+Thread scheduling in the console version of Vim is less reliable than in the
+GUI version.
+
+==============================================================================
+5. VIM Functions *mzscheme-vim*
+
+ *mzscheme-vimext*
+The 'vimext' module provides access to procedures defined in the MzScheme
+interface.
+
+Common
+------
+ (command {command-string}) Perform the vim ":Ex" style command.
+ (eval {expr-string}) Evaluate the vim expression to a string.
+ A |List| is turned into a string by
+ joining the items and inserting line
+ breaks.
+ NOTE clashes with MzScheme eval
+ (range-start) Start/End of the range passed with
+ (range-end) the Scheme command.
+ (beep) beep
+ (get-option {option-name} [buffer-or-window]) Get Vim option value (either
+ local or global, see set-option).
+ (set-option {string} [buffer-or-window])
+ Set a Vim option. String must have option
+ setting form (like optname=optval, or
+ optname+=optval, etc.) When called with
+ {buffer} or {window} the local option will
+ be set. The symbol 'global can be passed
+ as {buffer-or-window}. Then |:setglobal|
+ will be used.
+ global-namespace The MzScheme main namespace.
+
+Buffers *mzscheme-buffer*
+-------
+ (buff? {object}) Is object a buffer?
+ (buff-valid? {object}) Is object a valid buffer? (i.e.
+ corresponds to the real Vim buffer)
+ (get-buff-line {linenr} [buffer])
+ Get line from a buffer.
+ (set-buff-line {linenr} {string} [buffer])
+ Set a line in a buffer. If {string} is #f,
+ the line gets deleted. The [buffer]
+ argument is optional. If omitted, the
+ current buffer will be used.
+ (get-buff-line-list {start} {end} [buffer])
+ Get a list of lines in a buffer. {Start}
+ and {end} are 1-based. {Start} is
+ inclusive, {end} - exclusive.
+ (set-buff-line-list {start} {end} {string-list} [buffer])
+ Set a list of lines in a buffer. If
+ string-list is #f or null, the lines get
+ deleted. If a list is shorter than
+ {end}-{start} the remaining lines will
+ be deleted.
+ (get-buff-name [buffer]) Get a buffer's text name.
+ (get-buff-num [buffer]) Get a buffer's number.
+ (get-buff-size [buffer]) Get buffer line count.
+ (insert-buff-line-list {linenr} {string/string-list} [buffer])
+ Insert a list of lines into a buffer after
+ {linenr}. If {linenr} is 0, lines will be
+ inserted at start.
+ (curr-buff) Get the current buffer. Use procedures
+ from `vimcmd' module to change it.
+ (buff-count) Get count of total buffers in the editor.
+ (get-next-buff [buffer]) Get next buffer.
+ (get-prev-buff [buffer]) Get previous buffer. Return #f when there
+ are no more buffers.
+ (open-buff {filename}) Open a new buffer (for file "name")
+ (get-buff-by-name {buffername}) Get a buffer by its filename or #f
+ if there is no such buffer.
+ (get-buff-by-num {buffernum}) Get a buffer by its number (return #f if
+ there is no buffer with this number).
+ (get-buff-namespace [buffer]) Get buffer namespace.
+
+Windows *mzscheme-window*
+------
+ (win? {object}) Is object a window?
+ (win-valid? {object}) Is object a valid window (i.e. corresponds
+ to the real Vim window)?
+ (curr-win) Get the current window.
+ (win-count) Get count of windows.
+ (get-win-num [window]) Get window number.
+ (get-win-by-num {windownum}) Get window by its number.
+ (get-win-buffer [window]) Get the buffer for a given window.
+ (get-win-height [window])
+ (set-win-height {height} [window]) Get/Set height of window.
+ (get-win-width [window])
+ (set-win-width {width} [window])Get/Set width of window.
+ (get-win-list [buffer]) Get list of windows for a buffer.
+ (get-cursor [window]) Get cursor position in a window as
+ a pair (linenr . column).
+ (set-cursor (line . col) [window]) Set cursor position.
+
+==============================================================================
+5. Dynamic loading *mzscheme-dynamic*
+
+On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version|
+output then includes |+mzscheme/dyn|.
+
+This means that Vim will search for the MzScheme DLL files only when needed.
+When you don't use the MzScheme interface you don't need them, thus you can
+use Vim without these DLL files.
+
+To use the MzScheme interface the MzScheme DLLs must be in your search path.
+In a console window type "path" to see what directories are used.
+
+The names of the DLLs must match the MzScheme version Vim was compiled with.
+For MzScheme version 209 they will be "libmzsch209_000.dll" and
+"libmzgc209_000.dll". To know for sure edit "gvim.exe" and search for
+"libmzsch\d\d\d_\d\d\d\.dll\c".
+
+======================================================================
+ vim:tw=78:ts=8:sts=4:ft=help:norl: