comparison runtime/doc/os_vms.txt @ 236:4707450c2b33

updated for version 7.0066
author vimboss
date Fri, 15 Apr 2005 21:00:38 +0000
parents 4102fb4ea781
children 53c36fa7dc29
comparison
equal deleted inserted replaced
235:23d380e32c95 236:4707450c2b33
1 *os_vms.txt* For Vim version 7.0aa. Last change: 2004 Jun 16 1 *os_vms.txt* For Vim version 7.0aa. Last change: 2005 Apr 01
2 2
3 3
4 VIM REFERENCE MANUAL 4 VIM REFERENCE MANUAL
5 5
6 6
67 ============================================================================== 67 ==============================================================================
68 68
69 4. Problems *vms-problems* 69 4. Problems *vms-problems*
70 70
71 The code has been tested under Open VMS 6.2 - 7.3 on Alpha and VAX platforms 71 The code has been tested under Open VMS 6.2 - 7.3 on Alpha and VAX platforms
72 with the DECC compiler. It should work without bigger problems. 72 with the DEC C compiler. It should work without bigger problems.
73 If it happened that your system does not have some include libraries you can 73 If your system does not have some include libraries you can tune up in
74 tune up in OS_VMS_CONF.H file. 74 OS_VMS_CONF.H file.
75 75
76 If you decided to build Vim with +perl, +python, etc. options, first you need 76 If you decided to build Vim with +perl, +python, etc. options, first you need
77 to download OpenVMS distributions of Perl and Python. Build and deploy the 77 to download OpenVMS distributions of Perl and Python. Build and deploy the
78 libraries and change adequate lines in MAKE_VMS.MMS file. There should not be 78 libraries and change adequate lines in MAKE_VMS.MMS file. There should not be
79 problem from Vim side. 79 a problem from Vim side.
80 80
81 Note: Under VAX it should work with DEC C compiler without problem. VAXC 81 Note: Under VAX it should work with the DEC C compiler without problems. The
82 compiler is not fully ANSI C compatible in pre-processor directives 82 VAX C compiler is not fully ANSI C compatible in pre-processor directives
83 semantics, therefore you have to use a converter program what will do the 83 semantics, therefore you have to use a converter program what will do the lion
84 lion part of the job. For detailed instruction read file INSTALLvms.txt 84 part of the job. For detailed instructions read file INSTALLvms.txt
85 85
86 MMS_VIM.EXE is building together with VIM.EXE, but for XD.EXE you should 86 MMS_VIM.EXE is build together with VIM.EXE, but for XD.EXE you should
87 change to subdirectory and build it separately. 87 change to subdirectory and build it separately.
88 88
89 CTAGS is not part of Vim source distribution any more, however the OpenVMS 89 CTAGS is not part of the Vim source distribution anymore, however the OpenVMS
90 specific source might contain CTAGS source files as it is described above. 90 specific source might contain CTAGS source files as described above.
91 You can find more information about CTAGS on VMS at 91 You can find more information about CTAGS on VMS at
92 http://www.polarhome.com/ctags/ 92 http://www.polarhome.com/ctags/
93 93
94 Advanced users may try some acrobatics in FEATURE.H file also. 94 Advanced users may try some acrobatics in FEATURE.H file also.
95 95
96 It is possible to compile with +xfontset +xim options too, but then you have 96 It is possible to compile with +xfontset +xim options too, but then you have
97 to set up GUI fonts etc. correctly. See. :help xim from Vim command prompt. 97 to set up GUI fonts etc. correctly. See :help xim from Vim command prompt.
98 98
99 You may want to use GUI with GTK icons, then you have to download and install 99 You may want to use GUI with GTK icons, then you have to download and install
100 GTK for OpenVMS or at least runtime shareable images - LIBGTK from 100 GTK for OpenVMS or at least runtime shareable images - LIBGTK from
101 polarhome.com 101 polarhome.com
102 102
130 define/nolog VIM device:[path.vim] 130 define/nolog VIM device:[path.vim]
131 define/nolog VIMRUNTIME device:[path.vim.vim60] 131 define/nolog VIMRUNTIME device:[path.vim.vim60]
132 define/nolog TMP device:[path.tmp] 132 define/nolog TMP device:[path.tmp]
133 133
134 to get vim.exe to find its document, filetype, and syntax files, and to 134 to get vim.exe to find its document, filetype, and syntax files, and to
135 specify a directory where temporary files will be located. Copy the "runtime" 135 specify a directory where temporary files will be located. Copy the "runtime"
136 subdirectory of the vim distribution to vimruntime. 136 subdirectory of the vim distribution to vimruntime.
137 137
138 Logicals $VIMRUNTIME and $TMP are optional. 138 Logicals $VIMRUNTIME and $TMP are optional.
139 139
140 If $VIMRUNTIME is not set, Vim will guess and try to set up automatically. 140 If $VIMRUNTIME is not set, Vim will guess and try to set up automatically.
141 Read more about at :help runtime 141 Read more about it at :help runtime
142 142
143 If $TMP is not set, you will not be able to use some functions as CTAGS, 143 If $TMP is not set, you will not be able to use some functions as CTAGS,
144 XXD, printing etc. that use temporary directory for normal operation. 144 XXD, printing etc. that use temporary directory for normal operation.
145 $TMP directory should be readable and writable by the user(s). 145 The $TMP directory should be readable and writable by the user(s).
146 The easiest way to set up $TMP is to define logical: > 146 The easiest way to set up $TMP is to define a logical: >
147 147
148 define/nolog TMP SYS$SCRATCH 148 define/nolog TMP SYS$SCRATCH
149 or as: > 149 or as: >
150 define/nolog TMP SYS$LOGIN 150 define/nolog TMP SYS$LOGIN
151 151
153 153
154 6. Practical usage *vms-usage* 154 6. Practical usage *vms-usage*
155 155
156 Usually, you want to run just one version of Vim on your system, therefore 156 Usually, you want to run just one version of Vim on your system, therefore
157 it is enough to dedicate one directory for Vim. 157 it is enough to dedicate one directory for Vim.
158 Copy all Vim runtime directory structure to the deployment position. 158 Copy the whole Vim runtime directory structure to the deployment position.
159 Add the following lines to your LOGIN.COM (in SYS$LOGIN directory). 159 Add the following lines to your LOGIN.COM (in SYS$LOGIN directory).
160 Set up logical $VIM as: > 160 Set up the logical $VIM as: >
161 161
162 $ define VIM device:<path> 162 $ define VIM device:<path>
163 163
164 Set up some symbols: > 164 Set up some symbols: >
165 165
172 Please, check the notes for customization and configuration of symbols. 172 Please, check the notes for customization and configuration of symbols.
173 173
174 You may want to create .vimrc and .gvimrc files in your home directory 174 You may want to create .vimrc and .gvimrc files in your home directory
175 (SYS$LOGIN) to overwrite default settings. 175 (SYS$LOGIN) to overwrite default settings.
176 176
177 The easiest way is just rename example files. You may leave the menu file 177 The easiest way is just rename example files. You may leave the menu file
178 (MENU.VIM) and files vimrc and gvimrc in the original $VIM directory. It will 178 (MENU.VIM) and files vimrc and gvimrc in the original $VIM directory. It will
179 be default setup for all users, and for users is enough just to have their 179 be default setup for all users, and for users it is enough just to have their
180 own additions or resetting in home directory in files .vimrc and .gvimrc. 180 own additions or resetting in their home directory in files .vimrc and .gvimrc.
181 It should work without problems. 181 It should work without problems.
182 182
183 Note: Remember, system rc files (default for all users) does not have leading 183 Note: Remember, system rc files (default for all users) don't have a leading
184 "." So, system rc files are: > 184 ".". So, system rc files are: >
185 185
186 $VIM:vimrc 186 $VIM:vimrc
187 $VIM:gvimrc 187 $VIM:gvimrc
188 $VIM:menu.vim 188 $VIM:menu.vim
189 189
190 and user's customized rc files are: > 190 and user customized rc files are: >
191 191
192 sys$login:.vimrc 192 sys$login:.vimrc
193 sys$login:.gvimrc 193 sys$login:.gvimrc
194 194
195 You can check that everything is on the right place with the :version command. 195 You can check that everything is on the right place with the :version command.
201 $ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40 201 $ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40
202 $ set disp/create/node=192.168.5.223/trans=tcpip 202 $ set disp/create/node=192.168.5.223/trans=tcpip
203 203
204 Note: This set-up should be enough, if you are working on standalone server or 204 Note: This set-up should be enough, if you are working on standalone server or
205 clustered environment, but if you want to use Vim as internode editor in 205 clustered environment, but if you want to use Vim as internode editor in
206 DECNET environment, it will satisfy you as well. 206 DECNET environment, it will satisfy as well.
207 You just have to define the "whole" path: > 207 You just have to define the "whole" path: >
208 208
209 $ define VIM "<server_name>[""user password""]::device:<path>" 209 $ define VIM "<server_name>[""user password""]::device:<path>"
210 $ vi*m :== "mcr VIM:VIM.EXE" 210 $ vi*m :== "mcr VIM:VIM.EXE"
211 211
212 as for example: > 212 as for example: >
213 213
214 $ define VIM "PLUTO::RF10:[UTIL.VIM]" 214 $ define VIM "PLUTO::RF10:[UTIL.VIM]"
215 $ define VIM "PLUTO""ZAY mypass""::RF10:[UTIL.VIM]" ! if passwd required 215 $ define VIM "PLUTO""ZAY mypass""::RF10:[UTIL.VIM]" ! if passwd required
216 216
217 You can also use $VIMRUNTIME logical to point to proper version of Vim if you 217 You can also use the $VIMRUNTIME logical to point to the proper version of Vim
218 have installed more versions in the same time. If $VIMRUNTIME is not defined 218 if you have installed more versions at the same time. If $VIMRUNTIME is not
219 Vim will borrow value from $VIM logical. You can find more information about 219 defined Vim will borrow its value from the $VIM logical. You can find more
220 $VIMRUNTIME logical by typing :help runtime as a Vim command. 220 information about the $VIMRUNTIME logical by typing :help runtime as a Vim
221 command.
221 222
222 System administrators might want to set up a system wide Vim installation, 223 System administrators might want to set up a system wide Vim installation,
223 then add to the SYS$STARTUP:SYLOGICALS.COM > 224 then add to the SYS$STARTUP:SYLOGICALS.COM >
224 225
225 $ define/nolog/sys VIM device:<path> 226 $ define/nolog/sys VIM device:<path>
229 230
230 $ vi*m :== mcr VIM:VIM.EXE 231 $ vi*m :== mcr VIM:VIM.EXE
231 $ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40 232 $ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40
232 233
233 234
234 It will set up normal Vim work environment for every user on the system. 235 It will set up a normal Vim work environment for every user on the system.
235 236
236 ============================================================================== 237 ==============================================================================
237 238
238 7. GUI mode questions *vms-gui* 239 7. GUI mode questions *vms-gui*
239 240
240 OpenVMS in a real mainframe OS, therefore even if it has a GUI console, most of 241 OpenVMS is a real mainframe OS, therefore even if it has a GUI console, most
241 the users does not use a native X/Window environment during normal operation. 242 of the users do not use a native X/Window environment during normal operation.
242 It is not possible to start Vim in GUI mode "just like that". But anyhow it is 243 It is not possible to start Vim in GUI mode "just like that". But anyhow it
243 not too complicate either. 244 is not too complicated either.
244 245
245 First of all: you will need an executable that is built with enabled GUI. 246 First of all: you will need an executable that is built with the GUI enabled.
246 247
247 Second: you need to have installed DECW/Motif on your VMS server, otherwise 248 Second: you need to have installed DECW/Motif on your VMS server, otherwise
248 you will get errors that some shareable libraries are missing. 249 you will get errors that some shareable libraries are missing.
249 250
250 Third: If you choose to run Vim with extra feature as GUI/GTK then you need 251 Third: If you choose to run Vim with extra features such as GUI/GTK then you
251 GTK installation too or at least GTK runtime environment (LIBGTK etc.) 252 need a GTK installation too or at least a GTK runtime environment (LIBGTK
253 etc.).
252 254
253 1) If you are working on the VMS X/Motif console: 255 1) If you are working on the VMS X/Motif console:
254 Start Vim with the command: > 256 Start Vim with the command: >
255 257
256 $ mc device:<path>VIM.EXE -g 258 $ mc device:<path>VIM.EXE -g
257 < 259 <
258 or type :gui as a command to the Vim command prompt. For more info :help gui 260 or type :gui as a command to the Vim command prompt. For more info :help
259 261 gui
260 2) If you are working on other X/Window environment as Unix or some remote X 262
261 VMS console. Set up display to your host with: > 263 2) If you are working on some other X/Window environment like Unix or a remote
264 X VMS console. Set up display to your host with: >
262 265
263 $ set disp/create/node=<your IP address>/trans=<transport-name> 266 $ set disp/create/node=<your IP address>/trans=<transport-name>
264 < 267 <
265 and start Vim as in point 1. You can find more help in VMS documentation or 268 and start Vim as in point 1. You can find more help in VMS documentation or
266 type: help set disp in VMS prompt. 269 type: help set disp in VMS prompt.
267 Examples: > 270 Examples: >
268 271
269 $ set disp/create/node=192.168.5.159 ! default trans is DECnet 272 $ set disp/create/node=192.168.5.159 ! default trans is DECnet
270 $ set disp/create/node=192.168.5.159/trans=tcpip ! TCP/IP network 273 $ set disp/create/node=192.168.5.159/trans=tcpip ! TCP/IP network
274 For more information type $help set disp in VMS prompt. 277 For more information type $help set disp in VMS prompt.
275 278
276 3) Another elegant solution is XDM if you have installed on OpenVMS box. 279 3) Another elegant solution is XDM if you have installed on OpenVMS box.
277 It is possible to work from XDM client as from GUI console. 280 It is possible to work from XDM client as from GUI console.
278 281
279 4) If you are working on MS Windows or other non X/Window environment 282 4) If you are working on MS-Windows or some other non X/Window environment
280 You need to set up one X server and run Vim as in point 2. 283 you need to set up one X server and run Vim as in point 2.
281 For MS Windows there are available free X servers as MIX , Omni X etc. 284 For MS-Windows there are available free X servers as MIX , Omni X etc.,
282 as well as excellent commercial products as eXcursion or ReflectionX with 285 as well as excellent commercial products as eXcursion or ReflectionX with
283 built in DEC support. 286 built-in DEC support.
284 287
285 Please note, that executables without GUI are slightly faster during startup 288 Please note, that executables without GUI are slightly faster during startup
286 then with enabled GUI in character mode. Therefore, if you do not use GUI 289 then with enabled GUI in character mode. Therefore, if you do not use GUI
287 features, it is worth to choose non GUI executables. 290 features, it is worth to choose non GUI executables.
288 291
317 (Bruce Hunsaker <BNHunsaker@chq.byu.edu> Vim 5.3) 320 (Bruce Hunsaker <BNHunsaker@chq.byu.edu> Vim 5.3)
318 321
319 322
320 8.2 Filters 323 8.2 Filters
321 324
322 Vim supports filters; ie. if you have a sort program that can handle 325 Vim supports filters, i.e., if you have a sort program that can handle
323 input/output redirection like Unix (<infile >outfile), you could use > 326 input/output redirection like Unix (<infile >outfile), you could use >
324 327
325 :map \s 0!'aqsort<CR> 328 :map \s 0!'aqsort<CR>
326 329
327 (Charles E. Campbell, Jr. <cec@gryphon.gsfc.nasa.gov> Vim 5.4) 330 (Charles E. Campbell, Jr. <cec@gryphon.gsfc.nasa.gov> Vim 5.4)
331 334
332 Vim is saving files into a new file with the next higher file version 335 Vim is saving files into a new file with the next higher file version
333 number, try these settings. > 336 number, try these settings. >
334 337
335 :set nobackup " does not create *.*_ backup files 338 :set nobackup " does not create *.*_ backup files
336 :set nowritebackup " does not have any purpose on VMS. It's default. 339 :set nowritebackup " does not have any purpose on VMS. It's the
340 " default.
337 341
338 Recovery is working perfect as well from the default swap file. 342 Recovery is working perfect as well from the default swap file.
339 Read more with :help swapfile 343 Read more with :help swapfile
340 344
341 (Claude Marinier <ClaudeMarinier@xwavesolutions.com> Vim 5.5, Zoltan Arpadffy 345 (Claude Marinier <ClaudeMarinier@xwavesolutions.com> Vim 5.5, Zoltan Arpadffy
342 Vim 5.6 ) 346 Vim 5.6)
343 347
344 348
345 8.4 Directory conversion 349 8.4 Directory conversion
346 350
347 Vim will internally convert any unix-style paths and even mixed unix/VMS 351 Vim will internally convert any unix-style paths and even mixed unix/VMS
348 paths into VMS style paths. Some typical conversions resemble: 352 paths into VMS style paths. Some typical conversions resemble:
349 353
350 /abc/def/ghi -> abc:[def]ghi. 354 /abc/def/ghi -> abc:[def]ghi.
351 /abc/def/ghi.j -> abc:[def]ghi.j 355 /abc/def/ghi.j -> abc:[def]ghi.j
352 /abc/def/ghi.j;2 -> abc:[def]ghi.j;2 356 /abc/def/ghi.j;2 -> abc:[def]ghi.j;2
353 /abc/def/ghi/jkl/mno -> abc:[def.ghi.jkl]mno. 357 /abc/def/ghi/jkl/mno -> abc:[def.ghi.jkl]mno.
375 vi "pluto""zay passwd""::RF10:<USER.ZAY.WORK>TEST.C;1" 379 vi "pluto""zay passwd""::RF10:<USER.ZAY.WORK>TEST.C;1"
376 380
377 Note: syntax is very important, otherwise VMS will recognize more parameters 381 Note: syntax is very important, otherwise VMS will recognize more parameters
378 instead of one (resulting with: file not found) 382 instead of one (resulting with: file not found)
379 383
380 2. Set up Vim as your internode editor. If Vim is not installed on your host, 384 2. Set up Vim as your internode editor. If Vim is not installed on your
381 just set up your IP address, full Vim path including the server name and run 385 host, just set up your IP address, the full Vim path including the server name
382 the command procedure below: > 386 and run the command procedure below: >
383 387
384 $ if (p1 .eqs. "") .OR. (p2 .eqs. "") then goto usage 388 $ if (p1 .eqs. "") .OR. (p2 .eqs. "") then goto usage
385 $ set disp/create/node=<your_IP_here>/trans=tcpip 389 $ set disp/create/node=<your_IP_here>/trans=tcpip
386 $ define "VIM "<vim_server>""''p1' ''p2'""::<device>:<vim_path>" 390 $ define "VIM "<vim_server>""''p1' ''p2'""::<device>:<vim_path>"
387 $ vi*m :== "mcr VIM:VIM.EXE" 391 $ vi*m :== "mcr VIM:VIM.EXE"
390 $ usage: 394 $ usage:
391 $ write sys$output " Please enter username and password as a parameter." 395 $ write sys$output " Please enter username and password as a parameter."
392 $ write sys$output " Example: @SETVIM.COM username passwd" 396 $ write sys$output " Example: @SETVIM.COM username passwd"
393 $ end: 397 $ end:
394 398
395 Note: Never use it in clustered environment (you do not need it), and load could 399 Note: Never use it in a clustered environment (you do not need it), loading
396 be very-very slow, but even faster then a local Emacs. :-) 400 could be very-very slow, but even faster then a local Emacs. :-)
397 401
398 (Zoltan Arpadffy, Vim 5.6) 402 (Zoltan Arpadffy, Vim 5.6)
399 403
400 404
401 8.6 Terminal problems 405 8.6 Terminal problems
402 406
403 If your terminal name is not known to Vim and it is trying to find the default 407 If your terminal name is not known to Vim and it is trying to find the default
404 one you will get the following message during start-up: 408 one you will get the following message during start-up:
405 --- 409 ---
406 Terminal entry not found in termcap 410 Terminal entry not found in termcap
407 'unknown-terminal' not known. Available built-in terminals are: 411 'unknown-terminal' not known. Available built-in terminals are:
408 builtin_gui 412 builtin_gui
409 builtin_riscos 413 builtin_riscos
410 builtin_amiga 414 builtin_amiga
411 builtin_beos-ansi 415 builtin_beos-ansi
412 builtin_ansi 416 builtin_ansi
420 builtin_dumb 424 builtin_dumb
421 defaulting to 'vt320' 425 defaulting to 'vt320'
422 --- 426 ---
423 The solution is to define default terminal name: > 427 The solution is to define default terminal name: >
424 428
425 $ ! unknown terminal name. let us use vt320 or ansi instead. 429 $ ! unknown terminal name. Let us use vt320 or ansi instead.
426 $ ! Note: it's case sensitive 430 $ ! Note: it's case sensitive
427 $ define term "vt320" 431 $ define term "vt320"
428 432
429 Terminals from VT100 to VT320 (as V300, VT220, VT200 ) do not need any extra 433 Terminals from VT100 to VT320 (as V300, VT220, VT200 ) do not need any extra
430 keyboard mappings. They should work perfect as they are, including arrows, 434 keyboard mappings. They should work perfect as they are, including arrows,
431 Ins, Del buttons etc. Except Backspace in GUI mode. To solve it, add to 435 Ins, Del buttons etc., except Backspace in GUI mode. To solve it, add to
432 .gvimrc: > 436 .gvimrc: >
433 437
434 inoremap <Del> <BS> 438 inoremap <Del> <BS>
435 439
436 Vim will also recognize that they are fast terminals. 440 Vim will also recognize that they are fast terminals.
455 459
456 RUN <path>filename 460 RUN <path>filename
457 MCR <path>filename <parameters> 461 MCR <path>filename <parameters>
458 462
459 OpenVMS users always have to be aware that the Vim command :! "just" drop them 463 OpenVMS users always have to be aware that the Vim command :! "just" drop them
460 to DCL prompt. This feature is possible to use without any problem with all 464 to DCL prompt. This feature is possible to use without any problem with all
461 DCL commands, but if we want to execute some program as XXD, CTAGS, JTAGS etc. 465 DCL commands, but if we want to execute some program as XXD, CTAGS, JTAGS etc.
462 we're running into trouble if we following the Vim documentation (see: help 466 we're running into trouble if we follow the Vim documentation (see: help
463 xxd). 467 xxd).
464 468
465 Solution: Execute with the MC command and add the full path to the executable. 469 Solution: Execute with the MC command and add the full path to the executable.
466 Example: Instead of :%!xxd command use: > 470 Example: Instead of :%!xxd command use: >
467 471
468 :%!mc vim:xxd 472 :%!mc vim:xxd
469 473
470 ... or in general: > 474 ... or in general: >
471 :!mc <path>filename <parameters> 475 :!mc <path>filename <parameters>
472 476
473 Note: You can use XXD, and CTAGS from GUI menu. 477 Note: You can use XXD and CTAGS from GUI menu.
474 478
475 To customize ctags it is possible to define logical $CTAGS with standard 479 To customize ctags it is possible to define the logical $CTAGS with standard
476 parameters as: > 480 parameters as: >
477 481
478 define/nolog CTAGS "--totals -o sys$login:tags" 482 define/nolog CTAGS "--totals -o sys$login:tags"
479 483
480 For additional information, please read :help tagsearch and CTAGS 484 For additional information, please read :help tagsearch and CTAGS
486 8.8 Sourcing vimrc and gvimrc 490 8.8 Sourcing vimrc and gvimrc
487 491
488 If you want to use your .vimrc and .gvimrc from other platforms (e.g. Windows) 492 If you want to use your .vimrc and .gvimrc from other platforms (e.g. Windows)
489 you can get in trouble if you ftp that file(s): VMS has different end-of-line 493 you can get in trouble if you ftp that file(s): VMS has different end-of-line
490 indication. 494 indication.
491 The symptom is that ViM is not sourcing your .vimrc/.gvimrc, even if you say: 495 The symptom is that Vim is not sourcing your .vimrc/.gvimrc, even if you say:
492 > 496 >
493 :so sys$login:.vimrc 497 :so sys$login:.vimrc
494 498
495 One trick is to compress (e.g. zip) the files on the other platform and 499 One trick is to compress (e.g. zip) the files on the other platform and
496 uncompress it on VMS; if you have the same symptom, try to create the files 500 uncompress it on VMS; if you have the same symptom, try to create the files
533 537
534 8.11 diff and other GNU programs 538 8.11 diff and other GNU programs
535 539
536 From 6.0 diff functionality has been implemented, but OpenVMS does not use 540 From 6.0 diff functionality has been implemented, but OpenVMS does not use
537 GNU/Unix like diff therefore built in diff does not work. 541 GNU/Unix like diff therefore built in diff does not work.
538 There is a simple solution to solve this anomaly. Install an Unix like diff 542 There is a simple solution to solve this anomaly. Install a Unix like diff
539 and Vim will work perfect in diff mode too. You just have to redefine your 543 and Vim will work perfect in diff mode too. You just have to redefine your
540 diff program as: > 544 diff program as: >
541 545
542 define /nolog diff <GNU_PATH>diff.exe 546 define /nolog diff <GNU_PATH>diff.exe
543 547
544 Another, more sophisticated solution is described below (8.12 diff-mode) 548 Another, more sophisticated solution is described below (8.12 diff-mode)
549 553
550 554
551 8.12 diff-mode 555 8.12 diff-mode
552 556
553 Vim 6.0 and higher supports vim diff-mode (See |new-diff-mode|, |diff-mode| 557 Vim 6.0 and higher supports vim diff-mode (See |new-diff-mode|, |diff-mode|
554 and |08.7|). This uses the external program 'diff' and expects a Unix-like 558 and |08.7|). This uses the external program 'diff' and expects a Unix-like
555 output format from diff. The standard VMS diff has a different output 559 output format from diff. The standard VMS diff has a different output
556 format. To use vim on VMS in diff-mode, you need to: 560 format. To use vim on VMS in diff-mode, you need to:
557 1 Install a Unix-like diff program, e.g. GNU diff 561 1 Install a Unix-like diff program, e.g. GNU diff
558 2 Tell vim to use the Unix-like diff for diff-mode. 562 2 Tell vim to use the Unix-like diff for diff-mode.
559 563
560 You can download GNU diff from the VIM-VMS website, it is one of the GNU 564 You can download GNU diff from the VIM-VMS website, it is one of the GNU
561 tools in http://www.polarhome.com/vim/files/gnu_tools.zip. I suggest to 565 tools in http://www.polarhome.com/vim/files/gnu_tools.zip. I suggest to
562 unpack it in a separate directory "GNU" and create a logical GNU: that 566 unpack it in a separate directory "GNU" and create a logical GNU: that
563 points to that directory. e.g: > 567 points to that directory, e.g: >
564 568
565 DEFINE GNU <DISK>:[<DIRECTORY>.BIN.GNU] 569 DEFINE GNU <DISK>:[<DIRECTORY>.BIN.GNU]
566 570
567 You may also want to define a symbol GDIFF, to use the GNU diff from the DCL 571 You may also want to define a symbol GDIFF, to use the GNU diff from the DCL
568 prompt: > 572 prompt: >
569 573
570 GDIFF :== $GNU:DIFF.EXE 574 GDIFF :== $GNU:DIFF.EXE
571 575
572 Now you need to tell vim to use the new diff program. Take the example 576 Now you need to tell vim to use the new diff program. Take the example
573 settings from |diff-diffexpr| and change the call to the external diff 577 settings from |diff-diffexpr| and change the call to the external diff
574 program to the new diff on VMS. Add this to your .vimrc file: > 578 program to the new diff on VMS. Add this to your .vimrc file: >
575 579
576 " Set up vimdiff options 580 " Set up vimdiff options
577 if v:version >= 600 581 if v:version >= 600
578 " Use GNU diff on VMS 582 " Use GNU diff on VMS
579 set diffexpr=MyDiff() 583 set diffexpr=MyDiff()
610 ( Coen Engelbarts, Vim 6.1) 614 ( Coen Engelbarts, Vim 6.1)
611 615
612 616
613 8.13 Allow '$' in C keywords 617 8.13 Allow '$' in C keywords
614 618
615 DEC C uses many identifiers with '$' in them. This is not allowed in ANSI C, 619 DEC C uses many identifiers with '$' in them. This is not allowed in ANSI C,
616 and vim recognises the '$' as the end of the identifier. You can change this 620 and vim recognises the '$' as the end of the identifier. You can change this
617 with the |iskeyword|command. 621 with the |iskeyword|command.
618 Add this command to your .vimrc file: > 622 Add this command to your .vimrc file: >
619 623
620 autocmd FileType c,cpp,cs set iskeyword+=$ 624 autocmd FileType c,cpp,cs set iskeyword+=$
621 625
623 CS.VIM) and add this command: > 627 CS.VIM) and add this command: >
624 628
625 set iskeyword+=$ 629 set iskeyword+=$
626 630
627 Now word-based commands, e.g. the '*'-search-command and the CTRL-] 631 Now word-based commands, e.g. the '*'-search-command and the CTRL-]
628 tag-lookup, work on the whole identifier. (Ctags on VMS also supports '$' in 632 tag-lookup, work on the whole identifier. (Ctags on VMS also supports '$' in
629 C keywords since ctags version 5.1.) 633 C keywords since ctags version 5.1.)
630 634
631 ( Coen Engelbarts, Vim 6.1) 635 ( Coen Engelbarts, Vim 6.1)
632 636
633 8.14 VIMTUTOR for beginners 637 8.14 VIMTUTOR for beginners
634 638
635 It exits VIMTUTOR.COM DCL script that can help Vim beginners to learn/make 639 It exits VIMTUTOR.COM DCL script that can help Vim beginners to learn/make
636 first steps with Vim on OpenVMS. Depending of binary distribution you may start 640 first steps with Vim on OpenVMS. Depending of binary distribution you may
637 it with: > 641 start it with: >
638 642
639 @vim:vimtutor 643 @vim:vimtutor
640 644
641 (Thomas.R.Wyant III, Vim 6.1) 645 (Thomas.R.Wyant III, Vim 6.1)
642 646