1*os_vms.txt*    For Vim version 7.3.  Last change: 2010 Jul 28
2
3
4		  VIM REFERENCE MANUAL
5
6
7							*VMS* *vms*
8This file contains the particularities for the VMS version of Vim.
9You can reach this information file by typing :help VMS in Vim command
10prompt.
11
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|
2110. Authors		|vms-authors|
22
23==============================================================================
24
251. Getting started					*vms-started*
26
27Vim (Vi IMproved) is a vi-compatible text editor that runs on nearly every
28operating system known to humanity.  Now use Vim on OpenVMS too, in character
29or X/Motif environment.  It is fully featured and absolutely compatible with
30Vim on other operating systems.
31
32==============================================================================
33
342. Download files					*vms-download*
35
36You can download the Vim source code by ftp from the official Vim site:
37	ftp://ftp.vim.org/pub/vim/
38Or use one of the mirrors:
39	ftp://ftp.vim.org/pub/vim/MIRRORS
40
41You will need both the Unix and Extra archives to build vim.exe for VMS.
42For using Vim's full power you will need the runtime files as well.
43
44You can download precompiled executables from:
45	http://www.polarhome.com/vim/
46	ftp://ftp.polarhome.com/pub/vim/
47
48To use the precompiled binary version, you need one of these archives:
49
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
58
59and of course (optional)
60  vim-XX-runtime.zip		runtime files
61
62The binary archives contain: vim.exe, ctags.exe, xxd.exe files.
63
64For GTK executables you will need GTKLIB that is available for
65Alpha and IA64 platform.
66
67==============================================================================
68
693. Compiling						*vms-compiling*
70
71See the file [.SRC]INSTALLVMS.TXT.
72
73==============================================================================
74
754. Problems						*vms-problems*
76
77The code has been tested under Open VMS 6.2 - 8.2 on Alpha, VAX and IA64
78platforms with the DEC C compiler.  It should work without bigger problems.
79If your system does not have some include libraries you can tune up in
80OS_VMS_CONF.H file.
81
82If you decided to build Vim with +perl, +python, etc. options, first you need
83to download OpenVMS distributions of Perl and Python.  Build and deploy the
84libraries and change adequate lines in MAKE_VMS.MMS file.  There should not be
85a problem from Vim side.
86
87Also GTK, XPM library paths should be configured in MAKE_VMS.MMS
88
89Note: Under VAX it should work with the DEC C compiler without problems.  The
90VAX C compiler is not fully ANSI C compatible in pre-processor directives
91semantics, therefore you have to use a converter program what will do the lion
92part of the job.  For detailed instructions read file INSTALLvms.txt
93
94MMS_VIM.EXE is build together with VIM.EXE, but for XD.EXE you should
95change to subdirectory and build it separately.
96
97CTAGS is not part of the Vim source distribution anymore, however the OpenVMS
98specific source might contain CTAGS source files as described above.
99You can find more information about CTAGS on VMS at
100http://www.polarhome.com/ctags/
101
102Advanced users may try some acrobatics in FEATURE.H file as well.
103
104It is possible to compile with +xfontset +xim options too, but then you have
105to set up GUI fonts etc. correctly.  See :help xim from Vim command prompt.
106
107You may want to use GUI with GTK icons, then you have to download and install
108GTK for OpenVMS or at least runtime shareable images - LIBGTK from
109polarhome.com
110
111For more advanced questions, please send your problem to Vim on VMS mailing
112list <vim-vms@polarhome.com>
113More about the vim-vms list can be found at:
114http://www.polarhome.com/mailman/listinfo/vim-vms
115
116==============================================================================
117
1185. Deploy						*vms-deploy*
119
120Vim uses a special directory structure to hold the document and runtime files:
121
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
135
136Use: >
137
138	define/nolog VIM	device:[path.vim]
139	define/nolog VIMRUNTIME device:[path.vim.vim60]
140	define/nolog TMP	device:[path.tmp]
141
142To get vim.exe to find its document, filetype, and syntax files, and to
143specify a directory where temporary files will be located.  Copy the "runtime"
144subdirectory of the Vim distribution to vimruntime.
145
146Logicals $VIMRUNTIME and $TMP are optional.
147
148If $VIMRUNTIME is not set, Vim will guess and try to set up automatically.
149Read more about it at :help runtime
150
151If $TMP is not set, you will not be able to use some functions as CTAGS,
152XXD, printing etc. that use temporary directory for normal operation.
153The $TMP directory should be readable and writable by the user(s).
154The easiest way to set up $TMP is to define a logical: >
155
156	define/nolog TMP SYS$SCRATCH
157or as: >
158	define/nolog TMP SYS$LOGIN
159
160==============================================================================
161
1626. Practical usage					*vms-usage*
163
164Usually, you want to run just one version of Vim on your system, therefore
165it is enough to dedicate one directory for Vim.
166Copy the whole Vim runtime directory structure to the deployment position.
167Add the following lines to your LOGIN.COM (in SYS$LOGIN directory).
168Set up the logical $VIM as: >
169
170	$ define VIM device:<path>
171
172Set up some symbols: >
173
174	$ ! vi starts Vim in chr. mode.
175	$ vi*m  :== mcr VIM:VIM.EXE
176
177	$ !gvi starts Vim in GUI mode.
178	$ gv*im :== spawn/nowait mcr VIM:VIM.EXE -g
179
180Please, check the notes for customization and configuration of symbols.
181
182You may want to create .vimrc and .gvimrc files in your home directory
183(SYS$LOGIN) to overwrite default settings.
184
185The 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
187be default setup for all users, and for users it is enough just to have their
188own additions or resetting in their home directory in files .vimrc and .gvimrc.
189It should work without problems.
190
191Note: Remember, system rc files (default for all users) don't have a leading
192".".  So, system rc files are: >
193
194	$VIM:vimrc
195	$VIM:gvimrc
196	$VIM:menu.vim
197
198and user customized rc files are: >
199
200	sys$login:.vimrc
201	sys$login:.gvimrc
202
203You can check that everything is on the right place with the :version command.
204
205Example LOGIN.COM: >
206
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
211
212Note: This set-up should be enough, if you are working on standalone server or
213clustered environment, but if you want to use Vim as internode editor in
214DECNET environment, it will satisfy as well.
215You just have to define the "whole" path: >
216
217	$ define VIM "<server_name>[""user password""]::device:<path>"
218	$ vi*m :== "mcr VIM:VIM.EXE"
219
220As for example: >
221
222	$ define VIM "PLUTO::RF10:[UTIL.VIM]"
223	$ define VIM "PLUTO""ZAY mypass""::RF10:[UTIL.VIM]" ! if passwd required
224
225You can also use the $VIMRUNTIME logical to point to the proper version of Vim
226if you have installed more versions at the same time.  If $VIMRUNTIME is not
227defined Vim will borrow its value from the $VIM logical.  You can find more
228information about the $VIMRUNTIME logical by typing :help runtime as a Vim
229command.
230
231System administrators might want to set up a system wide Vim installation,
232then add to the SYS$STARTUP:SYLOGICALS.COM >
233
234	$ define/nolog/sys VIM device:<path>
235	$ define/nolog/sys TMP SYS$SCRATCH
236
237And to the SYS$STARTUP:SYLOGIN.COM >
238
239	$ vi*m :== mcr VIM:VIM.EXE
240	$ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40
241
242
243It will set up a normal Vim work environment for every user on the system.
244
245IMPORTANT: Vim on OpenVMS (and on other case insensitive system) command line
246parameters are assumed to be lowercase. In order to indicate that a command
247line parameter is uppercase "/" sign must be used.
248
249Examples:
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
255
256==============================================================================
257
2587. GUI mode questions					*vms-gui*
259
260OpenVMS is a real mainframe OS, therefore even if it has a GUI console, most
261of the users do not use a native X/Window environment during normal operation.
262It is not possible to start Vim in GUI mode "just like that".  But anyhow it
263is not too complicated either.
264
265First of all: you will need an executable that is built with the GUI enabled.
266
267Second: you need to have installed DECW/Motif on your VMS server, otherwise
268you will get errors that some shareable libraries are missing.
269
270Third: If you choose to run Vim with extra features such as GUI/GTK then you
271need a GTK installation too or at least a GTK runtime environment (LIBGTK
272can be downloaded from http://www.polarhome.com/vim/).
273
2741) If you are working on the VMS X/Motif console:
275   Start Vim with the command: >
276
277	$ mc device:<path>VIM.EXE -g
278<
279   or type :gui as a command to the Vim command prompt.  For more info :help
280   gui
281
2822) 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: >
284
285	$ set disp/create/node=<your IP address>/trans=<transport-name>
286<
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: >
290
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
294
295Note: you should define just one of these.
296For more information type $help set disp in VMS prompt.
297
2983) 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.
300
3014) 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.
306
307Please note, that executables without GUI are slightly faster during startup
308then with enabled GUI in character mode. Therefore, if you do not use GUI
309features, it is worth to choose non GUI executables.
310
311==============================================================================
312
3138. Useful notes						*vms-notes*
314
3158.1 Backspace/delete
3168.2 Filters
3178.3 VMS file version numbers
3188.4 Directory conversion
3198.5 Remote host invocation
3208.6 Terminal problems
3218.7 Hex-editing and other external tools
3228.8 Sourcing vimrc and gvimrc
3238.9 Printing from Vim
3248.10 Setting up the symbols
3258.11 diff and other GNU programs
3268.12 diff-mode
3278.13 Allow '$' in C keywords
3288.14 VIMTUTOR for beginners
3298.15 Slow start in console mode issue 
3308.16 Common VIM directory - different architectures 
331
3328.1 Backspace/delete
333
334There are backspace/delete key inconsistencies with VMS.
335:fixdel doesn't do the trick, but the solution is: >
336
337	:inoremap ^? ^H		" for terminal mode
338	:inoremap <Del> ^H	" for gui mode
339
340Read more in ch: 8.6 (Terminal problems).
341(Bruce Hunsaker <BNHunsaker@chq.byu.edu> Vim 5.3)
342
343
3448.2 Filters
345
346Vim supports filters, i.e., if you have a sort program that can handle
347input/output redirection like Unix (<infile >outfile), you could use >
348
349	:map \s 0!'aqsort<CR>
350
351(Charles E. Campbell, Jr. <cec@gryphon.gsfc.nasa.gov> Vim 5.4)
352
353
3548.3 VMS file version numbers
355
356Vim is saving files into a new file with the next higher file version
357number, try these settings. >
358
359	:set nobackup	     " does not create *.*_ backup files
360	:set nowritebackup   " does not have any purpose on VMS.  It's the
361			     " default.
362
363Recovery is working perfect as well from the default swap file.
364Read more with :help swapfile
365
366(Claude Marinier <ClaudeMarinier@xwavesolutions.com> Vim 5.5, Zoltan Arpadffy
367Vim 5.6)
368
369
3708.4 Directory conversion
371
372Vim will internally convert any unix-style paths and even mixed unix/VMS
373paths into VMS style paths.  Some typical conversions resemble:
374
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
384
385Note: You may use <,> brackets as well (device:<path>file.ext;version) as
386rf10:<user.zay.work>test.c;1
387
388(David Elins <delins@foliage.com>, Jerome Lauret
389<JLAURET@mail.chem.sunysb.edu> Vim 5.6 )
390
391
3928.5 Remote host invocation
393
394It is possible to use Vim as an internode editor.
3951. Edit some file from remote node: >
396
397	vi "<server>""username passwd""::<device>:<path><filename>;<version>"
398
399Example: >
400	vi "pluto""zay passwd""::RF10:<USER.ZAY.WORK>TEST.C;1"
401
402Note: syntax is very important, otherwise VMS will recognize more parameters
403instead of one (resulting with: file not found)
404
4052.  Set up Vim as your internode editor.  If Vim is not installed on your
406host, just set up your IP address, the full Vim path including the server name
407and run the command procedure below: >
408
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:
419
420Note: Never use it in a clustered environment (you do not need it), loading
421could be very-very slow, but even faster than a local Emacs. :-)
422
423(Zoltan Arpadffy, Vim 5.6)
424
425
4268.6 Terminal problems
427
428If your terminal name is not known to Vim and it is trying to find the default
429one you will get the following message during start-up:
430---
431Terminal 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
446defaulting to 'vt320'
447---
448The solution is to define default terminal name: >
449
450	$ ! unknown terminal name.  Let us use vt320 or ansi instead.
451	$ ! Note: it's case sensitive
452	$ define term "vt320"
453
454Terminals from VT100 to VT320 (as V300, VT220, VT200 ) do not need any extra
455keyboard mappings.  They should work perfect as they are, including arrows,
456Ins, Del buttons etc., except Backspace in GUI mode.  To solve it, add to
457.gvimrc: >
458
459	inoremap <Del> <BS>
460
461Vim will also recognize that they are fast terminals.
462
463If you have some annoying line jumping on the screen between windows add to
464your .vimrc file: >
465
466	set ttyfast	" set fast terminal
467
468Note: if you're using Vim on remote host or through very slow connection, it's
469recommended to avoid fast terminal option with: >
470
471	set nottyfast   " set terminal to slow mode
472
473(Zoltan Arpadffy, Vim 5.6)
474
475
4768.7 Hex-editing and other external tools
477
478A very important difference between OpenVMS and other systems is that VMS uses
479special commands to execute executables: >
480
481	RUN <path>filename
482	MCR <path>filename <parameters>
483
484OpenVMS users always have to be aware that the Vim command :! "just" drop them
485to DCL prompt.  This feature is possible to use without any problem with all
486DCL commands, but if we want to execute some program as XXD, CTAGS, JTAGS etc.
487we're running into trouble if we follow the Vim documentation (see: help
488xxd).
489
490Solution: Execute with the MC command and add the full path to the executable.
491Example: Instead of :%!xxd command use: >
492
493	:%!mc vim:xxd
494
495... or in general: >
496	:!mc <path>filename <parameters>
497
498Note: You can use XXD and CTAGS from GUI menu.
499
500To customize ctags it is possible to define the logical $CTAGS with standard
501parameters as: >
502
503	define/nolog CTAGS "--totals -o sys$login:tags"
504
505For additional information, please read :help tagsearch and CTAGS
506documentation at http://ctags.sourceforge.net/ctags.html.
507
508(Zoltan Arpadffy, Vim 5.6-70)
509
510
5118.8 Sourcing vimrc and gvimrc
512
513If you want to use your .vimrc and .gvimrc from other platforms (e.g. Windows)
514you can get in trouble if you ftp that file(s): VMS has different end-of-line
515indication.
516The symptom is that Vim is not sourcing your .vimrc/.gvimrc, even if you say:
517>
518	:so sys$login:.vimrc
519
520One trick is to compress (e.g. zip) the files on the other platform and
521uncompress it on VMS; if you have the same symptom, try to create the files
522with copy-paste (for this you need both op. systems reachable from one
523machine, e.g. an Xterm on Windows or telnet to Windows from VMS).
524
525(Sandor Kopanyi, <sandor.kopanyi@mailbox.hu> Vim 6.0a)
526
527
5288.9 Printing from Vim
529
530To be able to print from Vim (running in GUI mode) under VMS you have to set
531up $TMP logical which should point to some temporary directory and logical
532SYS$PRINT to your default print queue.
533Example: >
534
535	$define SYS$PRINT HP5ANSI
536
537You can print out whole buffer or just the marked area.
538More info under :help hardcopy
539
540(Zoltan Arpadffy, Vim 6.0c)
541
542
5438.10 Setting up the symbols
544
545When I use GVIM this way and press CTRL-Y in the parent terminal, gvim exits.
546I now use a different symbol that seems to work OK and fixes the problem.
547I suggest this instead: >
548
549	$ GV*IM:==SPAWN/NOWAIT/INPUT=NLA0: MCR VIM:VIM.EXE -G -GEOMETRY 80X40
550
551The /INPUT=NLA0: separates the standard input of the gvim process from the
552parent terminal, to block signals from the parent window.
553Without the -GEOMETRY, the GVIM window size will be minimal and the menu
554will be confused after a window-resize.
555
556(Carlo Mekenkamp, Coen Engelbarts, Vim 6.0ac)
557
558
5598.11 diff and other GNU programs
560
561From 6.0 diff functionality has been implemented, but OpenVMS does not use
562GNU/Unix like diff therefore built in diff does not work.
563There is a simple solution to solve this anomaly.  Install a Unix like diff
564and Vim will work perfect in diff mode too.  You just have to redefine your
565diff program as: >
566
567	define /nolog diff <GNU_PATH>diff.exe
568
569Another, more sophisticated solution is described below (8.12 diff-mode)
570There are some other programs as patch, make etc that may cause same problems.
571At www.polarhome.com is possible to download an GNU package for Alpha and VAX
572boxes that is meant to solve GNU problems on OpenVMS.
573( Zoltan Arpadffy, Vim 6.1)
574
575
5768.12 diff-mode
577
578Vim 6.0 and higher supports Vim diff-mode (See |new-diff-mode|, |diff-mode|
579and |08.7|).  This uses the external program 'diff' and expects a Unix-like
580output format from diff.  The standard VMS diff has a different output
581format.  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.
584
585You can download GNU diff from the VIM-VMS website, it is one of the GNU
586tools in http://www.polarhome.com/vim/files/gnu_tools.zip.  I suggest to
587unpack it in a separate directory "GNU" and create a logical GNU: that
588points to that directory, e.g: >
589
590   DEFINE GNU    <DISK>:[<DIRECTORY>.BIN.GNU]
591
592You may also want to define a symbol GDIFF, to use the GNU diff from the DCL
593prompt: >
594
595   GDIFF :==     $GNU:DIFF.EXE
596
597Now you need to tell Vim to use the new diff program.  Take the example
598settings from |diff-diffexpr| and change the call to the external diff
599program to the new diff on VMS.  Add this to your .vimrc file: >
600
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
617
618You can now use Vim in diff-mode, e.g. to compare two files in read-only
619mode: >
620
621    $ VIM -D/R <FILE1> <FILE2>
622
623You can also define new symbols for vimdiff, e.g.: >
624
625    $ VIMDIFF     :== 'VIM' -D/R
626    $ GVIMDIFF    :== 'GVIM' -D/R
627
628You can now compare files in 4 ways: >
629
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>
634
635( Coen Engelbarts, Vim 6.1)
636
637
6388.13 Allow '$' in C keywords
639
640DEC C uses many identifiers with '$' in them.  This is not allowed in ANSI C,
641and Vim recognises the '$' as the end of the identifier.  You can change this
642with the 'iskeyword' option.
643Add this command to your .vimrc file: >
644
645    autocmd FileType c,cpp,cs  set iskeyword+=$
646
647You can also create the file(s) $VIM/FTPLUGIN/C.VIM (and/or CPP.VIM and
648CS.VIM) and add this command: >
649
650	set iskeyword+=$
651
652Now word-based commands, e.g. the '*'-search-command and the CTRL-]
653tag-lookup, work on the whole identifier.  (Ctags on VMS also supports '$' in
654C keywords since ctags version 5.1.)
655
656( Coen Engelbarts, Vim 6.1)
657
6588.14 VIMTUTOR for beginners
659
660It exits VIMTUTOR.COM DCL script that can help Vim beginners to learn/make
661first steps with Vim on OpenVMS.  Depending of binary distribution you may
662start it with: >
663
664	@vim:vimtutor
665
666(Thomas.R.Wyant III, Vim 6.1)
667
6688.14 Slow start in console mode issue
669
670As GUI/GTK Vim works equally well in console mode, many administrators
671deploy those executables system wide.
672Unfortunately, on a remote slow connections GUI/GTK executables behave rather
673slow when user wants to run Vim just in the console mode - because of X environment detection timeout.
674
675Luckily, there is a simple solution for that. Administrators need to deploy
676both GUI/GTK build and just console build executables, like below: >
677
678    |- vim72
679    |----- doc
680    |----- syntax        
681       vimrc    (system rc files)
682       gvimrc
683       gvim.exe (the renamed GUI or GTK built vim.exe)      
684       vim.exe  (the console only executable) 
685
686Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: >
687
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
693
694
695Like this, users that do not have X environment and want to use Vim just in 
696console mode can avoid performance problems.
697
698(Zoltan Arpadffy, Vim 7.2)
699
7008.15 Common VIM directory - different architectures
701
702In a cluster that contains nodes with different architectures like below:
703
704$show cluster
705View 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+---------------------------------+
715
716It is convenient to have a common VIM directory but execute different
717executables. 
718There are more solutions for this problem:
719
720Solution 1.  All executables in the same directory with different names
721This is easily done with the following script that can be added
722to the login.com or sylogin.com: >
723
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
739
740Solution 2.  Different directories: >
741
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]
759
760A good example for this approach is the [GNU]gnu_tools.com script from
761GNU_TOOLS.ZIP package downloadable from http://www.polarhome.com/vim/
762
763(Zoltan Arpadffy, Vim 7.2)
764
765==============================================================================
766
7679. VMS related changes					*vms-changes*
768
769Version 7.3
770- CTAGS 5.8 included
771- VMS compile warnings fixed - floating-point overflow warning corrected on VAX
772- filepath completition corrected - too many chars were escaped in filename
773  and shell commands
774- the following plugins are included into VMS runtime:
775	genutils 2.4, multiselect 2.2, multvals 3.1, selectbuf 4.3,
776	bufexplorer 7.1.7, taglist 4.5
777- minor changes in vimrc (just in VMS runtime)
778- make_vms.mms - HUGE model is the default
779- [TESTDIR]make_vms.mms include as many tests possible
780- modify test30 and test54 for VMS
781- enable FLOAT feature in VMS port
782- os_vms.txt updated
783
784Version 7.2 (2008 Aug 9)
785- VCF files write corrected
786- CTAGS 5.7 included
787- corrected make_vms.mms (on VAX gave syntax error) 
788
789Version 7.1 (2007 Jun 15)
790- create TAGS file from menu 
791
792Version 7 (2006 May 8)
793- Improved low level char input (affects just console mode)
794- Fixed plugin bug
795- CTAGS 5.6 included
796
797Version 6.4 (2005 Oct 15)
798- GTKLIB and Vim build on IA64
799- colors in terminal mode
800- syntax highlighting in terminal mode
801- write problem fixed (extra CR)
802- ESC and ESC sequence recognition in terminal mode
803- make file changed to support new MMS version
804- env variable expansion in path corrected
805- printing problems corrected
806- help text added for case insensitive arguments
807
808Version 6.3 (2004 May 10)
809- Improved vms_read function
810- CTAGS v5.5.4 included
811- Documentation corrected and updated
812
813Version 6.2 (2003 May 7)
814- Corrected VMS system call results
815- Low level character input is rewritten
816- Correction in tag and quickfix handling
817- First GTK build
818- Make file changes
819    - GTK feature added
820    - Define for OLD_VMS
821    - OpenVMS version 6.2 or older
822- Documentation updated with GTK features
823- CTAGS v5.5 included
824- VMS VIM tutor created
825
826Version 6.1 (2002 Mar 25)
827- TCL init_tcl() problem fixed
828- CTAGS v5.4 included
829- GNU tools binaries for OpenVMS
830- Make file changes
831    - PERL, PYTHON and TCL support improved
832    - InstallVMS.txt has a detailed description HOWTO build
833- VMS/Unix file handling rewritten
834- Minor casting and bug fixes
835
836Version 6.0 (2001 Sep 28)
837- Unix and VMS code has been merged
838	- separated "really" VMS related code
839	- included all possible Unix functionality
840	- simplified or deleted the configuration files
841	- makefile MAKE_VMS.MMS reviewed
842- menu changes (fixed printing, CTAGS and XXD usage)
843- fixed variable RMS record format handling anomaly
844- corrected syntax, ftplugin etc files load
845- changed expand_wildcards and expandpath functions to work more general
846- created OS_VMS_FILTER.COM - DECC->VAXC pre-processor directive convert
847  script.
848- Improved code's VAXC and new DECC compilers compatibility
849- changed quickfix parameters:
850	- errormessage format to suite DECC
851	- search, make and other commands to suite VMS system
852- updated and renamed MMS make files for Vim and CTAGS.
853- CTAGS has been removed from source distribution of Vim but it will remain
854  in OpenVMS binary distributions.
855- simplified build/configuration procedure
856- created INSTALLvms.txt - detailed compiling instructions under VMS.
857- updated test scripts.
858
859Version 5.8 (2001 Jun 1)
860- OS_VMS.TXT updated with new features.
861- other minor fixes.
862- documentation updated
863- this version had been tested much more than any other OpenVMS version
864  earlier
865
866Version 5.7 (2000 Jun 24)
867- New CTAGS v5.0 in distribution
868- Documentation updated
869
870Version 5.6 (2000 Jan 17)
871- VMS filename related changes:
872	- version handling (open everything, save to new version)
873	- correct file extension matching for syntax (version problem)
874	- handle <,> characters and passwords in directory definition
875	- handle internode/remote invocation and editing with passwords
876	- OpenVMS files will be treated case insensitive from now
877	- corrected response of expand("%:.") etc path related functions
878	(in one word: VMS directory handling internally)
879- version command
880	- corrected (+,-) information data
881	- added compiler and OS version
882	- added user and host information
883	- resolving $VIM and $VIMRUNTIME logicals
884- VMS port is in MAX_FEAT (maximum features) club with Unix, Win32 and OS/2.
885	- enabled farsi, rightleft etc. features
886	- undo level raised up to 1000
887- Updated OS_VMS.MMS file.
888	- maximum features ON is default
889	- Vim is compilable with +perl, +python and +tcl features.
890	- improved MMK compatibility
891- Created MAKEFILE_VMS.MMS, makefile for testing Vim during development.
892- Defined DEC terminal VT320
893	- compatibility for VT3*0, VT2*0 and VT1*0 - ANSI terminals
894	  backwards, but not VT340 and newer with colour capability.
895	- VT320 is default terminal for OpenVMS
896	- these new terminals are also fast ttys (default for OpenVMS).
897	- allowed dec_mouse ttym
898- Updated files vimrc and gvimrc with VMS specific suggestions.
899- OS_VMS.TXT updated with new features.
900
901Version 5.5 (1999 Dec 3)
902- Popup menu line crash corrected.
903- Handle full file names with version numbers.
904- Directory handling (CD command etc.)
905- Corrected file name conversion VMS to Unix and v.v.
906- Correct response of expand wildcards
907- Recovery is working from this version under VMS as well.
908- Improved terminal and signal handing.
909- Improved OS_VMS.TXT
910
911Version 5.4 (1999 Sep 9)
912- Cut and paste mismatch corrected.
913- Motif directories during open and save are corrected.
914
915Version 5.3 (1998 Oct 12)
916- Minor changes in the code
917- Standard distribution with +GUI option
918
919Version 5.1 (1998 Apr 21)
920- Syntax and DEC C changes in the code
921- Fixing problems with the /doc subdirectory
922- Improve OS_VMS.MMS
923
924Version 4.5 (1996 Dec 16)
925- First VMS port by Henk Elbers <henk@xs4all.nl>
926
927==============================================================================
928
92910. Authors						*vms-authors*
930
931OpenVMS documentation and executables are maintained by:
932Zoltan Arpadffy <arpadffy@polarhome.com>
933OpenVMS Vim page: http://www.polarhome.com/vim/
934
935This document uses parts and remarks from earlier authors and contributors
936of OS_VMS.TXT:
937	Charles E. Campbell, Jr. <cec@gryphon.gsfc.nasa.gov>
938	Bruce Hunsaker <BNHunsaker@chq.byu.edu>
939	Sandor Kopanyi <sandor.kopanyi@mailbox.hu>
940
941 vim:tw=78:ts=8:ft=help:norl:
942