123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969 |
- *os_vms.txt* For Vim version 9.0. Last change: 2022 Nov 25
- 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 '$' 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'
- ---
- The solution 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 8.2
- - 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
- - make necessary changes to build v8.1 on VMS
- Version 8.0
- - 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
- - 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
- - 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 <arpadffy@polarhome.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:
|