diff options
Diffstat (limited to 'runtime/doc/os_vms.txt')
-rw-r--r-- | runtime/doc/os_vms.txt | 987 |
1 files changed, 987 insertions, 0 deletions
diff --git a/runtime/doc/os_vms.txt b/runtime/doc/os_vms.txt new file mode 100644 index 0000000..ff43548 --- /dev/null +++ b/runtime/doc/os_vms.txt @@ -0,0 +1,987 @@ +*os_vms.txt* For Vim version 9.1. Last change: 2023 Dec 14 + + + VIM REFERENCE MANUAL + + + *VMS* *vms* +This file contains the particularities for the VMS version of Vim. +You can reach this information file by typing :help VMS in Vim command +prompt. + + 1. Getting started |vms-started| + 2. Download files |vms-download| + 3. Compiling |vms-compiling| + 4. Problems |vms-problems| + 5. Deploy |vms-deploy| + 6. Practical usage |vms-usage| + 7. GUI mode questions |vms-gui| + 8. Useful notes |vms-notes| + 9. VMS related changes |vms-changes| +10. Authors |vms-authors| + +============================================================================== + +1. Getting started *vms-started* + +Vim (Vi IMproved) is a Vi-compatible text editor that runs on nearly every +operating system known to humanity. Now use Vim on OpenVMS too, in character +or X/Motif environment. It is fully featured and absolutely compatible with +Vim on other operating systems. + +============================================================================== + +2. Download files *vms-download* + +You can download the Vim source code by ftp from the official Vim site: + ftp://ftp.vim.org/pub/vim/ +Or use one of the mirrors: + ftp://ftp.vim.org/pub/vim/MIRRORS + +You can download precompiled executables from: + http://www.polarhome.com/vim/ + ftp://ftp.polarhome.com/pub/vim/ + +To use the precompiled binary version, you need one of these archives: + + vim-XX-exe-x86-gui.zip X86_64 GUI/Motif executables + vim-XX-exe-x86-term.zip X86_64 console executables + vim-XX-exe-ia64-gui.zip IA64 GUI/Motif executables + vim-XX-exe-ia64-gtk.zip IA64 GUI/GTK executables + vim-XX-exe-ia64-term.zip IA64 console executables + vim-XX-exe-axp-gui.zip Alpha GUI/Motif executables + vim-XX-exe-axp-gtk.zip Alpha GUI/GTK executables + vim-XX-exe-axp-term.zip Alpha console executables + vim-XX-exe-vax-gui.zip VAX GUI executables + vim-XX-exe-vax-term.zip VAX console executables + +and of course (optional) + vim-XX-runtime.zip runtime files + +The binary archives contain: vim.exe, ctags.exe, xxd.exe files. + +For GTK executables you will need GTKLIB that is available for +Alpha and IA64 platforms. + +============================================================================== + +3. Compiling *vms-compiling* + +See the file [.SRC]INSTALLVMS.TXT. + +============================================================================== + +4. Problems *vms-problems* + +The code has been tested under Open VMS 6.2 - 9.2 on Alpha, VAX, IA64 and +X86_64 platforms with the DEC C compiler. It should work without major problems. +If your system does not have some include libraries you can tune in the +OS_VMS_CONF.H file. + +If you decided to build Vim with +perl, +python, etc. options, first you need +to download OpenVMS distributions of Perl and Python. Build and deploy the +libraries and change adequate lines in MAKE_VMS.MMS file. There should not be +a problem from Vim side. + +Also GTK, XPM library paths should be configured in MAKE_VMS.MMS + +Note: Under VAX it should work with the DEC C compiler without problems. The +VAX C compiler is not fully ANSI C compatible in pre-processor directives +semantics, therefore you have to use a converter program that will do the lion +part of the job. For detailed instructions read file INSTALLvms.txt + +To build XXD.EXE, you should change to the subdirectory and build it separately. + +CTAGS is not part of the Vim source distribution anymore, however the OpenVMS +specific source might contain CTAGS source files as described above. +You can find more information about CTAGS on VMS at +http://www.polarhome.com/ctags/ + +Advanced users may try some acrobatics in FEATURE.H file as well. + +It is possible to compile with +xfontset +xim options too, but then you have +to set up GUI fonts etc. correctly. See :help xim from Vim command prompt. + +You may want to use GUI with GTK icons, then you have to download and install +GTK for OpenVMS or at least runtime shareable images - LIBGTK from +polarhome.com +Post 7.2 Vim uses GTK2+ while the last GTK on OpenVMS is 1.2.10, therefore +the GTK build is no longer available. + +For more advanced questions, please send your problem to Vim on VMS mailing +list <vim-vms@polarhome.com> +More about the vim-vms list can be found at: +http://www.polarhome.com/mailman/listinfo/vim-vms + +============================================================================== + +5. Deploy *vms-deploy* + +Vim uses a special directory structure to hold the document and runtime files: + + vim (or wherever) + |- tmp + |- vim57 + |----- doc + |----- syntax + |- vim62 + |----- doc + |----- syntax + |- vim64 + |----- doc + |----- syntax + vimrc (system rc files) + gvimrc + +Use: > + + define/nolog VIM device:[path.vim] + define/nolog VIMRUNTIME device:[path.vim.vim60] + define/nolog TMP device:[path.tmp] + +To get vim.exe to find its document, filetype, and syntax files, and to +specify a directory where temporary files will be located. Copy the "runtime" +subdirectory of the Vim distribution to vimruntime. + +Logicals $VIMRUNTIME and $TMP are optional. + +If $VIMRUNTIME is not set, Vim will guess and try to set up automatically. +Read more about it at :help runtime + +If $TMP is not set, you will not be able to use some functions as CTAGS, +XXD, printing etc. that use temporary directory for normal operation. +The $TMP directory should be readable and writable by the user(s). +The easiest way to set up $TMP is to define a logical: > + + define/nolog TMP SYS$SCRATCH +or as: > + define/nolog TMP SYS$LOGIN + +============================================================================== + +6. Practical usage *vms-usage* + +Usually, you want to run just one version of Vim on your system, therefore +it is enough to dedicate one directory for Vim. +Copy the whole Vim runtime directory structure to the deployment position. +Add the following lines to your LOGIN.COM (in SYS$LOGIN directory). +Set up the logical $VIM as: > + + $ define VIM device:<path> + +Set up some symbols: > + + $ ! vi starts Vim in chr. mode. + $ vi*m :== mcr VIM:VIM.EXE + + $ !gvi starts Vim in GUI mode. + $ gv*im :== spawn/nowait mcr VIM:VIM.EXE -g + +Please, check the notes for customization and configuration of symbols. + +You may want to create .vimrc and .gvimrc files in your home directory +(SYS$LOGIN) to overwrite default settings. + +The easiest way is just rename example files. You may leave the menu file +(MENU.VIM) and files vimrc and gvimrc in the original $VIM directory. It will +be the default setup for all users, and for users it is enough to just have +their own additions or resetting in their home directory in files .vimrc and +.gvimrc. It should work without problems. + +Note: Remember, system rc files (default for all users) don't have a leading +".". So, system rc files are: > + + $VIM:vimrc + $VIM:gvimrc + $VIM:menu.vim + +and user customized rc files are: > + + sys$login:.vimrc + sys$login:.gvimrc + +You can check that everything is at the right place with the :version command. + +Example LOGIN.COM: > + + $ define/nolog VIM DKA0:[UTIL.VIM81] + $ vi*m :== mcr VIM:VIM.EXE + $ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40 + $ set term/inq/ins ! inquire the terminal capabilities + $ set disp/create/node=192.168.10.202/trans=tcpip + +Note: This set-up should be enough, if you are working on a standalone server or +clustered environment, but if you want to use Vim as an internode editor in +DECNET environment, it will satisfy as well. +You just have to define the "whole" path: > + + $ define VIM "<server_name>[""user password""]::device:<path>" + $ vi*m :== "mcr VIM:VIM.EXE" + +For example: > + + $ define VIM "PLUTO::RF10:[UTIL.VIM]" + $ define VIM "PLUTO""ZAY mypass""::RF10:[UTIL.VIM]" ! if passwd required + +You can also use the $VIMRUNTIME logical to point to the proper version of Vim +if you have installed more versions at the same time. If $VIMRUNTIME is not +defined Vim will borrow its value from the $VIM logical. You can find more +information about the $VIMRUNTIME logical by typing :help runtime as a Vim +command. + +System administrators might want to set up a system wide Vim installation, +then add to the SYS$STARTUP:SYLOGICALS.COM > + + $ define/nolog/sys VIM device:<path> + $ define/nolog/sys TMP SYS$SCRATCH + +And to the SYS$STARTUP:SYLOGIN.COM > + + $ vi*m :== mcr VIM:VIM.EXE + $ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40 + + +It will set up a normal Vim work environment for every user on the system. + +IMPORTANT: Vim on OpenVMS (and on other case insensitive system) command line +parameters are assumed to be lowercase. In order to indicate that a command +line parameter is uppercase "/" sign must be used. + +Examples: + > + vim -R filename ! means: -r List swap files and exit + vim -/r filename ! means: -R Readonly mode (like "view") + vim -u <vimrc> ! means: -u Use <vimrc> instead of any .vimrc + vim -/u <gvimrc> ! means: -U Use <gvimrc> instead of any .gvimrc + +============================================================================== + +7. GUI mode questions *vms-gui* + +OpenVMS is a real mainframe OS, therefore even if it has a GUI console, most +of the users do not use a native X/Window environment during normal operation. +It is not possible to start Vim in GUI mode "just like that". But anyhow it +is not too complicated either. + +First of all: you will need an executable that is built with the GUI enabled. + +Second: you need to have installed DECW/Motif on your VMS server, otherwise +you will get errors that some shareable libraries are missing. + +Third: If you choose to run Vim with extra features such as GUI/GTK then you +need a GTK installation too or at least a GTK runtime environment (LIBGTK +can be downloaded from http://www.polarhome.com/vim/). + +1) If you are working on the VMS X/Motif console: + Start Vim with the command: > + + $ mc device:<path>VIM.EXE -g +< + or type :gui as a command to the Vim command prompt. For more info :help + gui + +2) If you are working on some other X/Window environment like Unix or a remote + X VMS console. Set up display to your host with: > + + $ set disp/create/node=<your IP address>/trans=<transport-name> +< + and start Vim as in point 1. You can find more help in VMS documentation or + type: help set disp in VMS prompt. + Examples: > + + $ set disp/create/node=192.168.5.159 ! default trans is DECnet + $ set disp/create/node=192.168.5.159/trans=tcpip ! TCP/IP network + $ set disp/create/node=192.168.5.159/trans=local ! display on the same node + +Note: you should define just one of these. +For more information type $help set disp in VMS prompt. + +3) Another elegant solution is XDM if you have installed on OpenVMS box. + It is possible to work from XDM client as from GUI console. + +4) If you are working on MS-Windows or some other non X/Window environment + you need to set up one X server and run Vim as in point 2. + For MS-Windows there are available free X servers as MIX, Omni X etc., + as well as excellent commercial products as eXcursion or ReflectionX with + built-in DEC support. + +Please note, that executables without GUI are slightly faster during startup +than with enabled GUI in character mode. Therefore, if you do not use GUI +features, it is worth to choose non GUI executables. + +============================================================================== + +8. Useful notes *vms-notes* + +8.1 Backspace/delete +8.2 Filters +8.3 VMS file version numbers +8.4 Directory conversion +8.5 Remote host invocation +8.6 Terminal problems +8.7 Hex-editing and other external tools +8.8 Sourcing vimrc and gvimrc +8.9 Printing from Vim +8.10 Setting up the symbols +8.11 diff and other GNU programs +8.12 diff-mode +8.13 Allow '$' in C keywords +8.14 VIMTUTOR for beginners +8.15 Slow start in console mode issue +8.16 Common VIM directory - different architectures + +8.1 Backspace/delete + +There are backspace/delete key inconsistencies with VMS. +:fixdel doesn't do the trick, but the solution is (without "<" in 'cpo'): > + + :inoremap <C-?> <C-H> " for terminal mode + :inoremap <Del> <C-H> " for gui mode + +Read more in ch: 8.6 (Terminal problems). +(Bruce Hunsaker <BNHunsaker@chq.byu.edu> Vim 5.3) + + +8.2 Filters + +Vim supports filters, i.e., if you have a sort program that can handle +input/output redirection like Unix (<infile >outfile), you could use > + + :map \s 0!'aqsort<CR> + +(Charles E. Campbell, Jr. <cec@gryphon.gsfc.nasa.gov> Vim 5.4) + + +8.3 VMS file version numbers + +Vim is saving files into a new file with the next higher file version +number, try these settings. > + + :set nobackup " does not create *.*_ backup files + :set nowritebackup " does not have any purpose on VMS. It's the + " default. + +Recovery is working perfectly as well from the default swap file. +Read more with :help swapfile + +(Claude Marinier <ClaudeMarinier@xwavesolutions.com> Vim 5.5, Zoltan Arpadffy +Vim 5.6) + + +8.4 Directory conversion + +Vim will internally convert any unix-style paths and even mixed unix/VMS +paths into VMS style paths. Some typical conversions resemble: + + /abc/def/ghi -> abc:[def]ghi. + /abc/def/ghi.j -> abc:[def]ghi.j + /abc/def/ghi.j;2 -> abc:[def]ghi.j;2 + /abc/def/ghi/jkl/mno -> abc:[def.ghi.jkl]mno. + abc:[def.ghi]jkl/mno -> abc:[def.ghi.jkl]mno. + ./ -> current directory + ../ -> relative parent directory + [.def.ghi] -> relative child directory + ./def/ghi -> relative child directory + +Note: You may use <,> brackets as well (device:<path>file.ext;version) as +rf10:<user.zay.work>test.c;1 + +(David Elins <delins@foliage.com>, Jerome Lauret +<JLAURET@mail.chem.sunysb.edu> Vim 5.6) + + +8.5 Remote host invocation + +It is possible to use Vim as an internode editor. +1. Edit some file from remote node: > + + vi "<server>""username passwd""::<device>:<path><filename>;<version>" + +Example: > + vi "pluto""zay passwd""::RF10:<USER.ZAY.WORK>TEST.C;1" + +Note: syntax is very important, otherwise VMS will recognize more parameters +instead of one (resulting with: file not found) + +2. Set up Vim as your internode editor. If Vim is not installed on your +host, just set up your IP address, the full Vim path including the server name +and run the command procedure below: > + + $ if (p1 .eqs. "") .OR. (p2 .eqs. "") then goto usage + $ set disp/create/node=<your_IP_here>/trans=tcpip + $ define "VIM "<vim_server>""''p1' ''p2'""::<device>:<vim_path>" + $ vi*m :== "mcr VIM:VIM.EXE" + $ gv*im :== "spawn/nowait mcr VIM:VIM.EXE -g" + $ goto end + $ usage: + $ write sys$output " Please enter username and password as a parameter." + $ write sys$output " Example: @SETVIM.COM username passwd" + $ end: + +Note: Never use it in a clustered environment (you do not need it), loading +could be very-very slow, but even faster than a local Emacs. :-) + +(Zoltan Arpadffy, Vim 5.6) + + +8.6 Terminal problems + +If your terminal name is not known to Vim and it is trying to find the default +one you will get the following message during start-up: +--- +Terminal entry not found in termcap +'unknown-terminal' not known. Available built-in terminals are: + builtin_gui + builtin_riscos + builtin_amiga + builtin_ansi + builtin_vt320 + builtin_vt52 + builtin_pcansi + builtin_win32 + builtin_xterm + builtin_iris-ansi + builtin_debug + builtin_dumb +defaulting to 'vt320' +--- + +Try to force to inquire the terminal capabilities with: > + + $ set term/inquire + +If the inquire did not help, the solutions is to define the default terminal name: > + + $ ! unknown terminal name. Let us use vt320 or ansi instead. + $ ! Note: it's case sensitive + $ define term "vt320" + +Terminals from VT100 to VT320 (as V300, VT220, VT200) do not need any extra +keyboard mappings. They should work perfectly as they are, including arrows, +Ins, Del buttons etc., except Backspace in GUI mode. To solve it, add to +.gvimrc: > + + inoremap <Del> <BS> + +Vim will also recognize that they are fast terminals. + +If you're using Vim on remote host or through a very slow connection, you +might want to reset fast terminal option with: > + + set nottyfast " set terminal to slow mode + + +8.7 Hex-editing and other external tools + +A very important difference between OpenVMS and other systems is that VMS uses +special commands to execute executables: > + + RUN <path>filename + MCR <path>filename <parameters> + +OpenVMS users always have to be aware that the Vim command :! "just" drop them +to DCL prompt. This feature is possible to use without any problem with all +DCL commands, but if we want to execute some programs such as XXD, CTAGS, JTAGS, +etc. we're running into trouble if we follow the Vim documentation (see: help +xxd). + +Solution: Execute with the MC command and add the full path to the executable. +Example: Instead of :%!xxd command use: > + + :%!mc vim:xxd + +... or in general: > + :!mc <path>filename <parameters> + +Note: You can use XXD and CTAGS from GUI menu. + +To customize ctags it is possible to define the logical $CTAGS with standard +parameters as: > + + define/nolog CTAGS "--totals -o sys$login:tags" + +For additional information, please read :help tagsearch and CTAGS +documentation at http://ctags.sourceforge.net/ctags.html. + +(Zoltan Arpadffy, Vim 5.6-70) + + +8.8 Sourcing vimrc and gvimrc + +If you want to use your .vimrc and .gvimrc from other platforms (e.g. Windows) +you can get in trouble if you ftp that file(s): VMS has different end-of-line +indication. +The symptom is that Vim is not sourcing your .vimrc/.gvimrc, even if you say: +> + :so sys$login:.vimrc + +One trick is to compress (e.g. zip) the files on the other platform and +uncompress it on VMS; if you have the same symptom, try to create the files +with copy-paste (for this you need both op. systems reachable from one +machine, e.g. an Xterm on Windows or telnet to Windows from VMS). + +(Sandor Kopanyi, <sandor.kopanyi@mailbox.hu> Vim 6.0a) + + +8.9 Printing from Vim + +To be able to print from Vim (running in GUI mode) under VMS you have to set +up $TMP logical which should point to some temporary directory and logical +SYS$PRINT to your default print queue. +Example: > + + $define SYS$PRINT HP5ANSI + +You can print out the whole buffer or just the marked area. +More info under :help hardcopy + +(Zoltan Arpadffy, Vim 6.0c) + + +8.10 Setting up the symbols + +When I use gvim this way and press CTRL-Y in the parent terminal, gvim exits. +I now use a different symbol that seems to work OK and fixes the problem. +I suggest this instead: > + + $ GV*IM:==SPAWN/NOWAIT/INPUT=NLA0: MCR VIM:VIM.EXE -G -GEOMETRY 80X40 + +The /INPUT=NLA0: separates the standard input of the gvim process from the +parent terminal, to block signals from the parent window. +Without the -GEOMETRY, the gvim window size will be minimal and the menu +will be confused after a window-resize. + +(Carlo Mekenkamp, Coen Engelbarts, Vim 6.0ac) + + +8.11 diff and other GNU programs + +From 6.0 diff functionality has been implemented, but OpenVMS does not use +GNU/Unix like diff therefore built in diff does not work. +There is a simple solution to solve this anomaly. Install a Unix like diff +and Vim will work perfectly in diff mode too. You just have to redefine your +diff program as: > + + define /nolog diff <GNU_PATH>diff.exe + +Another, more sophisticated solution is described below (8.12 diff-mode) +There are other programs such as patch, make etc that may cause the same +problems. At www.polarhome.com is possible to download an GNU package for +Alpha and VAX boxes that is meant to solve GNU problems on OpenVMS. +(Zoltan Arpadffy, Vim 6.1) + + +8.12 diff-mode + +Vim 6.0 and higher supports Vim diff-mode (See |new-diff-mode|, |diff-mode| +and |08.7|). This uses the external program 'diff' and expects a Unix-like +output format from diff. The standard VMS diff has a different output +format. To use Vim on VMS in diff-mode, you need to: + 1 Install a Unix-like diff program, e.g. GNU diff + 2 Tell Vim to use the Unix-like diff for diff-mode. + +You can download GNU diff from the VIM-VMS website, it is one of the GNU +tools in http://www.polarhome.com/vim/files/gnu_tools.zip. I suggest to +unpack it in a separate directory "GNU" and create a logical GNU: that +points to that directory, e.g: > + + DEFINE GNU <DISK>:[<DIRECTORY>.BIN.GNU] + +You may also want to define a symbol GDIFF, to use the GNU diff from the DCL +prompt: > + + GDIFF :== $GNU:DIFF.EXE + +Now you need to tell Vim to use the new diff program. Take the example +settings from |diff-diffexpr| and change the call to the external diff +program to the new diff on VMS. Add this to your .vimrc file: > + + " Set up vimdiff options + if v:version >= 600 + " Use GNU diff on VMS + set diffexpr=MyDiff() + function MyDiff() + let opt = "" + if &diffopt =~ "icase" + let opt = opt .. "-i " + endif + if &diffopt =~ "iwhite" + let opt = opt .. "-b " + endif + silent execute "!mc GNU:diff.exe -a " .. opt .. v:fname_in .. " " .. v:fname_new .. + \ " > " .. v:fname_out + endfunction + endif + +You can now use Vim in diff-mode, e.g. to compare two files in read-only +mode: > + + $ VIM -D/R <FILE1> <FILE2> + +You can also define new symbols for vimdiff, e.g.: > + + $ VIMDIFF :== 'VIM' -D/R + $ GVIMDIFF :== 'GVIM' -D/R + +You can now compare files in 4 ways: > + + 1. VMS diff: $ DIFF <FILE1> <FILE2> + 2. GNU diff: $ GDIFF <FILE1> <FILE2> + 3. VIM diff: $ VIMDIFF <FILE1> <FILE2> + 4. GVIM diff: $ GVIMDIFF <FILE1> <FILE2> + +(Coen Engelbarts, Vim 6.1) + + +8.13 Allow '$' in C keywords + +DEC C uses many identifiers with '$' in them. This is not allowed in ANSI C, +and Vim recognises the '$' as the end of the identifier. You can change this +with the 'iskeyword' option. +Add this command to your .vimrc file: > + + autocmd FileType c,cpp,cs set iskeyword+=$ + +You can also create the file(s) $VIM/FTPLUGIN/C.VIM (and/or CPP.VIM and +CS.VIM) and add this command: > + + set iskeyword+=$ + +Now word-based commands, e.g. the '*'-search-command and the CTRL-] +tag-lookup, work on the whole identifier. (Ctags on VMS also supports '$' in +C keywords since ctags version 5.1.) + +(Coen Engelbarts, Vim 6.1) + +8.14 VIMTUTOR for beginners + +The VIMTUTOR.COM DCL script can help Vim beginners to learn/make their first +steps with Vim on OpenVMS. Depending of binary distribution you may start it +with: > + + @vim:vimtutor + +(Thomas.R.Wyant III, Vim 6.1) + +8.16 Slow start in console mode issue + +As GUI/GTK Vim works equally well in console mode, many administrators +deploy those executables system wide. +Unfortunately, on a remote slow connections GUI/GTK executables behave rather +slow when user wants to run Vim just in the console mode - because of X +environment detection timeout. + +Luckily, there is a simple solution for that. Administrators need to deploy +both GUI/GTK build and just console build executables, like below: > + + |- vim73 + |----- doc + |----- syntax + vimrc (system rc files) + gvimrc + gvim.exe (the renamed GUI or GTK built vim.exe) + vim.exe (the console only executable) + +Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: > + + $ define/nolog VIM RF10:[UTIL.VIM73] ! where you VIM directory is + $ vi*m :== mcr VIM:VIM.EXE + $ gvi*m :== mcr VIM:GVIM.EXE + $ ! or you can try to spawn with + $ gv*im :== spawn/nowait/input=NLA0 mcr VIM:GVIM.EXE -g -GEOMETRY 80x40 + + +Like this, users that do not have X environment and want to use Vim just in +console mode can avoid performance problems. + +(Zoltan Arpadffy, Vim 7.2) + +8.15 Common VIM directory - different architectures + +In a cluster that contains nodes with different architectures like below: + +$show cluster +View of Cluster from system ID 11655 node: TOR 18-AUG-2008 11:58:31 ++---------------------------------+ +| SYSTEMS | MEMBERS | ++-----------------------+---------| +| NODE | SOFTWARE | STATUS | ++--------+--------------+---------| +| TOR | VMS V7.3-2 | MEMBER | +| TITAN2 | VMS V8.3 | MEMBER | +| ODIN | VMS V7.3-2 | MEMBER | ++---------------------------------+ + +It is convenient to have a common VIM directory but execute different +executables. +There are several solutions for this problem: + +Solution 1. All executables in the same directory with different names +This is easily done with the following script that can be added +to the login.com or sylogin.com: > + + $ if f$getsyi("NODE_HWTYPE") .eqs. "VAX" + $ then + $ say "VAX platform" + $ vi*m:== mcr vim:VIM.EXE_VAX + $ endif + $ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH" + $ then + $ say "ALPHA platform" + $ vi*m :== mcr vim:VIM.EXE_AXP + $ endif + $ if f$getsyi("ARCH_NAME") .eqs. "IA64" + $ then + $ say "IA64 platform" + $ vi*m :== mcr vim:VIM.EXE_IA64 + $ endif + +Solution 2. Different directories: > + + $ if f$getsyi("NODE_HWTYPE") .eqs. "VAX" + $ then + $ say "VAX platform" + $ define/nolog VIM RF10:[UTIL.VAX_EXE] ! VAX executables + $ endif + $ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH" + $ then + $ say "ALPHA platform" + $ define/nolog VIM RF10:[UTIL.AXP_EXE] ! AXP executables + $ endif + $ if f$getsyi("ARCH_NAME") .eqs. "IA64" + $ then + $ say "IA64 platform" + $ define/nolog VIM RF10:[UTIL.IA64_EXE] ! IA64 executables + $ endif + $! VIMRUNTIME must be defined in order to find runtime files + $ define/nolog VIMRUNTIME RF10:[UTIL.VIM73] + +A good example for this approach is the [GNU]gnu_tools.com script from +GNU_TOOLS.ZIP package downloadable from http://www.polarhome.com/vim/ + +(Zoltan Arpadffy, Vim 7.2) + +============================================================================== + +9. VMS related changes *vms-changes* + +Version 9.0 (2023 Nov 27) +- Vim is ported to the X86_64 architecture + - IMPORTANT: because of the getline function name used in structs like in ex_cmds.h + on X86_64 the CRTL_VER is kept under 80500000 level. The proper solution would be + to rename the getline function to something else in the struct (and in all places + it is used) - and avoiding to use POSIX functions in structs, but this change would + impact on all other operating systems. (added to the VMS TODO list) + Read more about at https://forum.vmssoftware.com/viewtopic.php?f=38&t=8914&p=20049 +- os_vms_conf.h includes have been reviewed for all architectures +- added support for the MODIFIED_BY define + +Version 8.2 (2020 Feb 6) +- make all changes needed for clean compile build of v8.2 on VMS on all platforms +- fix the call mkdir bug (vicente_polo@yahoo.es) +- test on VSI OpenVMS Alpha and Itanium platforms +- added LUA support +- added XPM support - Motif GUI with toolbar on all platforms +- XPM v3.4.11 libraries for IA64, AXP and VAX are added +- start integrating the new test scripts + +Version 8.1 (2019 Jan 9) +- make necessary changes to build v8.1 on VMS +- GTK1.2.10 on VAX + +Version 8.0 (2016 Nov 21) +- solve the 100% cpu usage issue while waiting for a keystroke +- correct the VMS warnings and errors around handling the INFINITY (used in json.c) +- minor VMS port related changes +- correct the make_vms.mms file for 8.0 +- fix [.TESTDIR]make_vms.mms for 8.0 + +Version 7.4 (2013 Aug 10) +- Undo: VMS can not handle more than one dot in the filenames use "dir/name" -> "dir/_un_name" + add _un_ at the beginning to keep the extension +- correct swap file name wildcard handling +- handle iconv usage correctly +- do not optimize on vax - otherwise it hangs compiling crypto files +- fileio.c fix the comment +- correct RealWaitForChar +- after 7.4-119 use different functions lib$cvtf_to_internal_time because Alpha and VAX have + G_FLOAT but IA64 uses IEEE float otherwise Vim crashes +- guard against crashes that are caused by mixed filenames +- [TESTDIR]make_vms.mms changed to see the output files +- Improve tests, update known issues +- minor compiler warnings fixed +- CTAGS 5.8 +regex included + +Version 7.3 (2010 Aug 15) +- CTAGS 5.8 included +- VMS compile warnings fixed - floating-point overflow warning corrected on VAX +- filepath completion corrected - too many chars were escaped in filename + and shell commands +- the following plugins are included into VMS runtime: + genutils 2.4, multiselect 2.2, multvals 3.1, selectbuf 4.3, + bufexplorer 7.1.7, taglist 4.5 +- minor changes in vimrc (just in VMS runtime) +- make_vms.mms - HUGE model is the default +- [TESTDIR]make_vms.mms include as many tests possible +- modify test30 and test54 for VMS +- enable FLOAT feature in VMS port +- os_vms.txt updated + +Version 7.2 (2008 Aug 9) +- VCF files write corrected +- CTAGS 5.7 included +- corrected make_vms.mms (on VAX gave syntax error) + +Version 7.1 (2007 Jun 15) +- create TAGS file from menu + +Version 7 (2006 May 8) +- Improved low level char input (affects just console mode) +- Fixed plugin bug +- CTAGS 5.6 included + +Version 6.4 (2005 Oct 15) +- GTKLIB and Vim build on IA64 +- colors in terminal mode +- syntax highlighting in terminal mode +- write problem fixed (extra CR) +- ESC and ESC sequence recognition in terminal mode +- make file changed to support new MMS version +- env variable expansion in path corrected +- printing problems corrected +- help text added for case insensitive arguments + +Version 6.3 (2004 May 10) +- Improved vms_read function +- CTAGS v5.5.4 included +- Documentation corrected and updated + +Version 6.2 (2003 May 7) +- Corrected VMS system call results +- Low level character input is rewritten +- Correction in tag and quickfix handling +- First GTK build +- Make file changes + - GTK feature added + - Define for OLD_VMS + - OpenVMS version 6.2 or older +- Documentation updated with GTK features +- CTAGS v5.5 included +- VMS VIM tutor created + +Version 6.1 (2002 Mar 25) +- TCL init_tcl() problem fixed +- CTAGS v5.4 included +- GNU tools binaries for OpenVMS +- Make file changes + - PERL, PYTHON and TCL support improved + - InstallVMS.txt has a detailed description HOWTO build +- VMS/Unix file handling rewritten +- Minor casting and bug fixes + +Version 6.0 (2001 Sep 28) +- Unix and VMS code has been merged + - separated "really" VMS related code + - included all possible Unix functionality + - simplified or deleted the configuration files + - makefile MAKE_VMS.MMS reviewed +- menu changes (fixed printing, CTAGS and XXD usage) +- fixed variable RMS record format handling anomaly +- corrected syntax, ftplugin etc files load +- changed expand_wildcards and expandpath functions to work more general +- created OS_VMS_FILTER.COM - DECC->VAXC pre-processor directive convert + script. +- Improved code's VAXC and new DECC compilers compatibility +- changed quickfix parameters: + - errormessage format to suite DECC + - search, make and other commands to suite VMS system +- updated and renamed MMS make files for Vim and CTAGS. +- CTAGS has been removed from source distribution of Vim but it will remain + in OpenVMS binary distributions. +- simplified build/configuration procedure +- created INSTALLvms.txt - detailed compiling instructions under VMS. +- updated test scripts. + +Version 5.8 (2001 Jun 1) +- OS_VMS.TXT updated with new features. +- other minor fixes. +- documentation updated +- this version had been tested much more than any other OpenVMS version + earlier + +Version 5.7 (2000 Jun 24) +- New CTAGS v5.0 in distribution +- Documentation updated + +Version 5.6 (2000 Jan 17) +- VMS filename related changes: + - version handling (open everything, save to new version) + - correct file extension matching for syntax (version problem) + - handle <,> characters and passwords in directory definition + - handle internode/remote invocation and editing with passwords + - OpenVMS files will be treated case insensitive from now + - corrected response of expand("%:.") etc path related functions + (in one word: VMS directory handling internally) +- version command + - corrected (+,-) information data + - added compiler and OS version + - added user and host information + - resolving $VIM and $VIMRUNTIME logicals +- VMS port is in MAX_FEAT (maximum features) club with Unix, Win32 and OS/2. + - enabled farsi, rightleft etc. features + - undo level raised up to 1000 +- Updated OS_VMS.MMS file. + - maximum features ON is default + - Vim is compilable with +perl, +python and +tcl features. + - improved MMK compatibility +- Created MAKEFILE_VMS.MMS, makefile for testing Vim during development. +- Defined DEC terminal VT320 + - compatibility for VT3*0, VT2*0 and VT1*0 - ANSI terminals + backwards, but not VT340 and newer with colour capability. + - VT320 is default terminal for OpenVMS + - these new terminals are also fast ttys (default for OpenVMS). + - allowed dec_mouse ttym +- Updated files vimrc and gvimrc with VMS specific suggestions. +- OS_VMS.TXT updated with new features. + +Version 5.5 (1999 Dec 3) +- Popup menu line crash corrected. +- Handle full file names with version numbers. +- Directory handling (CD command etc.) +- Corrected file name conversion VMS to Unix and v.v. +- Correct response of expand wildcards +- Recovery is working from this version under VMS as well. +- Improved terminal and signal handing. +- Improved OS_VMS.TXT + +Version 5.4 (1999 Sep 9) +- Cut and paste mismatch corrected. +- Motif directories during open and save are corrected. + +Version 5.3 (1998 Oct 12) +- Minor changes in the code +- Standard distribution with +GUI option + +Version 5.1 (1998 Apr 21) +- Syntax and DEC C changes in the code +- Fixing problems with the /doc subdirectory +- Improve OS_VMS.MMS + +Version 4.5 (1996 Dec 16) +- First VMS port by Henk Elbers <henk@xs4all.nl> + +============================================================================== + +10. Authors *vms-authors* + +OpenVMS documentation and executables are maintained by: +Zoltan Arpadffy <zoltan.arpadffy@gmail.com> +OpenVMS Vim page: http://www.polarhome.com/vim/ + +This document uses parts and remarks from earlier authors and contributors +of OS_VMS.TXT: + Charles E. Campbell, Jr. <cec@gryphon.gsfc.nasa.gov> + Bruce Hunsaker <BNHunsaker@chq.byu.edu> + Sandor Kopanyi <sandor.kopanyi@mailbox.hu> + + vim:tw=78:ts=8:noet:ft=help:norl: |