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