blob: 9d80d706a28d40273375a9ca9726546df9a933fd [file] [log] [blame]
Bram Moolenaar1423b9d2006-05-07 15:16:06 +00001*os_vms.txt* For Vim version 7.0. Last change: 2006 Apr 30
Bram Moolenaar071d4272004-06-13 20:20:40 +00002
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 will need both the Unix and Extra archives to build vim.exe for VMS.
42For using Vim's full power you will need the runtime files as well.
43
44You can download precompiled executables from:
45 http://www.polarhome.com/vim/
46 ftp://ftp.polarhome.com/pub/vim/
47
48To use the precompiled binary version, you need one of these archives:
49
Bram Moolenaar5eba4c22005-07-12 22:40:29 +000050 vim-XX-exe-ia64-gui.zip IA64 GUI/Motif executables
51 vim-XX-exe-ia64-gtk.zip IA64 GUI/GTK executables
52 vim-XX-exe-ia64-term.zip IA64 console executables
Bram Moolenaarc9b4b052006-04-30 18:54:39 +000053 vim-XX-exe-axp-gui.zip Alpha GUI/Motif executables
54 vim-XX-exe-axp-gtk.zip Alpha GUI/GTK executables
Bram Moolenaar5eba4c22005-07-12 22:40:29 +000055 vim-XX-exe-axp-term.zip Alpha console executables
Bram Moolenaar071d4272004-06-13 20:20:40 +000056 vim-XX-exe-vax-gui.zip VAX GUI executables
57 vim-XX-exe-vax-term.zip VAX console executables
58
Bram Moolenaarb475fb92006-03-02 22:40:52 +000059and of course (optional)
Bram Moolenaar071d4272004-06-13 20:20:40 +000060 vim-XX-runtime.zip runtime files
61
Bram Moolenaar5eba4c22005-07-12 22:40:29 +000062The binary archives contain: vim.exe, ctags.exe, xxd.exe files.
Bram Moolenaar071d4272004-06-13 20:20:40 +000063
Bram Moolenaarc9b4b052006-04-30 18:54:39 +000064For GTK executables you will need GTKLIB that is available for
Bram Moolenaarb475fb92006-03-02 22:40:52 +000065Alpha and IA64 platform.
66
Bram Moolenaar071d4272004-06-13 20:20:40 +000067==============================================================================
68
693. Compiling *vms-compiling*
70
71See the file [.SRC]INSTALLVMS.TXT.
72
73==============================================================================
74
754. Problems *vms-problems*
76
Bram Moolenaar5eba4c22005-07-12 22:40:29 +000077The code has been tested under Open VMS 6.2 - 8.2 on Alpha, VAX and IA64
78platforms with the DEC C compiler. It should work without bigger problems.
Bram Moolenaar402d2fe2005-04-15 21:00:38 +000079If your system does not have some include libraries you can tune up in
80OS_VMS_CONF.H file.
Bram Moolenaar071d4272004-06-13 20:20:40 +000081
82If you decided to build Vim with +perl, +python, etc. options, first you need
Bram Moolenaar402d2fe2005-04-15 21:00:38 +000083to download OpenVMS distributions of Perl and Python. Build and deploy the
84libraries and change adequate lines in MAKE_VMS.MMS file. There should not be
85a problem from Vim side.
Bram Moolenaar071d4272004-06-13 20:20:40 +000086
Bram Moolenaar5eba4c22005-07-12 22:40:29 +000087Also GTK, XPM library paths should be configured in MAKE_VMS.MMS
88
Bram Moolenaar402d2fe2005-04-15 21:00:38 +000089Note: Under VAX it should work with the DEC C compiler without problems. The
90VAX C compiler is not fully ANSI C compatible in pre-processor directives
91semantics, therefore you have to use a converter program what will do the lion
92part of the job. For detailed instructions read file INSTALLvms.txt
Bram Moolenaar071d4272004-06-13 20:20:40 +000093
Bram Moolenaar402d2fe2005-04-15 21:00:38 +000094MMS_VIM.EXE is build together with VIM.EXE, but for XD.EXE you should
Bram Moolenaar071d4272004-06-13 20:20:40 +000095change to subdirectory and build it separately.
96
Bram Moolenaar402d2fe2005-04-15 21:00:38 +000097CTAGS is not part of the Vim source distribution anymore, however the OpenVMS
98specific source might contain CTAGS source files as described above.
Bram Moolenaar071d4272004-06-13 20:20:40 +000099You can find more information about CTAGS on VMS at
100http://www.polarhome.com/ctags/
101
102Advanced users may try some acrobatics in FEATURE.H file also.
103
104It is possible to compile with +xfontset +xim options too, but then you have
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000105to set up GUI fonts etc. correctly. See :help xim from Vim command prompt.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000106
107You may want to use GUI with GTK icons, then you have to download and install
108GTK for OpenVMS or at least runtime shareable images - LIBGTK from
109polarhome.com
110
111For more advanced questions, please send your problem to Vim on VMS mailing
112list <vim-vms@polarhome.com>
113More about the vim-vms list can be found at:
114http://www.polarhome.com/mailman/listinfo/vim-vms
115
116==============================================================================
117
1185. Deploy *vms-deploy*
119
120Vim uses a special directory structure to hold the document and runtime files:
121
122 vim (or wherever)
123 |- tmp
124 |- vim57
125 |----- doc
126 |----- syntax
Bram Moolenaarb475fb92006-03-02 22:40:52 +0000127 |- vim62
Bram Moolenaar071d4272004-06-13 20:20:40 +0000128 |----- doc
129 |----- syntax
Bram Moolenaarb475fb92006-03-02 22:40:52 +0000130 |- vim64
Bram Moolenaar071d4272004-06-13 20:20:40 +0000131 |----- doc
132 |----- syntax
133 vimrc (system rc files)
134 gvimrc
135
136Use: >
137
138 define/nolog VIM device:[path.vim]
139 define/nolog VIMRUNTIME device:[path.vim.vim60]
140 define/nolog TMP device:[path.tmp]
141
142to get vim.exe to find its document, filetype, and syntax files, and to
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000143specify a directory where temporary files will be located. Copy the "runtime"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000144subdirectory of the vim distribution to vimruntime.
145
146Logicals $VIMRUNTIME and $TMP are optional.
147
148If $VIMRUNTIME is not set, Vim will guess and try to set up automatically.
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000149Read more about it at :help runtime
Bram Moolenaar071d4272004-06-13 20:20:40 +0000150
151If $TMP is not set, you will not be able to use some functions as CTAGS,
152XXD, printing etc. that use temporary directory for normal operation.
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000153The $TMP directory should be readable and writable by the user(s).
154The easiest way to set up $TMP is to define a logical: >
Bram Moolenaar071d4272004-06-13 20:20:40 +0000155
156 define/nolog TMP SYS$SCRATCH
157or as: >
158 define/nolog TMP SYS$LOGIN
159
160==============================================================================
161
1626. Practical usage *vms-usage*
163
164Usually, you want to run just one version of Vim on your system, therefore
165it is enough to dedicate one directory for Vim.
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000166Copy the whole Vim runtime directory structure to the deployment position.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000167Add the following lines to your LOGIN.COM (in SYS$LOGIN directory).
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000168Set up the logical $VIM as: >
Bram Moolenaar071d4272004-06-13 20:20:40 +0000169
170 $ define VIM device:<path>
171
172Set up some symbols: >
173
174 $ ! vi starts Vim in chr. mode.
175 $ vi*m :== mcr VIM:VIM.EXE
176
177 $ !gvi starts Vim in GUI mode.
178 $ gv*im :== spawn/nowait mcr VIM:VIM.EXE -g
179
180Please, check the notes for customization and configuration of symbols.
181
182You may want to create .vimrc and .gvimrc files in your home directory
183(SYS$LOGIN) to overwrite default settings.
184
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000185The easiest way is just rename example files. You may leave the menu file
186(MENU.VIM) and files vimrc and gvimrc in the original $VIM directory. It will
187be default setup for all users, and for users it is enough just to have their
188own additions or resetting in their home directory in files .vimrc and .gvimrc.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000189It should work without problems.
190
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000191Note: Remember, system rc files (default for all users) don't have a leading
192".". So, system rc files are: >
Bram Moolenaar071d4272004-06-13 20:20:40 +0000193
194 $VIM:vimrc
195 $VIM:gvimrc
196 $VIM:menu.vim
197
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000198and user customized rc files are: >
Bram Moolenaar071d4272004-06-13 20:20:40 +0000199
200 sys$login:.vimrc
201 sys$login:.gvimrc
202
203You can check that everything is on the right place with the :version command.
204
205Example LOGIN.COM: >
206
207 $ define/nolog VIM RF10:[UTIL.VIM]
208 $ vi*m :== mcr VIM:VIM.EXE
209 $ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40
210 $ set disp/create/node=192.168.5.223/trans=tcpip
211
212Note: This set-up should be enough, if you are working on standalone server or
213clustered environment, but if you want to use Vim as internode editor in
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000214DECNET environment, it will satisfy as well.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000215You just have to define the "whole" path: >
216
217 $ define VIM "<server_name>[""user password""]::device:<path>"
218 $ vi*m :== "mcr VIM:VIM.EXE"
219
220as for example: >
221
222 $ define VIM "PLUTO::RF10:[UTIL.VIM]"
223 $ define VIM "PLUTO""ZAY mypass""::RF10:[UTIL.VIM]" ! if passwd required
224
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000225You can also use the $VIMRUNTIME logical to point to the proper version of Vim
226if you have installed more versions at the same time. If $VIMRUNTIME is not
227defined Vim will borrow its value from the $VIM logical. You can find more
228information about the $VIMRUNTIME logical by typing :help runtime as a Vim
229command.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000230
231System administrators might want to set up a system wide Vim installation,
232then add to the SYS$STARTUP:SYLOGICALS.COM >
233
234 $ define/nolog/sys VIM device:<path>
235 $ define/nolog/sys TMP SYS$SCRATCH
236
237and to the SYS$STARTUP:SYLOGIN.COM >
238
239 $ vi*m :== mcr VIM:VIM.EXE
240 $ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40
241
242
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000243It will set up a normal Vim work environment for every user on the system.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000244
Bram Moolenaarb475fb92006-03-02 22:40:52 +0000245IMPORTANT: Vim on OpenVMS (and on other case insensitive system) command line
246parameters are assumed to be lowecase. In order to indicate that a command
247line parameter is uppercase "/" sign must be used.
248
249Examples:
250 >
251 vim -R filename ! means: -r List swap files and exit
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000252 vim -/r filename ! means: -R Readonly mode (like "view")
253 vim -u <vimrc> ! means: -u Use <vimrc> instead of any .vimrc
254 vim -/u <gvimrc> ! means: -U Use <gvimrc> instead of any .gvimrc
255
Bram Moolenaar071d4272004-06-13 20:20:40 +0000256==============================================================================
257
2587. GUI mode questions *vms-gui*
259
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000260OpenVMS is a real mainframe OS, therefore even if it has a GUI console, most
261of the users do not use a native X/Window environment during normal operation.
262It is not possible to start Vim in GUI mode "just like that". But anyhow it
263is not too complicated either.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000264
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000265First of all: you will need an executable that is built with the GUI enabled.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000266
267Second: you need to have installed DECW/Motif on your VMS server, otherwise
268you will get errors that some shareable libraries are missing.
269
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000270Third: If you choose to run Vim with extra features such as GUI/GTK then you
271need a GTK installation too or at least a GTK runtime environment (LIBGTK
Bram Moolenaar5eba4c22005-07-12 22:40:29 +0000272can be downloaded from http://www.polarhome.com/vim/).
Bram Moolenaar071d4272004-06-13 20:20:40 +0000273
2741) If you are working on the VMS X/Motif console:
275 Start Vim with the command: >
276
277 $ mc device:<path>VIM.EXE -g
278<
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000279 or type :gui as a command to the Vim command prompt. For more info :help
280 gui
Bram Moolenaar071d4272004-06-13 20:20:40 +0000281
Bram Moolenaar402d2fe2005-04-15 21:00:38 +00002822) If you are working on some other X/Window environment like Unix or a remote
283 X VMS console. Set up display to your host with: >
Bram Moolenaar071d4272004-06-13 20:20:40 +0000284
285 $ set disp/create/node=<your IP address>/trans=<transport-name>
286<
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000287 and start Vim as in point 1. You can find more help in VMS documentation or
Bram Moolenaar071d4272004-06-13 20:20:40 +0000288 type: help set disp in VMS prompt.
289 Examples: >
290
291 $ set disp/create/node=192.168.5.159 ! default trans is DECnet
292 $ set disp/create/node=192.168.5.159/trans=tcpip ! TCP/IP network
293 $ set disp/create/node=192.168.5.159/trans=local ! display on the same node
294
295Note: you should define just one of these.
296For more information type $help set disp in VMS prompt.
297
2983) Another elegant solution is XDM if you have installed on OpenVMS box.
299 It is possible to work from XDM client as from GUI console.
300
Bram Moolenaar402d2fe2005-04-15 21:00:38 +00003014) If you are working on MS-Windows or some other non X/Window environment
302 you need to set up one X server and run Vim as in point 2.
303 For MS-Windows there are available free X servers as MIX , Omni X etc.,
Bram Moolenaar071d4272004-06-13 20:20:40 +0000304 as well as excellent commercial products as eXcursion or ReflectionX with
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000305 built-in DEC support.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000306
307Please note, that executables without GUI are slightly faster during startup
308then with enabled GUI in character mode. Therefore, if you do not use GUI
309features, it is worth to choose non GUI executables.
310
311==============================================================================
312
3138. Useful notes *vms-notes*
314
3158.1 backspace/delete
3168.2 Filters
3178.3 VMS file version numbers
3188.4 Directory conversion
3198.5 Remote host invocation
3208.6 Terminal problems
3218.7 Hex-editing and other external tools
3228.8 Sourcing vimrc and gvimrc
3238.9 Printing from Vim
3248.10 Setting up the symbols
3258.11 diff and other GNU programs
3268.12 diff-mode
3278.13 Allow '$' in C keywords
3288.14 VIMTUTOR for beginners
329
3308.1 backspace/delete
331
332There are backspace/delete key inconsistencies with VMS.
333:fixdel doesn't do the trick, but the solution is: >
334
335 :inoremap ^? ^H " for terminal mode
336 :inoremap <Del> ^H " for gui mode
337
338Read more in ch: 8.6 (Terminal problems).
339(Bruce Hunsaker <BNHunsaker@chq.byu.edu> Vim 5.3)
340
341
3428.2 Filters
343
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000344Vim supports filters, i.e., if you have a sort program that can handle
Bram Moolenaar071d4272004-06-13 20:20:40 +0000345input/output redirection like Unix (<infile >outfile), you could use >
346
347 :map \s 0!'aqsort<CR>
348
349(Charles E. Campbell, Jr. <cec@gryphon.gsfc.nasa.gov> Vim 5.4)
350
351
3528.3 VMS file version numbers
353
354Vim is saving files into a new file with the next higher file version
355number, try these settings. >
356
357 :set nobackup " does not create *.*_ backup files
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000358 :set nowritebackup " does not have any purpose on VMS. It's the
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000359 " default.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000360
361Recovery is working perfect as well from the default swap file.
362Read more with :help swapfile
363
364(Claude Marinier <ClaudeMarinier@xwavesolutions.com> Vim 5.5, Zoltan Arpadffy
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000365Vim 5.6)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000366
367
3688.4 Directory conversion
369
370Vim will internally convert any unix-style paths and even mixed unix/VMS
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000371paths into VMS style paths. Some typical conversions resemble:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000372
373 /abc/def/ghi -> abc:[def]ghi.
374 /abc/def/ghi.j -> abc:[def]ghi.j
375 /abc/def/ghi.j;2 -> abc:[def]ghi.j;2
376 /abc/def/ghi/jkl/mno -> abc:[def.ghi.jkl]mno.
377 abc:[def.ghi]jkl/mno -> abc:[def.ghi.jkl]mno.
378 ./ -> current directory
379 ../ -> relative parent directory
380 [.def.ghi] -> relative child directory
381 ./def/ghi -> relative child directory
382
383Note: You may use <,> brackets as well (device:<path>file.ext;version) as
384rf10:<user.zay.work>test.c;1
385
386(David Elins <delins@foliage.com>, Jerome Lauret
387<JLAURET@mail.chem.sunysb.edu> Vim 5.6 )
388
389
3908.5 Remote host invocation
391
392It is possible to use Vim as an internode editor.
3931. Edit some file from remote node: >
394
395 vi "<server>""username passwd""::<device>:<path><filename>;<version>"
396
397example: >
398 vi "pluto""zay passwd""::RF10:<USER.ZAY.WORK>TEST.C;1"
399
400Note: syntax is very important, otherwise VMS will recognize more parameters
401instead of one (resulting with: file not found)
402
Bram Moolenaar402d2fe2005-04-15 21:00:38 +00004032. Set up Vim as your internode editor. If Vim is not installed on your
404host, just set up your IP address, the full Vim path including the server name
405and run the command procedure below: >
Bram Moolenaar071d4272004-06-13 20:20:40 +0000406
407 $ if (p1 .eqs. "") .OR. (p2 .eqs. "") then goto usage
408 $ set disp/create/node=<your_IP_here>/trans=tcpip
409 $ define "VIM "<vim_server>""''p1' ''p2'""::<device>:<vim_path>"
410 $ vi*m :== "mcr VIM:VIM.EXE"
411 $ gv*im :== "spawn/nowait mcr VIM:VIM.EXE -g"
412 $ goto end
413 $ usage:
414 $ write sys$output " Please enter username and password as a parameter."
415 $ write sys$output " Example: @SETVIM.COM username passwd"
416 $ end:
417
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000418Note: Never use it in a clustered environment (you do not need it), loading
419could be very-very slow, but even faster then a local Emacs. :-)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000420
421(Zoltan Arpadffy, Vim 5.6)
422
423
4248.6 Terminal problems
425
426If your terminal name is not known to Vim and it is trying to find the default
427one you will get the following message during start-up:
428---
429Terminal entry not found in termcap
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000430'unknown-terminal' not known. Available built-in terminals are:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000431 builtin_gui
432 builtin_riscos
433 builtin_amiga
434 builtin_beos-ansi
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 default terminal name: >
447
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000448 $ ! unknown terminal name. Let us use vt320 or ansi instead.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000449 $ ! Note: it's case sensitive
450 $ define term "vt320"
451
452Terminals from VT100 to VT320 (as V300, VT220, VT200 ) do not need any extra
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000453keyboard mappings. They should work perfect as they are, including arrows,
454Ins, Del buttons etc., except Backspace in GUI mode. To solve it, add to
Bram Moolenaar071d4272004-06-13 20:20:40 +0000455.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 very slow connection, it's
467recommended to avoid 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
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000483to DCL prompt. This feature is possible to use without any problem with all
Bram Moolenaar071d4272004-06-13 20:20:40 +0000484DCL commands, but if we want to execute some program as XXD, CTAGS, JTAGS etc.
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000485we're running into trouble if we follow the Vim documentation (see: help
Bram Moolenaar071d4272004-06-13 20:20:40 +0000486xxd).
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
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000496Note: You can use XXD and CTAGS from GUI menu.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000497
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000498To customize ctags it is possible to define the logical $CTAGS with standard
Bram Moolenaar071d4272004-06-13 20:20:40 +0000499parameters 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.
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000514The symptom is that Vim is not sourcing your .vimrc/.gvimrc, even if you say:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000515>
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, <sandor.kopanyi@mailbox.hu> 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 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.
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000561There is a simple solution to solve this anomaly. Install a Unix like diff
562and Vim will work perfect in diff mode too. You just have to redefine your
Bram Moolenaar071d4272004-06-13 20:20:40 +0000563diff 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 some other programs as patch, make etc that may cause same problems.
569At www.polarhome.com is possible to download an GNU package for Alpha and VAX
570boxes 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|
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000577and |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:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000580 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
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000584tools in http://www.polarhome.com/vim/files/gnu_tools.zip. I suggest to
Bram Moolenaar071d4272004-06-13 20:20:40 +0000585unpack it in a separate directory "GNU" and create a logical GNU: that
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000586points to that directory, e.g: >
Bram Moolenaar071d4272004-06-13 20:20:40 +0000587
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
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000595Now you need to tell vim to use the new diff program. Take the example
Bram Moolenaar071d4272004-06-13 20:20:40 +0000596settings from |diff-diffexpr| and change the call to the external diff
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000597program to the new diff on VMS. Add this to your .vimrc file: >
Bram Moolenaar071d4272004-06-13 20:20:40 +0000598
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
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000638DEC 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
Bram Moolenaar071d4272004-06-13 20:20:40 +0000640with the |iskeyword|command.
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-]
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000651tag-lookup, work on the whole identifier. (Ctags on VMS also supports '$' in
Bram Moolenaar071d4272004-06-13 20:20:40 +0000652C keywords since ctags version 5.1.)
653
654( Coen Engelbarts, Vim 6.1)
655
6568.14 VIMTUTOR for beginners
657
658It exits VIMTUTOR.COM DCL script that can help Vim beginners to learn/make
Bram Moolenaar402d2fe2005-04-15 21:00:38 +0000659first steps with Vim on OpenVMS. Depending of binary distribution you may
660start it with: >
Bram Moolenaar071d4272004-06-13 20:20:40 +0000661
662 @vim:vimtutor
663
664(Thomas.R.Wyant III, Vim 6.1)
665
666==============================================================================
667
6689. VMS related changes *vms-changes*
669
Bram Moolenaarb475fb92006-03-02 22:40:52 +0000670Version 7
671- Improved low level char input (affects just console mode)
672
673Version 6.4 (2005 Oct 15)
Bram Moolenaar5eba4c22005-07-12 22:40:29 +0000674- GTKLIB and Vim build on IA64
675- colors in terminal mode
676- syntax highlighting in terminal mode
677- write problem fixed (extra CR)
678- ESC and ESC sequence recognition in terminal mode
679- make file changed to support new MMS version
680- env variable expansion in path corrected
681- printing problems corrected
682- help text added for case insensitive arguments
683
Bram Moolenaar071d4272004-06-13 20:20:40 +0000684Version 6.3 (2004 May 10)
685- Improved vms_read function
686- CTAGS v5.5.4 included
687- Documentation corrected and updated
688
689Version 6.2 (2003 May 7)
690- Corrected VMS system call results
691- Low level character input is rewritten
692- Correction in tag and quickfix handling
693- First GTK build
694- Make file changes
695 - GTK feature added
696 - Define for OLD_VMS
697 - OpenVMS version 6.2 or older
698- Documentation updated with GTK features
699- CTAGS v5.5 included
700- VMS VIM tutor created
701
702Version 6.1 (2002 Mar 25)
703- TCL init_tcl() problem fixed
704- CTAGS v5.4 included
705- GNU tools binaries for OpenVMS
706- Make file changes
707 - PERL, PYTHON and TCL support improved
708 - InstallVMS.txt has a detailed description HOWTO build
709- VMS/Unix file handling rewritten
710- Minor casting and bug fixes
711
712Version 6.0 (2001 Sep 28)
713- Unix and VMS code has been merged
714 - separated "really" VMS related code
715 - included all possible Unix functionality
716 - simplified or deleted the configuration files
717 - makefile MAKE_VMS.MMS reviewed
718- menu changes (fixed printing, CTAGS and XXD usage)
719- fixed variable RMS record format handling anomaly
720- corrected syntax, ftplugin etc files load
721- changed expand_wildcards and expandpath functions to work more general
722- created OS_VMS_FILTER.COM - DECC->VAXC pre-processor directive convert
723 script.
724- Improved code's VAXC and new DECC compilers compatibility
725- changed quickfix parameters:
726 - errormessage format to suite DECC
727 - search, make and other commands to suite VMS system
728- updated and renamed MMS make files for Vim and CTAGS.
729- CTAGS has been removed from source distribution of Vim but it will remain
730 in OpenVMS binary distributions.
731- simplified build/configuration procedure
732- created INSTALLvms.txt - detailed compiling instructions under VMS.
733- updated test scripts.
734
735Version 5.8 (2001 Jun 1)
736- OS_VMS.TXT updated with new features.
737- other minor fixes.
738- documentation updated
739- this version had been tested much more than any other OpenVMS version
740 earlier
741
742Version 5.7 (2000 Jun 24)
743- New CTAGS v5.0 in distribution
744- Documentation updated
745
746Version 5.6 (2000 Jan 17)
747- VMS filename related changes:
748 - version handling (open everything, save to new version)
749 - correct file extension matching for syntax (version problem)
750 - handle <,> characters and passwords in directory definition
751 - handle internode/remote invocation and editing with passwords
752 - OpenVMS files will be treated case insensitive from now
753 - corrected response of expand("%:.") etc path related functions
754 (in one word: VMS directory handling internally)
755- version command
756 - corrected (+,-) information data
757 - added compiler and OS version
758 - added user and host information
759 - resolving $VIM and $VIMRUNTIME logicals
760- VMS port is in MAX_FEAT (maximum features) club with Unix, Win32 and OS/2.
761 - enabled farsi, rightleft etc. features
762 - undo level raised up to 1000
763- Updated OS_VMS.MMS file.
764 - maximum features ON is default
765 - Vim is compilable with +perl, +python and +tcl features.
766 - improved MMK compatibility
767- Created MAKEFILE_VMS.MMS, makefile for testing Vim during development.
768- Defined DEC terminal VT320
769 - compatibility for VT3*0, VT2*0 and VT1*0 - ANSI terminals
770 backwards, but not VT340 and newer with colour capability.
771 - VT320 is default terminal for OpenVMS
772 - these new terminals are also fast ttys (default for OpenVMS).
773 - allowed dec_mouse ttym
774- Updated files vimrc and gvimrc with VMS specific suggestions.
775- OS_VMS.TXT updated with new features.
776
777Version 5.5 (1999 Dec 3)
778- Popup menu line crash corrected.
779- Handle full file names with version numbers.
780- Directory handling (CD command etc.)
781- Corrected file name conversion VMS to Unix and v.v.
782- Correct response of expand wildcards
783- Recovery is working from this version under VMS as well.
784- Improved terminal and signal handing.
785- Improved OS_VMS.TXT
786
787Version 5.4 (1999 Sep 9)
788- Cut and paste mismatch corrected.
789- Motif directories during open and save are corrected.
790
791Version 5.3 (1998 Oct 12)
792- Minor changes in the code
793- Standard distribution with +GUI option
794
795Version 5.1 (1998 Apr 21)
796- Syntax and DEC C changes in the code
797- Fixing problems with the /doc subdirectory
798- Improve OS_VMS.MMS
799
800Version 4.5 (1996 Dec 16)
801- First VMS port by Henk Elbers <henk@xs4all.nl>
802
803==============================================================================
804
80510. Authors *vms-authors*
806
807OpenVMS documentation and executables are maintained by:
808Zoltan Arpadffy <arpadffy@polarhome.com>
809
810This document uses parts and remarks from earlier authors and contributors
811of OS_VMS.TXT:
812 Charles E. Campbell, Jr. <cec@gryphon.gsfc.nasa.gov>
813 Bruce Hunsaker <BNHunsaker@chq.byu.edu>
814 Sandor Kopanyi <sandor.kopanyi@mailbox.hu>
815
816 vim:tw=78:ts=8:ft=help:norl: