💾 Archived View for gmi.noulin.net › vim › os_vms.gmi captured on 2022-06-12 at 07:51:09. Gemini links have been rewritten to link to archived content
View Raw
More Information
➡️ Next capture (2022-07-17)
-=-=-=-=-=-=-
- os_vms.txt* For Vim version 8.2. Last change: 2021 Jan 04
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-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 platform.
==============================================================================
3. Compiling *vms-compiling*
See the file [.SRC]INSTALLVMS.TXT.
==============================================================================
4. Problems *vms-problems*
The code has been tested under Open VMS 6.2 - 8.2 on Alpha, VAX and IA64
platforms with the DEC C compiler. It should work without major problems.
If your system does not have some include libraries you can tune up in
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
MMS_VIM.EXE is built together with VIM.EXE, but for XXD.EXE you should
change to a 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 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 '