VIM on OpenVMS Information Page

What is Vim?

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, X/Motif or GTK environment. It is fully featured and absolutely compatible with Vim on other operating systems as Unix, OS/2, BeOS or Windows.

Where can I find out more about Vim and VMS?

Official VIM Home Page
Official VIM Documentation Page
Vi Lovers Home Page
Information about the VMS operating system

Online Vim ref. manual v9.1 in HTML
Online Vim user manual v9.1 in HTML
Vim tutor basic Vim comands for the beginners
Online OpenVMS users manual v9.1

Developer releases, new sources
Old releases archive, help files, sources
Old manuals archive, documentation and user guides
CTAGS development on VMS, sources
Online http Vim on VMS file archive
Online ftp Vim on VMS file archive

Current Version Information

Current release is 9.1-11 (status: TESTED - download ready)
Developers release N/A - executables/preview in developers corner


Open VMS Vim Binaries

These links provide you with binaries for Vim text editor for OpenVMS operating system on AXP(Alpha), VAX, IA64(Itanium) and X86_64.
All binaries were compiled using all the default settings. Please, check the comments for enabled GUI mode or terminal only mode executables.

Binary Version Information


VIM - Vi IMproved 9.1 (2024 Jan 02, compiled Jan  5 2024 10:15:03)
OpenVMS version - x86_64
Included patches: 1-11
Huge version with X11-Motif GUI.  Features included (+) or not (-):
+acl               +file_in_path      +mouse_xterm       -tcl
+arabic            +find_in_path      +multi_byte        +termguicolors
+autocmd           +float             +multi_lang        -terminal
+autochdir         +folding           -mzscheme          +termresponse
-autoservername    -footer            -netbeans_intg     +textobjects
+balloon_eval      -gettext           +num64             +textprop
+balloon_eval_term -hangul_input      +packages          +tgetent
+browse            -iconv             +path_extra        +timers
++builtin_terms    +insert_expand     -perl              +title
+byte_offset       +ipv6              +persistent_undo   -toolbar
-channel           -job               +popupwin          +user_commands
+cindent           +jumplist          +postscript        +vartabs
+clientserver      +keymap            +printer           +vertsplit
+clipboard         +lambda            +profile           +vim9script
+cmdline_compl     +langmap           -python            +viminfo
+cmdline_hist      -libcall           -python3           +virtualedit
+cmdline_info      +linebreak         +quickfix          +visual
+comments          +lispindent        +reltime           +visualextra
+conceal           +listcmds          +rightleft         +vreplace
+cryptv            +localmap          -ruby              +wildignore
-cscope            -lua               +scrollbind        +wildmenu
+cursorbind        +menu              +signs             +windows
+cursorshape       +mksession         +smartindent       -writebackup
+dialog_con_gui    +modify_fname      -sodium            +X11
+diff              +mouse             -sound             -xattr
+digraphs          +mouseshape        +spell             +xfontset
-dnd               +mouse_dec         +startuptime       -xim
-ebcdic            -mouse_gpm         +statusline        -xpm
+emacs_tags        -mouse_jsbterm     -sun_workshop      -xsmp
+eval              +mouse_netterm     +syntax            +xterm_clipboard
+ex_extra          +mouse_sgr         +tag_binary        +xterm_save
+extra_search      -mouse_sysmouse    -tag_old_static
-farsi             +mouse_urxvt       -tag_any_white
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "sys$login:.vimrc"
 2nd user vimrc file: "sys$login:vimfiles/vimrc"
 3rd user vimrc file: "sys$login:_vimrc"
      user exrc file: "sys$login:.exrc"
  2nd user exrc file: "sys$login:_exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "sys$login:.gvimrc"
2nd user gvimrc file: "sys$login:vimfiles/gvimrc"
3rd user gvimrc file: "sys$login:_gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
Compilation: cc/def=(FEAT_HUGE,HAVE_CONFIG_H,FEAT_GUI_MOTIF    )  /opt/prefix=all/name=(upper,short)/WARNINGS=(DISABLE=MACROREDEF)  /include=([.proto],decw$include:  ,[.xdiff])
Compiler: VSI C x86-64 X7.4-843 (GEM 50XB9) on OpenVMS x86_64 V9.2-1

Known problems:

- There is no port for GTK2 on OpenVMS and from Vim 7.3 GTK is not supported - it means there are no GTK executables from 7.3.

Full list of VMS related issues can be found in the polarhome's ticketing system: vim_vms
Please, feel free to open a new ticket/issue, if needed.

For compatibility reasons executables have been built on lowest available OpenVMS version.
Currently 9.2 for X86_64, 8.3 for IA64, v7.3 for AXP and v7.3 for VAX environment.
GTK version for AXP requires at least v7.3-2, for IA64 v8.2 and of course installed LIBGTK (if used with provided LIBGTK).

Build and test cases

The followng tools have been tested during Vim development.

VSI C x86-64 X7.4-843 (GEM 50XB9) on OpenVMS x86_64 V9.2-1
HP C V7.3-020 on OpenVMS IA64 V8.4
HP C V7.2-001 on OpenVMS IA64 V8.3
HP C V7.1-011 on OpenVMS IA64 V8.2
hp C T7.1-003 on OpenVMS IA64 XAIP-T3Z
VSI C V7.4-002 on OpenVMS Alpha V8.4-2L1
Compaq C V6.2-009 on OpenVMS Alpha V7.2-1
Compaq C V6.4-008 on OpenVMS Alpha V7.1
Compaq C V6.5-001 on OpenVMS Alpha V7.3
DEC C V6.0-001 on OpenVMS Alpha V6.2-1H3
DEC C V6.0-001 on OpenVMS Alpha V7.1-2
DEC C V6.0-001 on OpenVMS VAX V6.2
DEC C V6.0-001 on OpenVMS VAX V7.2
Compaq C V6.4-005 on OpenVMS VAX V7.3

CTAGS and XXD are compilable with VAXC without modifications. Read more about VAXC related issues in INSTALLvms.txt (comes with the source package)

Make utilities:
%MMS-I-IDENT, MMS V4.0-4 Copyright 2022 VMS Software, Inc and Hewlett-Packard Development Company, L.P.
%MMS-I-IDENT, MMS V3.8-2 ? Copyright 2007 Hewlett-Packard Development Company, L.P. fails to build Vim - use MMK insted
%MMS-I-IDENT, MMS V3.7 Copyright 2005 Hewlett-Packard Development Company, L.P.
%MMS-I-IDENT, MMS T3.6-4 © 2004 Hewlett-Packard Development Company, L.P.
%MMS-I-IDENT, MMS V3.5 © 2003 Hewlett-Packard Development Company, L.P.
%MMS-I-IDENT, MMS V3.3-4 © Digital Equipment Corporation 1989, 1998. All rights reserved.© Electronic Data Systems Limited 1995, 1998
%MMS-I-IDENT, MMS V3.4-3 © Compaq Computer Corporation 2000. © Electronic Data Systems Limited 1995, 2000
%MMK-I-IDENT, this is the MadGoat Make Utility V3.4-10
-MMK-I-COPYRIGHT, Copyright © 1992-1996, MadGoat Software.  All Rights Reserved.
%MMK-I-IDENT, this is the MadGoat Make Utility V3.9-2
-MMK-I-COPYRIGHT, Copyright © 1992-2001, MadGoat Software.  All Rights Reserved.
%MMK-I-IDENT, this is the MadGoat Make Utility V3.9-9
-MMK-I-COPYRIGHT, Copyright ? 1992-2004, MadGoat Software. All Rights Reserved.
%MMK-I-IDENT, this is the MMK Make Utility V5.1
-MMK-I-COPYRIGHT, Copyright (c) 2008, Matthew Madison. Copyright (c) 2014, Endless Software Solutions.

Tests: most of the tests passed, but
Test 21 : Failed on 7.2 systems and lower  (VAX, Alpha)
Test 32 : Failed on 7.1 systems and lower  (VAX, Alpha)
Test 47 : Failed - VMS diff not implemented yet. (have to use Unix like diff, provided in GNU_TOOLS below)
Test 58 : Failed/Hangs - VMS does not support spell files (file names with too many dots).
Test 59 : Failed - VMS does not support spell files (file names with too many dots).
Test 72 : Bug - Vim hangs at :rename (while rename works well otherwise)
Test 78 : Bug - Vim dies at :recover Xtest
Test 89 : Bug - findfile() does not work on VMS (just in the current directory)
Test 97 : Just ODS-5 supports space and special chars in the filename. On ODS-2 tests fail.
Test 102: Same like test97



You should define only one important logical for proper response of help command, syntax files and menus: $VIM
Please, put this line to your SYS$LOGIN:LOGIN.COM or system administartors could include into SYLOGIN.COM

$ define VIM <full path to VIM directory>

NOTE: actually logical $VIMRUNTIME is used for syntax, help and other runtime resources. If this logical does not exist Vim defines it in the process job table during first run. If user does not have permissions or has quota limitations that pervent creating this logical by Vim executable - system adminstrators should define it globally. $VIMRUNTIME logical should point to runtime resources path - usually where $VIM points.

System menu file should be (actually just in GUI mode): "$VIM:menu.vim" or defined by command source <path>menu.vim in .gvimrc
Exemple part of LOGIN.COM vim related lines:

$ define VIM RF10:[UTIL.VIM91]               ! vim main directory.
$ vi*m :== mcr VIM:VIM.EXE                   ! vi starts vim in chr. mode.
$ gv*im :== spawn/nowait mcr VIM:GVIM.EXE -g ! gvi starts vim in GUI mode (NOTE: rename VIM.EXE to GVIM.EXE!)
$ set terminal/inquire/insert                ! (optional) ensure right terminal detection
$ def VIMRUNTIME RF10:[UTIL.VIM91]           ! (optional) full path to runtime environment if different than VIM 

You can find more information about setting up the the environment in os_vms.txt ... command :help vms from Vim

How does it look like now? Check some screen shots
Live demonstration at port 702 (username: guest  password: guest) (VAX system console and Motif)
Live demonstration at port 762 (username: guest  password: guest) (Alpha system console, Motif and GTK)
Live demonstration at port 982 (username: guest  password: guest) (Itanium system console, Motif and GTK)
...or from IPv6 network by and and

If you are VIM (or any open source project) developer on OpenVMS without develpment environment, please apply for account at root(at) Please, note that "simple" polarhome accounts does not have enough high quota for advanced development.

Download Files

Executables only packages GUI/Motif binaries without documentation and runtime files - X86_64 Console binaries without documentation and runtime files - X86_64 GUI/Motif binaries without documentation and runtime files - IA64 Console binaries without documentation and runtime files - IA64 GUI/Motif binaries without documentation and runtime files - AXP Console binaries without documentation and runtime files - AXP GUI/Motif binaries without documentation and runtime files - VAX Console binaries without documentation and runtime files - VAX

Deployment ready packages (X86_64) GUI/Motif and Console binaries with documentation, runtime files, CTAGS and XXD - X86_64 (IA64) GUI/Motif and Console binaries with documentation, runtime files, CTAGS and XXD - IA64 (AXP) GUI/Motif and Console binaries with documentation, runtime files, CTAGS and XXD - AXP (VAX) GUI/Motif and Console binaries with documentation, runtime files, CTAGS and XXD - VAX

Runtime files Patched Vim 9.1 - runtime files, updated to recent patch - without executables

Source code and other packages Source code used for compiling current version under OpenVMS Compressed Vim 9.1 manual in HTML - read online Vim 9.1 prepared for the VMS FREEWARE distribution

Other useful tools
GNU tools (Alpha and VAX) GNU programs (diff, patch, make, gzip, tar, sed, gawk etc.) that Vim uses or because of Unix compatibility behave better with Vim than OpenVMS versions (optional)
LIBGTK(AXP) Runtime GTK library for AXP - needed to run Vim with GTK GUI - OpenVMS 7.2-2 or above
LIBGTK (IA64) Runtime GTK library for IA64- needed to run Vim with GTK GUI - OpenVMS 8.2 or above
unzip.exe(VAX) unzip utility for VAX
unzip.exe (AXP) unzip utility for AXP
unzip.exe (IA64) unzip utility for  IA64
unzip.exe (X86_64) unzip utility for  X86_64
mmk_vax.exe  MMK, free make utility for VAX
mmk_alpha.exe MMK, free make utility for AXP
mmk_ia64.exe MMK, free make utility for IA64
mmk_x86.exe MMK, free make utility for X86_64

What to download?

You can find different packages here:

Anonymous FTP

... are available on:

Bug report and fixes

You can send your bug rapport to vim-vms-bugs(at) or to discussion list vim-vms(at) (if you are subscribed).
Also bugs can be submitted directly to the polarhome's ticketing system.
Please, include among the detailed description: VIM version (command :ver), VMS version and platform (Alpha, VAX, etc). and if you have some compilation problems, please add the compiler version as well.

Here is the list of Vim enthusiasts who contributed in development, testing, bug rapport, suggestions, fixes, solutions and documentation for OpenVMS version so far.
Sándor Kopányi <sandor.kopanyi(at)>
Henk Elbers  <henk(at)>
Charles E. Campbell, Jr <cec(at)>
Hal King <hking(at)>
Jerome Lauret <JLAURET(at)>
David Elins <delins(at)>
László Taska <laszlo.taska(at)>
Tamás Kovács <tamas.kovacs(at)>
Patrick Moreau <pmoreau(at)>
Stephen P. Wall <hitched97(at)>
Zoltán Árpádffy <arpadffy(at)>
Jan Kluka <Jan.Kluka(at)>
John W. Hamill <jhamill3(at)>
Coen Engelbarts e-mail not shown
Tomás Stehlík <tstehlik(at)>
Samuel Ferencik <sferencik(at)>
Neil Rieck <neil.rieck(at)>
... and of course Bram Moolenaar <Bram(at)> who comitted everything to the new releases.
Bram passed away (2023), but the Vim community is very thankful for all what he has done for the humanity, and continues to support his excellent work.


Developers, BETA testers corner

If you're already working on some correction/addon, please send some announce to vim-vms(at) list, to minimise task overlaps.

Developers' resources:
Vim on VMS archive: or
HOWTO build on VMS: INSTALLvms.txt
Recent Vim source code: - CVS is DEPRECATED by the Vim development team
Recent Vim source code: - Github
(downloadable compressed packages) - CVS mirror is DEPRECATED by Vim development team
Recent Vim source code: (downloadable compressed packages) - Subversion mirror is DEPRECATED by Vim development team
Recent Vim source code: (downloadable compressed packages) - Mercurial mirror.
Recent Vim source code: (downloadable compressed packages) - Git mirror - PREFERED by the Vim deveopment team
Last patch changes : README

Official Changes (from OpenVMS point of view)

Version 9.1 (2024 Jan 05)
- usage of POSIX functions in structs have corrected, therefore the CRTL_VER limit is removed
- added python3 and xterm_save features
- the make_vms.mms file is aligned with the common Unix Makefile

Version 9.0 (2023 Nov 27)
- Vim is ported to the X86_64 architecture
- IMPORTANT: because of the getline function name used in stucts 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 the the VMS TODO list)
Read more about at
- 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 (
- 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 erros around handeling 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 a 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
- dividing with 0 bug fixed
- [TESTDIR]make_vms.mms changed to see the output files
- minor compiler warnings fixed

Version 7.3 (2010 Aug 15)
- CTAGS 5.8 included
- VMS compile warnings fixed
- floating-point overflow warning corrected on VAX
- filepath completition 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 14)
- 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 the 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
- 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)
- Zoltan Arpadffy takes over the VMS port
- 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 <>

Discussion list

vim-vms list is a very low traffic announce list for new releases, page updates, developer's notes etc.
To subscribe go to:
List archive can be found at

Please, note that old list vim-vms(at) moved to vim-vms(at) to achieve better functionality, spam controll and subscriber privacy.

Please, answer the following questions in order to achieve better optimization of development, prioritization of bugs and executables.

What platform and OpenVMS version do you use?

VAX - 7.1 or older
VAX - 7.2 or newer
Alpha - 7.2 or older
Alpha - 7.3 or newer
Itanium - 8.0 or newer
X86_64 - 9.2 or newer
I do not use OpenVMS
I do not know

In what mode do you use Vim on OpenVMS?

Console mode
I don't use Vim

Last Modified: Fre, Jan 05, 2024.
Zoltan Arpadffy (zoltan.arpadffy(at)

Polarhome, production since 1999.
Member of Polarhome portal.

Vote for polarhome
Free Shell Accounts :: the biggest list on the net