Merge branch 'KaoriYa'
[MacVim/KaoriYa.git] / runtime / doc / os_vms.txt
blobd535352bdb194e49a2c2b09391367378d7834ed7
1 *os_vms.txt*    For Vim version 7.2.  Last change: 2008 Dec 17
4                   VIM REFERENCE MANUAL
7                                                         *VMS* *vms*
8 This file contains the particularities for the VMS version of Vim.
9 You can reach this information file by typing :help VMS in Vim command
10 prompt.
12  1. Getting started     |vms-started|
13  2. Download files      |vms-download|
14  3. Compiling           |vms-compiling|
15  4. Problems            |vms-problems|
16  5. Deploy              |vms-deploy|
17  6. Practical usage     |vms-usage|
18  7. GUI mode questions  |vms-gui|
19  8. Useful notes        |vms-notes|
20  9. VMS related changes |vms-changes|
21 10. Authors             |vms-authors|
23 ==============================================================================
25 1. Getting started                                      *vms-started*
27 Vim (Vi IMproved) is a vi-compatible text editor that runs on nearly every
28 operating system known to humanity.  Now use Vim on OpenVMS too, in character
29 or X/Motif environment.  It is fully featured and absolutely compatible with
30 Vim on other operating systems.
32 ==============================================================================
34 2. Download files                                       *vms-download*
36 You can download the Vim source code by ftp from the official Vim site:
37         ftp://ftp.vim.org/pub/vim/
38 Or use one of the mirrors:
39         ftp://ftp.vim.org/pub/vim/MIRRORS
41 You will need both the Unix and Extra archives to build vim.exe for VMS.
42 For using Vim's full power you will need the runtime files as well.
44 You can download precompiled executables from:
45         http://www.polarhome.com/vim/
46         ftp://ftp.polarhome.com/pub/vim/
48 To use the precompiled binary version, you need one of these archives:
50   vim-XX-exe-ia64-gui.zip       IA64 GUI/Motif executables
51   vim-XX-exe-ia64-gtk.zip       IA64 GUI/GTK executables
52   vim-XX-exe-ia64-term.zip      IA64 console executables
53   vim-XX-exe-axp-gui.zip        Alpha GUI/Motif executables
54   vim-XX-exe-axp-gtk.zip        Alpha GUI/GTK executables
55   vim-XX-exe-axp-term.zip       Alpha console executables
56   vim-XX-exe-vax-gui.zip        VAX GUI executables
57   vim-XX-exe-vax-term.zip       VAX console executables
59 and of course (optional)
60   vim-XX-runtime.zip            runtime files
62 The binary archives contain: vim.exe, ctags.exe, xxd.exe files.
64 For GTK executables you will need GTKLIB that is available for
65 Alpha and IA64 platform.
67 ==============================================================================
69 3. Compiling                                            *vms-compiling*
71 See the file [.SRC]INSTALLVMS.TXT.
73 ==============================================================================
75 4. Problems                                             *vms-problems*
77 The code has been tested under Open VMS 6.2 - 8.2 on Alpha, VAX and IA64
78 platforms with the DEC C compiler.  It should work without bigger problems.
79 If your system does not have some include libraries you can tune up in
80 OS_VMS_CONF.H file.
82 If you decided to build Vim with +perl, +python, etc. options, first you need
83 to download OpenVMS distributions of Perl and Python.  Build and deploy the
84 libraries and change adequate lines in MAKE_VMS.MMS file.  There should not be
85 a problem from Vim side.
87 Also GTK, XPM library paths should be configured in MAKE_VMS.MMS
89 Note: Under VAX it should work with the DEC C compiler without problems.  The
90 VAX C compiler is not fully ANSI C compatible in pre-processor directives
91 semantics, therefore you have to use a converter program what will do the lion
92 part of the job.  For detailed instructions read file INSTALLvms.txt
94 MMS_VIM.EXE is build together with VIM.EXE, but for XD.EXE you should
95 change to subdirectory and build it separately.
97 CTAGS is not part of the Vim source distribution anymore, however the OpenVMS
98 specific source might contain CTAGS source files as described above.
99 You can find more information about CTAGS on VMS at
100 http://www.polarhome.com/ctags/
102 Advanced users may try some acrobatics in FEATURE.H file also.
104 It is possible to compile with +xfontset +xim options too, but then you have
105 to set up GUI fonts etc. correctly.  See :help xim from Vim command prompt.
107 You may want to use GUI with GTK icons, then you have to download and install
108 GTK for OpenVMS or at least runtime shareable images - LIBGTK from
109 polarhome.com
111 For more advanced questions, please send your problem to Vim on VMS mailing
112 list <vim-vms@polarhome.com>
113 More about the vim-vms list can be found at:
114 http://www.polarhome.com/mailman/listinfo/vim-vms
116 ==============================================================================
118 5. Deploy                                               *vms-deploy*
120 Vim uses a special directory structure to hold the document and runtime files:
122    vim (or wherever)
123     |- tmp
124     |- vim57
125     |----- doc
126     |----- syntax
127     |- vim62
128     |----- doc
129     |----- syntax
130     |- vim64
131     |----- doc
132     |----- syntax
133     vimrc    (system rc files)
134     gvimrc
136 Use: >
138         define/nolog VIM        device:[path.vim]
139         define/nolog VIMRUNTIME device:[path.vim.vim60]
140         define/nolog TMP        device:[path.tmp]
142 To get vim.exe to find its document, filetype, and syntax files, and to
143 specify a directory where temporary files will be located.  Copy the "runtime"
144 subdirectory of the Vim distribution to vimruntime.
146 Logicals $VIMRUNTIME and $TMP are optional.
148 If $VIMRUNTIME is not set, Vim will guess and try to set up automatically.
149 Read more about it at :help runtime
151 If $TMP is not set, you will not be able to use some functions as CTAGS,
152 XXD, printing etc. that use temporary directory for normal operation.
153 The $TMP directory should be readable and writable by the user(s).
154 The easiest way to set up $TMP is to define a logical: >
156         define/nolog TMP SYS$SCRATCH
157 or as: >
158         define/nolog TMP SYS$LOGIN
160 ==============================================================================
162 6. Practical usage                                      *vms-usage*
164 Usually, you want to run just one version of Vim on your system, therefore
165 it is enough to dedicate one directory for Vim.
166 Copy the whole Vim runtime directory structure to the deployment position.
167 Add the following lines to your LOGIN.COM (in SYS$LOGIN directory).
168 Set up the logical $VIM as: >
170         $ define VIM device:<path>
172 Set up some symbols: >
174         $ ! vi starts Vim in chr. mode.
175         $ vi*m  :== mcr VIM:VIM.EXE
177         $ !gvi starts Vim in GUI mode.
178         $ gv*im :== spawn/nowait mcr VIM:VIM.EXE -g
180 Please, check the notes for customization and configuration of symbols.
182 You may want to create .vimrc and .gvimrc files in your home directory
183 (SYS$LOGIN) to overwrite default settings.
185 The easiest way is just rename example files.  You may leave the menu file
186 (MENU.VIM) and files vimrc and gvimrc in the original $VIM directory.  It will
187 be default setup for all users, and for users it is enough just to have their
188 own additions or resetting in their home directory in files .vimrc and .gvimrc.
189 It should work without problems.
191 Note: Remember, system rc files (default for all users) don't have a leading
192 ".".  So, system rc files are: >
194         $VIM:vimrc
195         $VIM:gvimrc
196         $VIM:menu.vim
198 and user customized rc files are: >
200         sys$login:.vimrc
201         sys$login:.gvimrc
203 You can check that everything is on the right place with the :version command.
205 Example LOGIN.COM: >
207         $ define/nolog VIM RF10:[UTIL.VIM]
208         $ vi*m :== mcr VIM:VIM.EXE
209         $ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40
210         $ set disp/create/node=192.168.5.223/trans=tcpip
212 Note: This set-up should be enough, if you are working on standalone server or
213 clustered environment, but if you want to use Vim as internode editor in
214 DECNET environment, it will satisfy as well.
215 You just have to define the "whole" path: >
217         $ define VIM "<server_name>[""user password""]::device:<path>"
218         $ vi*m :== "mcr VIM:VIM.EXE"
220 As for example: >
222         $ define VIM "PLUTO::RF10:[UTIL.VIM]"
223         $ define VIM "PLUTO""ZAY mypass""::RF10:[UTIL.VIM]" ! if passwd required
225 You can also use the $VIMRUNTIME logical to point to the proper version of Vim
226 if you have installed more versions at the same time.  If $VIMRUNTIME is not
227 defined Vim will borrow its value from the $VIM logical.  You can find more
228 information about the $VIMRUNTIME logical by typing :help runtime as a Vim
229 command.
231 System administrators might want to set up a system wide Vim installation,
232 then add to the SYS$STARTUP:SYLOGICALS.COM >
234         $ define/nolog/sys VIM device:<path>
235         $ define/nolog/sys TMP SYS$SCRATCH
237 And to the SYS$STARTUP:SYLOGIN.COM >
239         $ vi*m :== mcr VIM:VIM.EXE
240         $ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40
243 It will set up a normal Vim work environment for every user on the system.
245 IMPORTANT: Vim on OpenVMS (and on other case insensitive system) command line
246 parameters are assumed to be lowercase. In order to indicate that a command
247 line parameter is uppercase "/" sign must be used.
249 Examples:
250   >
251         vim -R  filename  ! means: -r List swap files and exit
252         vim -/r filename  ! means: -R Readonly mode (like "view")
253         vim -u  <vimrc>   ! means: -u Use <vimrc> instead of any .vimrc
254         vim -/u <gvimrc>  ! means: -U Use <gvimrc> instead of any .gvimrc
256 ==============================================================================
258 7. GUI mode questions                                   *vms-gui*
260 OpenVMS is a real mainframe OS, therefore even if it has a GUI console, most
261 of the users do not use a native X/Window environment during normal operation.
262 It is not possible to start Vim in GUI mode "just like that".  But anyhow it
263 is not too complicated either.
265 First of all: you will need an executable that is built with the GUI enabled.
267 Second: you need to have installed DECW/Motif on your VMS server, otherwise
268 you will get errors that some shareable libraries are missing.
270 Third: If you choose to run Vim with extra features such as GUI/GTK then you
271 need a GTK installation too or at least a GTK runtime environment (LIBGTK
272 can be downloaded from http://www.polarhome.com/vim/).
274 1) If you are working on the VMS X/Motif console:
275    Start Vim with the command: >
277         $ mc device:<path>VIM.EXE -g
279    or type :gui as a command to the Vim command prompt.  For more info :help
280    gui
282 2) If you are working on some other X/Window environment like Unix or a remote
283    X VMS console.  Set up display to your host with: >
285         $ set disp/create/node=<your IP address>/trans=<transport-name>
287    and start Vim as in point 1.  You can find more help in VMS documentation or
288    type: help set disp in VMS prompt.
289    Examples: >
291         $ set disp/create/node=192.168.5.159             ! default trans is DECnet
292         $ set disp/create/node=192.168.5.159/trans=tcpip ! TCP/IP network
293         $ set disp/create/node=192.168.5.159/trans=local ! display on the same node
295 Note: you should define just one of these.
296 For more information type $help set disp in VMS prompt.
298 3) Another elegant solution is XDM if you have installed on OpenVMS box.
299    It is possible to work from XDM client as from GUI console.
301 4) If you are working on MS-Windows or some other non X/Window environment
302    you need to set up one X server and run Vim as in point 2.
303    For MS-Windows there are available free X servers as MIX , Omni X etc.,
304    as well as excellent commercial products as eXcursion or ReflectionX with
305    built-in DEC support.
307 Please note, that executables without GUI are slightly faster during startup
308 then with enabled GUI in character mode. Therefore, if you do not use GUI
309 features, it is worth to choose non GUI executables.
311 ==============================================================================
313 8. Useful notes                                         *vms-notes*
315 8.1 Backspace/delete
316 8.2 Filters
317 8.3 VMS file version numbers
318 8.4 Directory conversion
319 8.5 Remote host invocation
320 8.6 Terminal problems
321 8.7 Hex-editing and other external tools
322 8.8 Sourcing vimrc and gvimrc
323 8.9 Printing from Vim
324 8.10 Setting up the symbols
325 8.11 diff and other GNU programs
326 8.12 diff-mode
327 8.13 Allow '$' in C keywords
328 8.14 VIMTUTOR for beginners
329 8.15 Slow start in console mode issue 
330 8.16 Common VIM directory - different architectures 
332 8.1 Backspace/delete
334 There are backspace/delete key inconsistencies with VMS.
335 :fixdel doesn't do the trick, but the solution is: >
337         :inoremap ^? ^H         " for terminal mode
338         :inoremap <Del> ^H      " for gui mode
340 Read more in ch: 8.6 (Terminal problems).
341 (Bruce Hunsaker <BNHunsaker@chq.byu.edu> Vim 5.3)
344 8.2 Filters
346 Vim supports filters, i.e., if you have a sort program that can handle
347 input/output redirection like Unix (<infile >outfile), you could use >
349         :map \s 0!'aqsort<CR>
351 (Charles E. Campbell, Jr. <cec@gryphon.gsfc.nasa.gov> Vim 5.4)
354 8.3 VMS file version numbers
356 Vim is saving files into a new file with the next higher file version
357 number, try these settings. >
359         :set nobackup        " does not create *.*_ backup files
360         :set nowritebackup   " does not have any purpose on VMS.  It's the
361                              " default.
363 Recovery is working perfect as well from the default swap file.
364 Read more with :help swapfile
366 (Claude Marinier <ClaudeMarinier@xwavesolutions.com> Vim 5.5, Zoltan Arpadffy
367 Vim 5.6)
370 8.4 Directory conversion
372 Vim will internally convert any unix-style paths and even mixed unix/VMS
373 paths into VMS style paths.  Some typical conversions resemble:
375         /abc/def/ghi            -> abc:[def]ghi.
376         /abc/def/ghi.j          -> abc:[def]ghi.j
377         /abc/def/ghi.j;2        -> abc:[def]ghi.j;2
378         /abc/def/ghi/jkl/mno    -> abc:[def.ghi.jkl]mno.
379         abc:[def.ghi]jkl/mno    -> abc:[def.ghi.jkl]mno.
380           ./                    -> current directory
381           ../                   -> relative parent directory
382           [.def.ghi]            -> relative child directory
383            ./def/ghi            -> relative child directory
385 Note: You may use <,> brackets as well (device:<path>file.ext;version) as
386 rf10:<user.zay.work>test.c;1
388 (David Elins <delins@foliage.com>, Jerome Lauret
389 <JLAURET@mail.chem.sunysb.edu> Vim 5.6 )
392 8.5 Remote host invocation
394 It is possible to use Vim as an internode editor.
395 1. Edit some file from remote node: >
397         vi "<server>""username passwd""::<device>:<path><filename>;<version>"
399 Example: >
400         vi "pluto""zay passwd""::RF10:<USER.ZAY.WORK>TEST.C;1"
402 Note: syntax is very important, otherwise VMS will recognize more parameters
403 instead of one (resulting with: file not found)
405 2.  Set up Vim as your internode editor.  If Vim is not installed on your
406 host, just set up your IP address, the full Vim path including the server name
407 and run the command procedure below: >
409         $ if (p1 .eqs. "") .OR. (p2 .eqs. "") then goto usage
410         $ set disp/create/node=<your_IP_here>/trans=tcpip
411         $ define "VIM "<vim_server>""''p1' ''p2'""::<device>:<vim_path>"
412         $  vi*m :== "mcr VIM:VIM.EXE"
413         $ gv*im :== "spawn/nowait mcr VIM:VIM.EXE -g"
414         $ goto end
415         $ usage:
416         $ write sys$output " Please enter username and password as a parameter."
417         $ write sys$output " Example: @SETVIM.COM username passwd"
418         $ end:
420 Note: Never use it in a clustered environment (you do not need it), loading
421 could be very-very slow, but even faster than a local Emacs. :-)
423 (Zoltan Arpadffy, Vim 5.6)
426 8.6 Terminal problems
428 If your terminal name is not known to Vim and it is trying to find the default
429 one you will get the following message during start-up:
431 Terminal entry not found in termcap
432 'unknown-terminal' not known.  Available built-in terminals are:
433     builtin_gui
434     builtin_riscos
435     builtin_amiga
436     builtin_beos-ansi
437     builtin_ansi
438     builtin_vt320
439     builtin_vt52
440     builtin_pcansi
441     builtin_win32
442     builtin_xterm
443     builtin_iris-ansi
444     builtin_debug
445     builtin_dumb
446 defaulting to 'vt320'
448 The solution is to define default terminal name: >
450         $ ! unknown terminal name.  Let us use vt320 or ansi instead.
451         $ ! Note: it's case sensitive
452         $ define term "vt320"
454 Terminals from VT100 to VT320 (as V300, VT220, VT200 ) do not need any extra
455 keyboard mappings.  They should work perfect as they are, including arrows,
456 Ins, Del buttons etc., except Backspace in GUI mode.  To solve it, add to
457 .gvimrc: >
459         inoremap <Del> <BS>
461 Vim will also recognize that they are fast terminals.
463 If you have some annoying line jumping on the screen between windows add to
464 your .vimrc file: >
466         set ttyfast     " set fast terminal
468 Note: if you're using Vim on remote host or through very slow connection, it's
469 recommended to avoid fast terminal option with: >
471         set nottyfast   " set terminal to slow mode
473 (Zoltan Arpadffy, Vim 5.6)
476 8.7 Hex-editing and other external tools
478 A very important difference between OpenVMS and other systems is that VMS uses
479 special commands to execute executables: >
481         RUN <path>filename
482         MCR <path>filename <parameters>
484 OpenVMS users always have to be aware that the Vim command :! "just" drop them
485 to DCL prompt.  This feature is possible to use without any problem with all
486 DCL commands, but if we want to execute some program as XXD, CTAGS, JTAGS etc.
487 we're running into trouble if we follow the Vim documentation (see: help
488 xxd).
490 Solution: Execute with the MC command and add the full path to the executable.
491 Example: Instead of :%!xxd command use: >
493         :%!mc vim:xxd
495 ... or in general: >
496         :!mc <path>filename <parameters>
498 Note: You can use XXD and CTAGS from GUI menu.
500 To customize ctags it is possible to define the logical $CTAGS with standard
501 parameters as: >
503         define/nolog CTAGS "--totals -o sys$login:tags"
505 For additional information, please read :help tagsearch and CTAGS
506 documentation at http://ctags.sourceforge.net/ctags.html.
508 (Zoltan Arpadffy, Vim 5.6-70)
511 8.8 Sourcing vimrc and gvimrc
513 If you want to use your .vimrc and .gvimrc from other platforms (e.g. Windows)
514 you can get in trouble if you ftp that file(s): VMS has different end-of-line
515 indication.
516 The symptom is that Vim is not sourcing your .vimrc/.gvimrc, even if you say:
518         :so sys$login:.vimrc
520 One trick is to compress (e.g. zip) the files on the other platform and
521 uncompress it on VMS; if you have the same symptom, try to create the files
522 with copy-paste (for this you need both op. systems reachable from one
523 machine, e.g. an Xterm on Windows or telnet to Windows from VMS).
525 (Sandor Kopanyi, <sandor.kopanyi@mailbox.hu> Vim 6.0a)
528 8.9 Printing from Vim
530 To be able to print from Vim (running in GUI mode) under VMS you have to set
531 up $TMP logical which should point to some temporary directory and logical
532 SYS$PRINT to your default print queue.
533 Example: >
535         $define SYS$PRINT HP5ANSI
537 You can print out whole buffer or just the marked area.
538 More info under :help hardcopy
540 (Zoltan Arpadffy, Vim 6.0c)
543 8.10 Setting up the symbols
545 When I use GVIM this way and press CTRL-Y in the parent terminal, gvim exits.
546 I now use a different symbol that seems to work OK and fixes the problem.
547 I suggest this instead: >
549         $ GV*IM:==SPAWN/NOWAIT/INPUT=NLA0: MCR VIM:VIM.EXE -G -GEOMETRY 80X40
551 The /INPUT=NLA0: separates the standard input of the gvim process from the
552 parent terminal, to block signals from the parent window.
553 Without the -GEOMETRY, the GVIM window size will be minimal and the menu
554 will be confused after a window-resize.
556 (Carlo Mekenkamp, Coen Engelbarts, Vim 6.0ac)
559 8.11 diff and other GNU programs
561 From 6.0 diff functionality has been implemented, but OpenVMS does not use
562 GNU/Unix like diff therefore built in diff does not work.
563 There is a simple solution to solve this anomaly.  Install a Unix like diff
564 and Vim will work perfect in diff mode too.  You just have to redefine your
565 diff program as: >
567         define /nolog diff <GNU_PATH>diff.exe
569 Another, more sophisticated solution is described below (8.12 diff-mode)
570 There are some other programs as patch, make etc that may cause same problems.
571 At www.polarhome.com is possible to download an GNU package for Alpha and VAX
572 boxes that is meant to solve GNU problems on OpenVMS.
573 ( Zoltan Arpadffy, Vim 6.1)
576 8.12 diff-mode
578 Vim 6.0 and higher supports Vim diff-mode (See |new-diff-mode|, |diff-mode|
579 and |08.7|).  This uses the external program 'diff' and expects a Unix-like
580 output format from diff.  The standard VMS diff has a different output
581 format.  To use Vim on VMS in diff-mode, you need to:
582     1 Install a Unix-like diff program, e.g. GNU diff
583     2 Tell Vim to use the Unix-like diff for diff-mode.
585 You can download GNU diff from the VIM-VMS website, it is one of the GNU
586 tools in http://www.polarhome.com/vim/files/gnu_tools.zip.  I suggest to
587 unpack it in a separate directory "GNU" and create a logical GNU: that
588 points to that directory, e.g: >
590    DEFINE GNU    <DISK>:[<DIRECTORY>.BIN.GNU]
592 You may also want to define a symbol GDIFF, to use the GNU diff from the DCL
593 prompt: >
595    GDIFF :==     $GNU:DIFF.EXE
597 Now you need to tell Vim to use the new diff program.  Take the example
598 settings from |diff-diffexpr| and change the call to the external diff
599 program to the new diff on VMS.  Add this to your .vimrc file: >
601      " Set up vimdiff options
602        if v:version >= 600
603         " Use GNU diff on VMS
604         set diffexpr=MyDiff()
605         function MyDiff()
606            let opt = ""
607            if &diffopt =~ "icase"
608              let opt = opt . "-i "
609            endif
610            if &diffopt =~ "iwhite"
611              let opt = opt . "-b "
612            endif
613            silent execute "!mc GNU:diff.exe -a " . opt . v:fname_in . " " .  v:fname_new .
614                 \  " > " . v:fname_out
615         endfunction
616       endif
618 You can now use Vim in diff-mode, e.g. to compare two files in read-only
619 mode: >
621     $ VIM -D/R <FILE1> <FILE2>
623 You can also define new symbols for vimdiff, e.g.: >
625     $ VIMDIFF     :== 'VIM' -D/R
626     $ GVIMDIFF    :== 'GVIM' -D/R
628 You can now compare files in 4 ways: >
630     1. VMS  diff:  $ DIFF     <FILE1> <FILE2>
631     2. GNU  diff:  $ GDIFF    <FILE1> <FILE2>
632     3. VIM  diff:  $ VIMDIFF  <FILE1> <FILE2>
633     4. GVIM diff:  $ GVIMDIFF <FILE1> <FILE2>
635 ( Coen Engelbarts, Vim 6.1)
638 8.13 Allow '$' in C keywords
640 DEC C uses many identifiers with '$' in them.  This is not allowed in ANSI C,
641 and Vim recognises the '$' as the end of the identifier.  You can change this
642 with the |iskeyword|command.
643 Add this command to your .vimrc file: >
645     autocmd FileType c,cpp,cs  set iskeyword+=$
647 You can also create the file(s) $VIM/FTPLUGIN/C.VIM (and/or CPP.VIM and
648 CS.VIM) and add this command: >
650         set iskeyword+=$
652 Now word-based commands, e.g. the '*'-search-command and the CTRL-]
653 tag-lookup, work on the whole identifier.  (Ctags on VMS also supports '$' in
654 C keywords since ctags version 5.1.)
656 ( Coen Engelbarts, Vim 6.1)
658 8.14 VIMTUTOR for beginners
660 It exits VIMTUTOR.COM DCL script that can help Vim beginners to learn/make
661 first steps with Vim on OpenVMS.  Depending of binary distribution you may
662 start it with: >
664         @vim:vimtutor
666 (Thomas.R.Wyant III, Vim 6.1)
668 8.14 Slow start in console mode issue
670 As GUI/GTK Vim works equally well in console mode, many administrators
671 deploy those executables system wide.
672 Unfortunately, on a remote slow connections GUI/GTK executables behave rather
673 slow when user wants to run Vim just in the console mode - because of X environment detection timeout.
675 Luckily, there is a simple solution for that. Administrators need to deploy
676 both GUI/GTK build and just console build executables, like below: >
678     |- vim72
679     |----- doc
680     |----- syntax        
681        vimrc    (system rc files)
682        gvimrc
683        gvim.exe (the remaned GUI or GTK built vim.exe)      
684        vim.exe  (the console only executable) 
686 Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: >
688         $ define/nolog VIM RF10:[UTIL.VIM72] ! where you VIM directory is
689         $ vi*m  :== mcr VIM:VIM.EXE
690         $ gvi*m :== mcr VIM:GVIM.EXE
691         $ ! or you can try to spawn with
692         $ gv*im :== spawn/nowait/input=NLA0 mcr VIM:GVIM.EXE -g -GEOMETRY 80x40
695 Like this, users that do not have X environment and want to use Vim just in 
696 console mode can avoid performance problems.
698 (Zoltan Arpadffy, Vim 7.2)
700 8.15 Common VIM directory - different architectures
702 In a cluster that contains nodes with different architectures like below:
704 $show cluster
705 View of Cluster from system ID 11655  node: TOR                                                                     18-AUG-2008 11:58:31
706 +---------------------------------+
707 ¦        SYSTEMS        ¦ MEMBERS ¦
708 +-----------------------+---------¦
709 ¦  NODE  ¦   SOFTWARE   ¦  STATUS ¦
710 +--------+--------------+---------¦
711 ¦ TOR    ¦ VMS V7.3-2   ¦ MEMBER  ¦
712 ¦ TITAN2 ¦ VMS V8.3     ¦ MEMBER  ¦
713 ¦ ODIN   ¦ VMS V7.3-2   ¦ MEMBER  ¦
714 +---------------------------------+
716 It is convenient to have a common VIM directory but execute different
717 executables. 
718 There are more solutions for this problem:
720 Solution 1.  All executables in the same directory with different names
721 This is easily done with the following script that can be added
722 to the login.com or sylogin.com: >
724         $ if f$getsyi("NODE_HWTYPE") .eqs. "VAX"
725         $ then
726         $       say "VAX platform"
727         $       vi*m:== mcr vim:VIM.EXE_VAX
728         $ endif
729         $ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH"
730         $ then
731         $       say "ALPHA platform"
732         $       vi*m :== mcr vim:VIM.EXE_AXP
733         $ endif
734         $ if f$getsyi("ARCH_NAME") .eqs. "IA64"
735         $ then
736         $      say "IA64 platform"
737         $      vi*m :== mcr vim:VIM.EXE_IA64
738         $ endif
740 Solution 2.  Different directories: >
742         $ if f$getsyi("NODE_HWTYPE") .eqs. "VAX"
743         $ then
744         $       say "VAX platform"
745         $       define/nolog VIM RF10:[UTIL.VAX_EXE] ! VAX executables
746         $ endif
747         $ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH"
748         $ then
749         $       say "ALPHA platform"
750         $       define/nolog VIM RF10:[UTIL.AXP_EXE] ! AXP executables
751         $ endif
752         $ if f$getsyi("ARCH_NAME") .eqs. "IA64"
753         $ then
754         $      say "IA64 platform"
755         $      define/nolog VIM RF10:[UTIL.IA64_EXE] ! IA64 executables
756         $ endif
757         $! VIMRUNTIME must be defined in order to find runtime files
758         $ define/nolog VIMRUNTIME RF10:[UTIL.VIM72]
760 A good example for this approach is the [GNU]gnu_tools.com script from
761 GNU_TOOLS.ZIP package downloadable from http://www.polarhome.com/vim/
763 (Zoltan Arpadffy, Vim 7.2)
765 ==============================================================================
767 9. VMS related changes                                  *vms-changes*
769 Recent changes
770 - The following plugins are included into VMS runtime: 
771   genutils 2.4, multiselect 2.2, multvals 3.1, selectbuf 4.3,
772   bufexplorer 7.1.7, taglist 4.5
773 - minor changes in vimrc (just in VMS runtime) 
774 - make_vms.mms - HUGE model is the default
775 - [TESTDIR]make_vms.mms include as many tests possible
776 - modify test30 and test54 for VMS
777 - enable FLOAT feature in VMS port
778 - os_vms.txt updated  
780 Version 7.2 (2008 Aug 9)
781 - VCF files write corrected
782 - CTAGS 5.7 included
783 - corrected make_vms.mms (on VAX gave syntax error) 
785 Version 7.1 (2007 Jun 15)
786 - create TAGS file from menu 
788 Version 7 (2006 May 8)
789 - Improved low level char input (affects just console mode)
790 - Fixed plugin bug
791 - CTAGS 5.6 included
793 Version 6.4 (2005 Oct 15)
794 - GTKLIB and Vim build on IA64
795 - colors in terminal mode
796 - syntax highlighting in terminal mode
797 - write problem fixed (extra CR)
798 - ESC and ESC sequence recognition in terminal mode
799 - make file changed to support new MMS version
800 - env variable expansion in path corrected
801 - printing problems corrected
802 - help text added for case insensitive arguments
804 Version 6.3 (2004 May 10)
805 - Improved vms_read function
806 - CTAGS v5.5.4 included
807 - Documentation corrected and updated
809 Version 6.2 (2003 May 7)
810 - Corrected VMS system call results
811 - Low level character input is rewritten
812 - Correction in tag and quickfix handling
813 - First GTK build
814 - Make file changes
815     - GTK feature added
816     - Define for OLD_VMS
817     - OpenVMS version 6.2 or older
818 - Documentation updated with GTK features
819 - CTAGS v5.5 included
820 - VMS VIM tutor created
822 Version 6.1 (2002 Mar 25)
823 - TCL init_tcl() problem fixed
824 - CTAGS v5.4 included
825 - GNU tools binaries for OpenVMS
826 - Make file changes
827     - PERL, PYTHON and TCL support improved
828     - InstallVMS.txt has a detailed description HOWTO build
829 - VMS/Unix file handling rewritten
830 - Minor casting and bug fixes
832 Version 6.0 (2001 Sep 28)
833 - Unix and VMS code has been merged
834         - separated "really" VMS related code
835         - included all possible Unix functionality
836         - simplified or deleted the configuration files
837         - makefile MAKE_VMS.MMS reviewed
838 - menu changes (fixed printing, CTAGS and XXD usage)
839 - fixed variable RMS record format handling anomaly
840 - corrected syntax, ftplugin etc files load
841 - changed expand_wildcards and expandpath functions to work more general
842 - created OS_VMS_FILTER.COM - DECC->VAXC pre-processor directive convert
843   script.
844 - Improved code's VAXC and new DECC compilers compatibility
845 - changed quickfix parameters:
846         - errormessage format to suite DECC
847         - search, make and other commands to suite VMS system
848 - updated and renamed MMS make files for Vim and CTAGS.
849 - CTAGS has been removed from source distribution of Vim but it will remain
850   in OpenVMS binary distributions.
851 - simplified build/configuration procedure
852 - created INSTALLvms.txt - detailed compiling instructions under VMS.
853 - updated test scripts.
855 Version 5.8 (2001 Jun 1)
856 - OS_VMS.TXT updated with new features.
857 - other minor fixes.
858 - documentation updated
859 - this version had been tested much more than any other OpenVMS version
860   earlier
862 Version 5.7 (2000 Jun 24)
863 - New CTAGS v5.0 in distribution
864 - Documentation updated
866 Version 5.6 (2000 Jan 17)
867 - VMS filename related changes:
868         - version handling (open everything, save to new version)
869         - correct file extension matching for syntax (version problem)
870         - handle <,> characters and passwords in directory definition
871         - handle internode/remote invocation and editing with passwords
872         - OpenVMS files will be treated case insensitive from now
873         - corrected response of expand("%:.") etc path related functions
874         (in one word: VMS directory handling internally)
875 - version command
876         - corrected (+,-) information data
877         - added compiler and OS version
878         - added user and host information
879         - resolving $VIM and $VIMRUNTIME logicals
880 - VMS port is in MAX_FEAT (maximum features) club with Unix, Win32 and OS/2.
881         - enabled farsi, rightleft etc. features
882         - undo level raised up to 1000
883 - Updated OS_VMS.MMS file.
884         - maximum features ON is default
885         - Vim is compilable with +perl, +python and +tcl features.
886         - improved MMK compatibility
887 - Created MAKEFILE_VMS.MMS, makefile for testing Vim during development.
888 - Defined DEC terminal VT320
889         - compatibility for VT3*0, VT2*0 and VT1*0 - ANSI terminals
890           backwards, but not VT340 and newer with colour capability.
891         - VT320 is default terminal for OpenVMS
892         - these new terminals are also fast ttys (default for OpenVMS).
893         - allowed dec_mouse ttym
894 - Updated files vimrc and gvimrc with VMS specific suggestions.
895 - OS_VMS.TXT updated with new features.
897 Version 5.5 (1999 Dec 3)
898 - Popup menu line crash corrected.
899 - Handle full file names with version numbers.
900 - Directory handling (CD command etc.)
901 - Corrected file name conversion VMS to Unix and v.v.
902 - Correct response of expand wildcards
903 - Recovery is working from this version under VMS as well.
904 - Improved terminal and signal handing.
905 - Improved OS_VMS.TXT
907 Version 5.4 (1999 Sep 9)
908 - Cut and paste mismatch corrected.
909 - Motif directories during open and save are corrected.
911 Version 5.3 (1998 Oct 12)
912 - Minor changes in the code
913 - Standard distribution with +GUI option
915 Version 5.1 (1998 Apr 21)
916 - Syntax and DEC C changes in the code
917 - Fixing problems with the /doc subdirectory
918 - Improve OS_VMS.MMS
920 Version 4.5 (1996 Dec 16)
921 - First VMS port by Henk Elbers <henk@xs4all.nl>
923 ==============================================================================
925 10. Authors                                             *vms-authors*
927 OpenVMS documentation and executables are maintained by:
928 Zoltan Arpadffy <arpadffy@polarhome.com>
929 OpenVMS Vim page: http://www.polarhome.com/vim/
931 This document uses parts and remarks from earlier authors and contributors
932 of OS_VMS.TXT:
933         Charles E. Campbell, Jr. <cec@gryphon.gsfc.nasa.gov>
934         Bruce Hunsaker <BNHunsaker@chq.byu.edu>
935         Sandor Kopanyi <sandor.kopanyi@mailbox.hu>
937  vim:tw=78:ts=8:ft=help:norl: