xref: /vim-8.2.3635/runtime/doc/os_vms.txt (revision 2346a637)
1*os_vms.txt*    For Vim version 8.2.  Last change: 2021 Jan 04
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 can download precompiled executables from:
42	http://www.polarhome.com/vim/
43	ftp://ftp.polarhome.com/pub/vim/
44
45To use the precompiled binary version, you need one of these archives:
46
47  vim-XX-exe-ia64-gui.zip       IA64 GUI/Motif executables
48  vim-XX-exe-ia64-gtk.zip       IA64 GUI/GTK executables
49  vim-XX-exe-ia64-term.zip      IA64 console executables
50  vim-XX-exe-axp-gui.zip	Alpha GUI/Motif executables
51  vim-XX-exe-axp-gtk.zip	Alpha GUI/GTK executables
52  vim-XX-exe-axp-term.zip       Alpha console executables
53  vim-XX-exe-vax-gui.zip	VAX GUI executables
54  vim-XX-exe-vax-term.zip       VAX console executables
55
56and of course (optional)
57  vim-XX-runtime.zip		runtime files
58
59The binary archives contain: vim.exe, ctags.exe, xxd.exe files.
60
61For GTK executables you will need GTKLIB that is available for
62Alpha and IA64 platform.
63
64==============================================================================
65
663. Compiling						*vms-compiling*
67
68See the file [.SRC]INSTALLVMS.TXT.
69
70==============================================================================
71
724. Problems						*vms-problems*
73
74The code has been tested under Open VMS 6.2 - 8.2 on Alpha, VAX and IA64
75platforms with the DEC C compiler. It should work without major problems.
76If your system does not have some include libraries you can tune up in
77OS_VMS_CONF.H file.
78
79If you decided to build Vim with +perl, +python, etc. options, first you need
80to download OpenVMS distributions of Perl and Python.  Build and deploy the
81libraries and change adequate lines in MAKE_VMS.MMS file.  There should not be
82a problem from Vim side.
83
84Also GTK, XPM library paths should be configured in MAKE_VMS.MMS
85
86Note: Under VAX it should work with the DEC C compiler without problems.  The
87VAX C compiler is not fully ANSI C compatible in pre-processor directives
88semantics, therefore you have to use a converter program that will do the lion
89part of the job.  For detailed instructions read file INSTALLvms.txt
90
91MMS_VIM.EXE is built together with VIM.EXE, but for XXD.EXE you should
92change to a subdirectory and build it separately.
93
94CTAGS is not part of the Vim source distribution anymore, however the OpenVMS
95specific source might contain CTAGS source files as described above.
96You can find more information about CTAGS on VMS at
97http://www.polarhome.com/ctags/
98
99Advanced users may try some acrobatics in FEATURE.H file as well.
100
101It is possible to compile with +xfontset +xim options too, but then you have
102to set up GUI fonts etc. correctly.  See :help xim from Vim command prompt.
103
104You may want to use GUI with GTK icons, then you have to download and install
105GTK for OpenVMS or at least runtime shareable images - LIBGTK from
106polarhome.com
107Post 7.2 Vim uses GTK2+ while the last GTK on OpenVMS is 1.2.10, therefore
108the GTK build is no longer available.
109
110For more advanced questions, please send your problem to Vim on VMS mailing
111list <[email protected]>
112More about the vim-vms list can be found at:
113http://www.polarhome.com/mailman/listinfo/vim-vms
114
115==============================================================================
116
1175. Deploy						*vms-deploy*
118
119Vim uses a special directory structure to hold the document and runtime files:
120
121   vim (or wherever)
122    |- tmp
123    |- vim57
124    |----- doc
125    |----- syntax
126    |- vim62
127    |----- doc
128    |----- syntax
129    |- vim64
130    |----- doc
131    |----- syntax
132    vimrc    (system rc files)
133    gvimrc
134
135Use: >
136
137	define/nolog VIM	device:[path.vim]
138	define/nolog VIMRUNTIME device:[path.vim.vim60]
139	define/nolog TMP	device:[path.tmp]
140
141To get vim.exe to find its document, filetype, and syntax files, and to
142specify a directory where temporary files will be located.  Copy the "runtime"
143subdirectory of the Vim distribution to vimruntime.
144
145Logicals $VIMRUNTIME and $TMP are optional.
146
147If $VIMRUNTIME is not set, Vim will guess and try to set up automatically.
148Read more about it at :help runtime
149
150If $TMP is not set, you will not be able to use some functions as CTAGS,
151XXD, printing etc. that use temporary directory for normal operation.
152The $TMP directory should be readable and writable by the user(s).
153The easiest way to set up $TMP is to define a logical: >
154
155	define/nolog TMP SYS$SCRATCH
156or as: >
157	define/nolog TMP SYS$LOGIN
158
159==============================================================================
160
1616. Practical usage					*vms-usage*
162
163Usually, you want to run just one version of Vim on your system, therefore
164it is enough to dedicate one directory for Vim.
165Copy the whole Vim runtime directory structure to the deployment position.
166Add the following lines to your LOGIN.COM (in SYS$LOGIN directory).
167Set up the logical $VIM as: >
168
169	$ define VIM device:<path>
170
171Set up some symbols: >
172
173	$ ! vi starts Vim in chr. mode.
174	$ vi*m  :== mcr VIM:VIM.EXE
175
176	$ !gvi starts Vim in GUI mode.
177	$ gv*im :== spawn/nowait mcr VIM:VIM.EXE -g
178
179Please, check the notes for customization and configuration of symbols.
180
181You may want to create .vimrc and .gvimrc files in your home directory
182(SYS$LOGIN) to overwrite default settings.
183
184The easiest way is just rename example files.  You may leave the menu file
185(MENU.VIM) and files vimrc and gvimrc in the original $VIM directory.  It will
186be the default setup for all users, and for users it is enough to just have
187their own additions or resetting in their home directory in files .vimrc and
188.gvimrc.  It should work without problems.
189
190Note: Remember, system rc files (default for all users) don't have a leading
191".".  So, system rc files are: >
192
193	$VIM:vimrc
194	$VIM:gvimrc
195	$VIM:menu.vim
196
197and user customized rc files are: >
198
199	sys$login:.vimrc
200	sys$login:.gvimrc
201
202You can check that everything is at the right place with the :version command.
203
204Example LOGIN.COM: >
205
206 	$ define/nolog VIM DKA0:[UTIL.VIM81]
207	$ vi*m :== mcr VIM:VIM.EXE
208	$ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40
209	$ set disp/create/node=192.168.10.202/trans=tcpip
210
211Note: This set-up should be enough, if you are working on a standalone server or
212clustered environment, but if you want to use Vim as an internode editor in
213DECNET environment, it will satisfy as well.
214You just have to define the "whole" path: >
215
216	$ define VIM "<server_name>[""user password""]::device:<path>"
217	$ vi*m :== "mcr VIM:VIM.EXE"
218
219For example: >
220
221	$ define VIM "PLUTO::RF10:[UTIL.VIM]"
222	$ define VIM "PLUTO""ZAY mypass""::RF10:[UTIL.VIM]" ! if passwd required
223
224You can also use the $VIMRUNTIME logical to point to the proper version of Vim
225if you have installed more versions at the same time.  If $VIMRUNTIME is not
226defined Vim will borrow its value from the $VIM logical.  You can find more
227information about the $VIMRUNTIME logical by typing :help runtime as a Vim
228command.
229
230System administrators might want to set up a system wide Vim installation,
231then add to the SYS$STARTUP:SYLOGICALS.COM >
232
233	$ define/nolog/sys VIM device:<path>
234	$ define/nolog/sys TMP SYS$SCRATCH
235
236And to the SYS$STARTUP:SYLOGIN.COM >
237
238	$ vi*m :== mcr VIM:VIM.EXE
239	$ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40
240
241
242It will set up a normal Vim work environment for every user on the system.
243
244IMPORTANT: Vim on OpenVMS (and on other case insensitive system) command line
245parameters are assumed to be lowercase. In order to indicate that a command
246line parameter is uppercase "/" sign must be used.
247
248Examples:
249  >
250	vim -R  filename  ! means: -r List swap files and exit
251	vim -/r filename  ! means: -R Readonly mode (like "view")
252	vim -u	<vimrc>   ! means: -u Use <vimrc> instead of any .vimrc
253	vim -/u <gvimrc>  ! means: -U Use <gvimrc> instead of any .gvimrc
254
255==============================================================================
256
2577. GUI mode questions					*vms-gui*
258
259OpenVMS is a real mainframe OS, therefore even if it has a GUI console, most
260of the users do not use a native X/Window environment during normal operation.
261It is not possible to start Vim in GUI mode "just like that".  But anyhow it
262is not too complicated either.
263
264First of all: you will need an executable that is built with the GUI enabled.
265
266Second: you need to have installed DECW/Motif on your VMS server, otherwise
267you will get errors that some shareable libraries are missing.
268
269Third: If you choose to run Vim with extra features such as GUI/GTK then you
270need a GTK installation too or at least a GTK runtime environment (LIBGTK
271can be downloaded from http://www.polarhome.com/vim/).
272
2731) If you are working on the VMS X/Motif console:
274   Start Vim with the command: >
275
276	$ mc device:<path>VIM.EXE -g
277<
278   or type :gui as a command to the Vim command prompt.  For more info :help
279   gui
280
2812) If you are working on some other X/Window environment like Unix or a remote
282   X VMS console.  Set up display to your host with: >
283
284	$ set disp/create/node=<your IP address>/trans=<transport-name>
285<
286   and start Vim as in point 1.  You can find more help in VMS documentation or
287   type: help set disp in VMS prompt.
288   Examples: >
289
290	$ set disp/create/node=192.168.5.159		 ! default trans is DECnet
291	$ set disp/create/node=192.168.5.159/trans=tcpip ! TCP/IP network
292	$ set disp/create/node=192.168.5.159/trans=local ! display on the same node
293
294Note: you should define just one of these.
295For more information type $help set disp in VMS prompt.
296
2973) Another elegant solution is XDM if you have installed on OpenVMS box.
298   It is possible to work from XDM client as from GUI console.
299
3004) If you are working on MS-Windows or some other non X/Window environment
301   you need to set up one X server and run Vim as in point 2.
302   For MS-Windows there are available free X servers as MIX, Omni X etc.,
303   as well as excellent commercial products as eXcursion or ReflectionX with
304   built-in DEC support.
305
306Please note, that executables without GUI are slightly faster during startup
307than with enabled GUI in character mode. Therefore, if you do not use GUI
308features, it is worth to choose non GUI executables.
309
310==============================================================================
311
3128. Useful notes						*vms-notes*
313
3148.1 Backspace/delete
3158.2 Filters
3168.3 VMS file version numbers
3178.4 Directory conversion
3188.5 Remote host invocation
3198.6 Terminal problems
3208.7 Hex-editing and other external tools
3218.8 Sourcing vimrc and gvimrc
3228.9 Printing from Vim
3238.10 Setting up the symbols
3248.11 diff and other GNU programs
3258.12 diff-mode
3268.13 Allow '$' in C keywords
3278.14 VIMTUTOR for beginners
3288.15 Slow start in console mode issue
3298.16 Common VIM directory - different architectures
330
3318.1 Backspace/delete
332
333There are backspace/delete key inconsistencies with VMS.
334:fixdel doesn't do the trick, but the solution is: >
335
336	:inoremap ^? ^H		" for terminal mode
337	:inoremap <Del> ^H	" for gui mode
338
339Read more in ch: 8.6 (Terminal problems).
340(Bruce Hunsaker <[email protected]> Vim 5.3)
341
342
3438.2 Filters
344
345Vim supports filters, i.e., if you have a sort program that can handle
346input/output redirection like Unix (<infile >outfile), you could use >
347
348	:map \s 0!'aqsort<CR>
349
350(Charles E. Campbell, Jr. <[email protected]> Vim 5.4)
351
352
3538.3 VMS file version numbers
354
355Vim is saving files into a new file with the next higher file version
356number, try these settings. >
357
358	:set nobackup	     " does not create *.*_ backup files
359	:set nowritebackup   " does not have any purpose on VMS.  It's the
360			     " default.
361
362Recovery is working perfectly as well from the default swap file.
363Read more with :help swapfile
364
365(Claude Marinier <[email protected]> Vim 5.5, Zoltan Arpadffy
366Vim 5.6)
367
368
3698.4 Directory conversion
370
371Vim will internally convert any unix-style paths and even mixed unix/VMS
372paths into VMS style paths.  Some typical conversions resemble:
373
374	/abc/def/ghi		-> abc:[def]ghi.
375	/abc/def/ghi.j		-> abc:[def]ghi.j
376	/abc/def/ghi.j;2	-> abc:[def]ghi.j;2
377	/abc/def/ghi/jkl/mno	-> abc:[def.ghi.jkl]mno.
378	abc:[def.ghi]jkl/mno	-> abc:[def.ghi.jkl]mno.
379	  ./			-> current directory
380	  ../			-> relative parent directory
381	  [.def.ghi]		-> relative child directory
382	   ./def/ghi		-> relative child directory
383
384Note: You may use <,> brackets as well (device:<path>file.ext;version) as
385rf10:<user.zay.work>test.c;1
386
387(David Elins <[email protected]>, Jerome Lauret
388<[email protected]> Vim 5.6)
389
390
3918.5 Remote host invocation
392
393It is possible to use Vim as an internode editor.
3941. Edit some file from remote node: >
395
396	vi "<server>""username passwd""::<device>:<path><filename>;<version>"
397
398Example: >
399	vi "pluto""zay passwd""::RF10:<USER.ZAY.WORK>TEST.C;1"
400
401Note: syntax is very important, otherwise VMS will recognize more parameters
402instead of one (resulting with: file not found)
403
4042.  Set up Vim as your internode editor.  If Vim is not installed on your
405host, just set up your IP address, the full Vim path including the server name
406and run the command procedure below: >
407
408	$ if (p1 .eqs. "") .OR. (p2 .eqs. "") then goto usage
409	$ set disp/create/node=<your_IP_here>/trans=tcpip
410	$ define "VIM "<vim_server>""''p1' ''p2'""::<device>:<vim_path>"
411	$  vi*m :== "mcr VIM:VIM.EXE"
412	$ gv*im :== "spawn/nowait mcr VIM:VIM.EXE -g"
413	$ goto end
414	$ usage:
415	$ write sys$output " Please enter username and password as a parameter."
416	$ write sys$output " Example: @SETVIM.COM username passwd"
417	$ end:
418
419Note: Never use it in a clustered environment (you do not need it), loading
420could be very-very slow, but even faster than a local Emacs. :-)
421
422(Zoltan Arpadffy, Vim 5.6)
423
424
4258.6 Terminal problems
426
427If your terminal name is not known to Vim and it is trying to find the default
428one you will get the following message during start-up:
429---
430Terminal entry not found in termcap
431'unknown-terminal' not known.  Available built-in terminals are:
432    builtin_gui
433    builtin_riscos
434    builtin_amiga
435    builtin_ansi
436    builtin_vt320
437    builtin_vt52
438    builtin_pcansi
439    builtin_win32
440    builtin_xterm
441    builtin_iris-ansi
442    builtin_debug
443    builtin_dumb
444defaulting to 'vt320'
445---
446The solution is to define the default terminal name: >
447
448	$ ! unknown terminal name.  Let us use vt320 or ansi instead.
449	$ ! Note: it's case sensitive
450	$ define term "vt320"
451
452Terminals from VT100 to VT320 (as V300, VT220, VT200) do not need any extra
453keyboard mappings.  They should work perfectly as they are, including arrows,
454Ins, Del buttons etc., except Backspace in GUI mode.  To solve it, add to
455.gvimrc: >
456
457	inoremap <Del> <BS>
458
459Vim will also recognize that they are fast terminals.
460
461If you have some annoying line jumping on the screen between windows add to
462your .vimrc file: >
463
464	set ttyfast	" set fast terminal
465
466Note: if you're using Vim on remote host or through a very slow connection, it's
467recommended to avoid the fast terminal option with: >
468
469	set nottyfast   " set terminal to slow mode
470
471(Zoltan Arpadffy, Vim 5.6)
472
473
4748.7 Hex-editing and other external tools
475
476A very important difference between OpenVMS and other systems is that VMS uses
477special commands to execute executables: >
478
479	RUN <path>filename
480	MCR <path>filename <parameters>
481
482OpenVMS users always have to be aware that the Vim command :! "just" drop them
483to DCL prompt.  This feature is possible to use without any problem with all
484DCL commands, but if we want to execute some programs such as XXD, CTAGS, JTAGS,
485etc.  we're running into trouble if we follow the Vim documentation (see: help
486xxd).
487
488Solution: Execute with the MC command and add the full path to the executable.
489Example: Instead of :%!xxd command use: >
490
491	:%!mc vim:xxd
492
493... or in general: >
494	:!mc <path>filename <parameters>
495
496Note: You can use XXD and CTAGS from GUI menu.
497
498To customize ctags it is possible to define the logical $CTAGS with standard
499parameters as: >
500
501	define/nolog CTAGS "--totals -o sys$login:tags"
502
503For additional information, please read :help tagsearch and CTAGS
504documentation at http://ctags.sourceforge.net/ctags.html.
505
506(Zoltan Arpadffy, Vim 5.6-70)
507
508
5098.8 Sourcing vimrc and gvimrc
510
511If you want to use your .vimrc and .gvimrc from other platforms (e.g. Windows)
512you can get in trouble if you ftp that file(s): VMS has different end-of-line
513indication.
514The symptom is that Vim is not sourcing your .vimrc/.gvimrc, even if you say:
515>
516	:so sys$login:.vimrc
517
518One trick is to compress (e.g. zip) the files on the other platform and
519uncompress it on VMS; if you have the same symptom, try to create the files
520with copy-paste (for this you need both op. systems reachable from one
521machine, e.g. an Xterm on Windows or telnet to Windows from VMS).
522
523(Sandor Kopanyi, <[email protected]> Vim 6.0a)
524
525
5268.9 Printing from Vim
527
528To be able to print from Vim (running in GUI mode) under VMS you have to set
529up $TMP logical which should point to some temporary directory and logical
530SYS$PRINT to your default print queue.
531Example: >
532
533	$define SYS$PRINT HP5ANSI
534
535You can print out the whole buffer or just the marked area.
536More info under :help hardcopy
537
538(Zoltan Arpadffy, Vim 6.0c)
539
540
5418.10 Setting up the symbols
542
543When I use gvim this way and press CTRL-Y in the parent terminal, gvim exits.
544I now use a different symbol that seems to work OK and fixes the problem.
545I suggest this instead: >
546
547	$ GV*IM:==SPAWN/NOWAIT/INPUT=NLA0: MCR VIM:VIM.EXE -G -GEOMETRY 80X40
548
549The /INPUT=NLA0: separates the standard input of the gvim process from the
550parent terminal, to block signals from the parent window.
551Without the -GEOMETRY, the gvim window size will be minimal and the menu
552will be confused after a window-resize.
553
554(Carlo Mekenkamp, Coen Engelbarts, Vim 6.0ac)
555
556
5578.11 diff and other GNU programs
558
559From 6.0 diff functionality has been implemented, but OpenVMS does not use
560GNU/Unix like diff therefore built in diff does not work.
561There is a simple solution to solve this anomaly.  Install a Unix like diff
562and Vim will work perfectly in diff mode too.  You just have to redefine your
563diff program as: >
564
565	define /nolog diff <GNU_PATH>diff.exe
566
567Another, more sophisticated solution is described below (8.12 diff-mode)
568There are other programs such as patch, make etc that may cause the same
569problems.  At www.polarhome.com is possible to download an GNU package for
570Alpha and VAX boxes that is meant to solve GNU problems on OpenVMS.
571(Zoltan Arpadffy, Vim 6.1)
572
573
5748.12 diff-mode
575
576Vim 6.0 and higher supports Vim diff-mode (See |new-diff-mode|, |diff-mode|
577and |08.7|).  This uses the external program 'diff' and expects a Unix-like
578output format from diff.  The standard VMS diff has a different output
579format.  To use Vim on VMS in diff-mode, you need to:
580    1 Install a Unix-like diff program, e.g. GNU diff
581    2 Tell Vim to use the Unix-like diff for diff-mode.
582
583You can download GNU diff from the VIM-VMS website, it is one of the GNU
584tools in http://www.polarhome.com/vim/files/gnu_tools.zip.  I suggest to
585unpack it in a separate directory "GNU" and create a logical GNU: that
586points to that directory, e.g: >
587
588   DEFINE GNU    <DISK>:[<DIRECTORY>.BIN.GNU]
589
590You may also want to define a symbol GDIFF, to use the GNU diff from the DCL
591prompt: >
592
593   GDIFF :==     $GNU:DIFF.EXE
594
595Now you need to tell Vim to use the new diff program.  Take the example
596settings from |diff-diffexpr| and change the call to the external diff
597program to the new diff on VMS.  Add this to your .vimrc file: >
598
599     " Set up vimdiff options
600       if v:version >= 600
601	" Use GNU diff on VMS
602	set diffexpr=MyDiff()
603	function MyDiff()
604	   let opt = ""
605	   if &diffopt =~ "icase"
606	     let opt = opt . "-i "
607	   endif
608	   if &diffopt =~ "iwhite"
609	     let opt = opt . "-b "
610	   endif
611	   silent execute "!mc GNU:diff.exe -a " . opt . v:fname_in . " " .  v:fname_new .
612		\  " > " . v:fname_out
613	endfunction
614      endif
615
616You can now use Vim in diff-mode, e.g. to compare two files in read-only
617mode: >
618
619    $ VIM -D/R <FILE1> <FILE2>
620
621You can also define new symbols for vimdiff, e.g.: >
622
623    $ VIMDIFF     :== 'VIM' -D/R
624    $ GVIMDIFF    :== 'GVIM' -D/R
625
626You can now compare files in 4 ways: >
627
628    1. VMS  diff:  $ DIFF     <FILE1> <FILE2>
629    2. GNU  diff:  $ GDIFF    <FILE1> <FILE2>
630    3. VIM  diff:  $ VIMDIFF  <FILE1> <FILE2>
631    4. GVIM diff:  $ GVIMDIFF <FILE1> <FILE2>
632
633(Coen Engelbarts, Vim 6.1)
634
635
6368.13 Allow '$' in C keywords
637
638DEC C uses many identifiers with '$' in them.  This is not allowed in ANSI C,
639and Vim recognises the '$' as the end of the identifier.  You can change this
640with the 'iskeyword' option.
641Add this command to your .vimrc file: >
642
643    autocmd FileType c,cpp,cs  set iskeyword+=$
644
645You can also create the file(s) $VIM/FTPLUGIN/C.VIM (and/or CPP.VIM and
646CS.VIM) and add this command: >
647
648	set iskeyword+=$
649
650Now word-based commands, e.g. the '*'-search-command and the CTRL-]
651tag-lookup, work on the whole identifier.  (Ctags on VMS also supports '$' in
652C keywords since ctags version 5.1.)
653
654(Coen Engelbarts, Vim 6.1)
655
6568.14 VIMTUTOR for beginners
657
658The VIMTUTOR.COM DCL script can help Vim beginners to learn/make their first
659steps with Vim on OpenVMS.  Depending of binary distribution you may start it
660with: >
661
662	@vim:vimtutor
663
664(Thomas.R.Wyant III, Vim 6.1)
665
6668.16 Slow start in console mode issue
667
668As GUI/GTK Vim works equally well in console mode, many administrators
669deploy those executables system wide.
670Unfortunately, on a remote slow connections GUI/GTK executables behave rather
671slow when user wants to run Vim just in the console mode - because of X
672environment detection timeout.
673
674Luckily, there is a simple solution for that. Administrators need to deploy
675both GUI/GTK build and just console build executables, like below: >
676
677    |- vim73
678    |----- doc
679    |----- syntax
680       vimrc    (system rc files)
681       gvimrc
682       gvim.exe (the renamed GUI or GTK built vim.exe)
683       vim.exe  (the console only executable)
684
685Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: >
686
687	$ define/nolog VIM RF10:[UTIL.VIM73] ! where you VIM directory is
688	$ vi*m  :== mcr VIM:VIM.EXE
689	$ gvi*m :== mcr VIM:GVIM.EXE
690	$ ! or you can try to spawn with
691	$ gv*im :== spawn/nowait/input=NLA0 mcr VIM:GVIM.EXE -g -GEOMETRY 80x40
692
693
694Like this, users that do not have X environment and want to use Vim just in
695console mode can avoid performance problems.
696
697(Zoltan Arpadffy, Vim 7.2)
698
6998.15 Common VIM directory - different architectures
700
701In a cluster that contains nodes with different architectures like below:
702
703$show cluster
704View of Cluster from system ID 11655  node: TOR                                                                     18-AUG-2008 11:58:31
705+---------------------------------+
706|        SYSTEMS        | MEMBERS |
707+-----------------------+---------|
708|  NODE  |   SOFTWARE   |  STATUS |
709+--------+--------------+---------|
710| TOR    | VMS V7.3-2   | MEMBER  |
711| TITAN2 | VMS V8.3     | MEMBER  |
712| ODIN   | VMS V7.3-2   | MEMBER  |
713+---------------------------------+
714
715It is convenient to have a common VIM directory but execute different
716executables.
717There are several solutions for this problem:
718
719Solution 1.  All executables in the same directory with different names
720This is easily done with the following script that can be added
721to the login.com or sylogin.com: >
722
723	$ if f$getsyi("NODE_HWTYPE") .eqs. "VAX"
724	$ then
725	$       say "VAX platform"
726	$       vi*m:== mcr vim:VIM.EXE_VAX
727	$ endif
728	$ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH"
729	$ then
730	$       say "ALPHA platform"
731	$       vi*m :== mcr vim:VIM.EXE_AXP
732	$ endif
733	$ if f$getsyi("ARCH_NAME") .eqs. "IA64"
734	$ then
735	$      say "IA64 platform"
736	$      vi*m :== mcr vim:VIM.EXE_IA64
737	$ endif
738
739Solution 2.  Different directories: >
740
741	$ if f$getsyi("NODE_HWTYPE") .eqs. "VAX"
742	$ then
743	$       say "VAX platform"
744	$       define/nolog VIM RF10:[UTIL.VAX_EXE] ! VAX executables
745	$ endif
746	$ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH"
747	$ then
748	$       say "ALPHA platform"
749	$       define/nolog VIM RF10:[UTIL.AXP_EXE] ! AXP executables
750	$ endif
751	$ if f$getsyi("ARCH_NAME") .eqs. "IA64"
752	$ then
753	$      say "IA64 platform"
754	$      define/nolog VIM RF10:[UTIL.IA64_EXE] ! IA64 executables
755	$ endif
756        $! VIMRUNTIME must be defined in order to find runtime files
757	$ define/nolog VIMRUNTIME RF10:[UTIL.VIM73]
758
759A good example for this approach is the [GNU]gnu_tools.com script from
760GNU_TOOLS.ZIP package downloadable from http://www.polarhome.com/vim/
761
762(Zoltan Arpadffy, Vim 7.2)
763
764==============================================================================
765
7669. VMS related changes					*vms-changes*
767
768Version 8.2
769- make all changes needed for clean compile build of v8.2 on VMS on all platforms
770- fix the call mkdir bug ([email protected])
771- test on VSI OpenVMS Alpha and Itanium platforms
772- added LUA support
773- added XPM support - Motif GUI with toolbar on all platforms
774- XPM v3.4.11 libraries for IA64, AXP and VAX are added
775- start integrating the new test scripts
776
777Version 8.1
778- make necessary changes to build v8.1 on VMS
779
780Version 8.0
781- solve the 100% cpu usage issue while waiting for a keystroke
782- correct the VMS warnings and errors around handling the INFINITY (used in json.c)
783- minor VMS port related changes
784- correct the make_vms.mms file for 8.0
785- fix [.TESTDIR]make_vms.mms for 8.0
786
787Version 7.4
788- Undo: VMS can not handle more than one dot in the filenames use "dir/name" -> "dir/_un_name"
789  add _un_ at the beginning to keep the extension
790- correct swap file name wildcard handling
791- handle iconv usage correctly
792- do not optimize on vax - otherwise it hangs compiling crypto files
793- fileio.c fix the comment
794- correct RealWaitForChar
795- after 7.4-119 use different functions lib$cvtf_to_internal_time because Alpha and VAX have
796  G_FLOAT but IA64 uses IEEE float otherwise Vim crashes
797- guard against crashes that are caused by mixed filenames
798- [TESTDIR]make_vms.mms changed to see the output files
799- Improve tests, update known issues
800- minor compiler warnings fixed
801- CTAGS 5.8 +regex included
802
803Version 7.3
804- CTAGS 5.8 included
805- VMS compile warnings fixed - floating-point overflow warning corrected on VAX
806- filepath completion corrected - too many chars were escaped in filename
807  and shell commands
808- the following plugins are included into VMS runtime:
809	genutils 2.4, multiselect 2.2, multvals 3.1, selectbuf 4.3,
810	bufexplorer 7.1.7, taglist 4.5
811- minor changes in vimrc (just in VMS runtime)
812- make_vms.mms - HUGE model is the default
813- [TESTDIR]make_vms.mms include as many tests possible
814- modify test30 and test54 for VMS
815- enable FLOAT feature in VMS port
816- os_vms.txt updated
817
818Version 7.2 (2008 Aug 9)
819- VCF files write corrected
820- CTAGS 5.7 included
821- corrected make_vms.mms (on VAX gave syntax error)
822
823Version 7.1 (2007 Jun 15)
824- create TAGS file from menu
825
826Version 7 (2006 May 8)
827- Improved low level char input (affects just console mode)
828- Fixed plugin bug
829- CTAGS 5.6 included
830
831Version 6.4 (2005 Oct 15)
832- GTKLIB and Vim build on IA64
833- colors in terminal mode
834- syntax highlighting in terminal mode
835- write problem fixed (extra CR)
836- ESC and ESC sequence recognition in terminal mode
837- make file changed to support new MMS version
838- env variable expansion in path corrected
839- printing problems corrected
840- help text added for case insensitive arguments
841
842Version 6.3 (2004 May 10)
843- Improved vms_read function
844- CTAGS v5.5.4 included
845- Documentation corrected and updated
846
847Version 6.2 (2003 May 7)
848- Corrected VMS system call results
849- Low level character input is rewritten
850- Correction in tag and quickfix handling
851- First GTK build
852- Make file changes
853    - GTK feature added
854    - Define for OLD_VMS
855    - OpenVMS version 6.2 or older
856- Documentation updated with GTK features
857- CTAGS v5.5 included
858- VMS VIM tutor created
859
860Version 6.1 (2002 Mar 25)
861- TCL init_tcl() problem fixed
862- CTAGS v5.4 included
863- GNU tools binaries for OpenVMS
864- Make file changes
865    - PERL, PYTHON and TCL support improved
866    - InstallVMS.txt has a detailed description HOWTO build
867- VMS/Unix file handling rewritten
868- Minor casting and bug fixes
869
870Version 6.0 (2001 Sep 28)
871- Unix and VMS code has been merged
872	- separated "really" VMS related code
873	- included all possible Unix functionality
874	- simplified or deleted the configuration files
875	- makefile MAKE_VMS.MMS reviewed
876- menu changes (fixed printing, CTAGS and XXD usage)
877- fixed variable RMS record format handling anomaly
878- corrected syntax, ftplugin etc files load
879- changed expand_wildcards and expandpath functions to work more general
880- created OS_VMS_FILTER.COM - DECC->VAXC pre-processor directive convert
881  script.
882- Improved code's VAXC and new DECC compilers compatibility
883- changed quickfix parameters:
884	- errormessage format to suite DECC
885	- search, make and other commands to suite VMS system
886- updated and renamed MMS make files for Vim and CTAGS.
887- CTAGS has been removed from source distribution of Vim but it will remain
888  in OpenVMS binary distributions.
889- simplified build/configuration procedure
890- created INSTALLvms.txt - detailed compiling instructions under VMS.
891- updated test scripts.
892
893Version 5.8 (2001 Jun 1)
894- OS_VMS.TXT updated with new features.
895- other minor fixes.
896- documentation updated
897- this version had been tested much more than any other OpenVMS version
898  earlier
899
900Version 5.7 (2000 Jun 24)
901- New CTAGS v5.0 in distribution
902- Documentation updated
903
904Version 5.6 (2000 Jan 17)
905- VMS filename related changes:
906	- version handling (open everything, save to new version)
907	- correct file extension matching for syntax (version problem)
908	- handle <,> characters and passwords in directory definition
909	- handle internode/remote invocation and editing with passwords
910	- OpenVMS files will be treated case insensitive from now
911	- corrected response of expand("%:.") etc path related functions
912	(in one word: VMS directory handling internally)
913- version command
914	- corrected (+,-) information data
915	- added compiler and OS version
916	- added user and host information
917	- resolving $VIM and $VIMRUNTIME logicals
918- VMS port is in MAX_FEAT (maximum features) club with Unix, Win32 and OS/2.
919	- enabled farsi, rightleft etc. features
920	- undo level raised up to 1000
921- Updated OS_VMS.MMS file.
922	- maximum features ON is default
923	- Vim is compilable with +perl, +python and +tcl features.
924	- improved MMK compatibility
925- Created MAKEFILE_VMS.MMS, makefile for testing Vim during development.
926- Defined DEC terminal VT320
927	- compatibility for VT3*0, VT2*0 and VT1*0 - ANSI terminals
928	  backwards, but not VT340 and newer with colour capability.
929	- VT320 is default terminal for OpenVMS
930	- these new terminals are also fast ttys (default for OpenVMS).
931	- allowed dec_mouse ttym
932- Updated files vimrc and gvimrc with VMS specific suggestions.
933- OS_VMS.TXT updated with new features.
934
935Version 5.5 (1999 Dec 3)
936- Popup menu line crash corrected.
937- Handle full file names with version numbers.
938- Directory handling (CD command etc.)
939- Corrected file name conversion VMS to Unix and v.v.
940- Correct response of expand wildcards
941- Recovery is working from this version under VMS as well.
942- Improved terminal and signal handing.
943- Improved OS_VMS.TXT
944
945Version 5.4 (1999 Sep 9)
946- Cut and paste mismatch corrected.
947- Motif directories during open and save are corrected.
948
949Version 5.3 (1998 Oct 12)
950- Minor changes in the code
951- Standard distribution with +GUI option
952
953Version 5.1 (1998 Apr 21)
954- Syntax and DEC C changes in the code
955- Fixing problems with the /doc subdirectory
956- Improve OS_VMS.MMS
957
958Version 4.5 (1996 Dec 16)
959- First VMS port by Henk Elbers <[email protected]>
960
961==============================================================================
962
96310. Authors						*vms-authors*
964
965OpenVMS documentation and executables are maintained by:
966Zoltan Arpadffy <[email protected]>
967OpenVMS Vim page: http://www.polarhome.com/vim/
968
969This document uses parts and remarks from earlier authors and contributors
970of OS_VMS.TXT:
971	Charles E. Campbell, Jr. <[email protected]>
972	Bruce Hunsaker <[email protected]>
973	Sandor Kopanyi <[email protected]>
974
975 vim:tw=78:ts=8:noet:ft=help:norl:
976