| 
									
										
										
										
											2007-05-12 13:00:40 +00:00
										 |  |  | *os_os2.txt*    For Vim version 7.1.  Last change: 2007 Apr 22 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		  VIM REFERENCE MANUAL    by Paul Slootman | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 							*os2* *OS2* *OS/2* | 
					
						
							|  |  |  | This file contains the particularities for the OS/2 version of Vim. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | At present there is no native PM version of the GUI version of Vim: The OS/2 | 
					
						
							|  |  |  | version is a console application.  However, there is now a Win32s-compatible | 
					
						
							|  |  |  | GUI version, which should be usable by owners of Warp 4 (which supports | 
					
						
							|  |  |  | Win32s) in a Win-OS/2 session.  The notes in this file refer to the native | 
					
						
							|  |  |  | console version. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | NOTE | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This OS/2 port works well for me and a couple of other OS/2 users; however, | 
					
						
							|  |  |  | since I haven't had much feedback, that either means no (OS/2-specific) bugs | 
					
						
							|  |  |  | exist (besides the ones mentioned below), or no one has yet created a | 
					
						
							|  |  |  | situation in which any bugs are apparent.  File I/O in Dos and Unix mode, | 
					
						
							|  |  |  | binary mode, and FAT handling all seem to work well, which would seem to be | 
					
						
							|  |  |  | the most likely places for trouble. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | A known problem is that files opened by Vim are inherited by other programs | 
					
						
							|  |  |  | that are started via a shell escape from within Vim.  This specifically means | 
					
						
							|  |  |  | that Vim won't be able to remove the swap file(s) associated with buffers open | 
					
						
							|  |  |  | at the time the other program was started, until the other program is stopped. | 
					
						
							|  |  |  | At that time, the swap file may be removed, but if Vim could not do that the | 
					
						
							| 
									
										
										
										
											2005-04-15 21:00:38 +00:00
										 |  |  | first time, it won't be removed at all.  You'll get warnings that some other | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | Vim session may be editing the file when you start Vim up again on that file. | 
					
						
							| 
									
										
										
										
											2005-04-15 21:00:38 +00:00
										 |  |  | This can be reproduced with ":!start epm".  Now quit Vim, and start Vim again | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | with the file that was in the buffer at the time epm was started.  I'm working | 
					
						
							|  |  |  | on this! | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | A second problem is that Vim doesn't understand the situation when using it | 
					
						
							|  |  |  | when accessing the OS/2 system via the network, e.g. using telnet from a Unix | 
					
						
							| 
									
										
										
										
											2005-04-15 21:00:38 +00:00
										 |  |  | system, and then starting Vim.  The problem seems to be that OS/2 =sometimes= | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | recognizes function / cursor keys, and tries to convert those to the | 
					
						
							| 
									
										
										
										
											2005-04-15 21:00:38 +00:00
										 |  |  | corresponding OS/2 codes generated by the "normal" PC keyboard.  I've been | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | testing a workaround (mapping the OS/2 codes to the correct functions), but so | 
					
						
							| 
									
										
										
										
											2005-04-15 21:00:38 +00:00
										 |  |  | far I can't say anything conclusive (this is on Warp 3, by the way).  In the | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | meantime any help will be appreciated. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PREREQUISITES | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | To run Vim, you need the emx runtime environment (at least rev. 0.9b).  This | 
					
						
							|  |  |  | is generally available as (ask Archie about it): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     emxrt.zip     emx runtime package | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | I've included a copy of emx.dll, which should be copied to one of the | 
					
						
							| 
									
										
										
										
											2005-04-15 21:00:38 +00:00
										 |  |  | directories listed in your LIBPATH.  Emx is GPL'ed, but the emx.dll library is | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | not (read COPYING.EMX to find out what that means to you). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This emx.dll is from the emxfix04.zip package, which unfortunately has a bug, | 
					
						
							|  |  |  | eh, I mean a POSIX feature, in select().  Versions of Vim before 3.27 will | 
					
						
							| 
									
										
										
										
											2005-04-15 21:00:38 +00:00
										 |  |  | appear to hang when starting (actually, while processing vimrc).  Hit <Enter> a | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | couple of times until Vim starts working if this happens.  Next, get an up to | 
					
						
							|  |  |  | date version of Vim! | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | HELP AND VIMRC FILE | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | If you unpack the archive that Vim came in and run Vim directly from where it | 
					
						
							|  |  |  | was unpacked, Vim should be able to find the runtime files and your .vimrc | 
					
						
							|  |  |  | without any settings. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | If you put the runtime files separately from the binary, the VIM environment | 
					
						
							|  |  |  | variable is used to find the location of the help files and the system .vimrc. | 
					
						
							|  |  |  | Place an entry such as this in CONFIG.SYS: > | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   SET VIM=c:/local/lib/vim | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Put your .vimrc and your other Vim files in this directory.  Copy the runtime | 
					
						
							|  |  |  | directory to this directory.  Each version of Vim has its own runtime | 
					
						
							|  |  |  | directory.  It will be called something like "c:/local/lib/vim/vim54".  Thus | 
					
						
							|  |  |  | you get a tree of Vim files like this: | 
					
						
							|  |  |  | 	c:/local/lib/vim/.vimrc | 
					
						
							|  |  |  | 	c:/local/lib/vim/vim54/filetype.vim | 
					
						
							|  |  |  | 	c:/local/lib/vim/vim54/doc/help.txt | 
					
						
							|  |  |  | 	etc. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Note: .vimrc may also be called _vimrc to accommodate those who have chosen to | 
					
						
							| 
									
										
										
										
											2005-04-15 21:00:38 +00:00
										 |  |  | install OS/2 on a FAT file system.  Vim first tries to find .vimrc and if that | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | fails, looks for _vimrc in the same place.  The existence of a .vimrc or | 
					
						
							|  |  |  | _vimrc file influences the 'compatible' options, which can have unexpected side | 
					
						
							|  |  |  | effects.  See |'compatible'|. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | If you're using network drives with OS/2, then you can install Vim on a | 
					
						
							|  |  |  | network drive (including .vimrc; this is then called the "system" vimrc file), | 
					
						
							| 
									
										
										
										
											2005-04-15 21:00:38 +00:00
										 |  |  | and then use a personal copy of .vimrc (the "user" vimrc file).  This should be | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | located in a directory indicated by the HOME environment variable. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ENVIRONMENT VARIABLES IN FILE NAMES | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This HOME environment variable is also used when using ~ in file names, so | 
					
						
							|  |  |  | ":e ~/textfile" will edit the file "textfile" in the directory referred to by | 
					
						
							|  |  |  | HOME.  Additionally you can use other environment variables in file names, as | 
					
						
							| 
									
										
										
										
											2007-05-05 17:11:56 +00:00
										 |  |  | in ":n $SRC/*.c". | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | The HOME environment variable is also used to locate the .viminfo file | 
					
						
							|  |  |  | (see |viminfo-file|).  There is no support yet for .viminfo on FAT file | 
					
						
							|  |  |  | systems yet, sorry.  You could try the -i startup flag (as in "vim -i | 
					
						
							|  |  |  | $HOME/_viminfo") however. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | If the HOME environment variable is not set, the value "C:/" is used as a | 
					
						
							|  |  |  | default. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | BACKSLASHES | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Using slashes ('/') and backslashes ('\') can be a bit of a problem (see | 
					
						
							|  |  |  | |dos-backslash| for more explanation), but in almost all cases Vim does "The | 
					
						
							|  |  |  | Right Thing".  Vim itself uses backslashes in file names, but will happily | 
					
						
							|  |  |  | accept forward slashes if they are entered (in fact, sometimes that works | 
					
						
							|  |  |  | better!). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | TEMP FILES | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Temporary files (for filtering) are put in the first directory in the next | 
					
						
							|  |  |  | list that exists and where a file can be created: | 
					
						
							|  |  |  | 	$TMP | 
					
						
							|  |  |  | 	$TEMP | 
					
						
							|  |  |  | 	C:\TMP | 
					
						
							|  |  |  | 	C:\TEMP | 
					
						
							|  |  |  | 	current directory | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | TERMINAL SETTING | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 							*os2ansi* | 
					
						
							|  |  |  | Use "os2ansi" as the TERM environment variable (or don't set it at all, as the | 
					
						
							| 
									
										
										
										
											2005-04-15 21:00:38 +00:00
										 |  |  | default is the correct value).  You can set term to os2ansi in the .vimrc, in | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | case you need TERM to be a different value for other applications.  The | 
					
						
							|  |  |  | problem is that OS/2 ANSI emulation is quite limited (it doesn't have insert / | 
					
						
							|  |  |  | delete line, for example). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | If you want to use a different value for TERM (because of other programs, for | 
					
						
							|  |  |  | example), make sure that the termcap entry for that TERM value has the | 
					
						
							| 
									
										
										
										
											2005-04-15 21:00:38 +00:00
										 |  |  | appropriate key mappings.  The termcap.dat distributed with emx does not always | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | have them.  Here are some suitable values to add to the termcap entry of your | 
					
						
							|  |  |  | choice; these allow the cursor keys and the named function keys (such as | 
					
						
							|  |  |  | pagedown) to work. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	:ku=\316H:kd=\316P:kl=\316K:kr=\316M:%i=\316t:#4=\316s:\ | 
					
						
							|  |  |  | 	:kD=\316S:kI=\316R:kN=\316Q:kP=\316I:kh=\316G:@7=\316O:\ | 
					
						
							|  |  |  | 	:k1=\316;:k2=\316<:k3=\316=:k4=\316>:k5=\316?:k6=\316@:\ | 
					
						
							|  |  |  | 	:k7=\316A:k8=\316B:k9=\316C:k;=\316D: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Paul Slootman | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 43 LINE WINDOW | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | A suggestion from Steven Tryon, on how to run Vim in a bigger window: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | When I call Vim from an OS/2 WPS application such as PMMail it comes up | 
					
						
							|  |  |  | in the default 25-line mode.  To get a more useful window size I make | 
					
						
							|  |  |  | my external editor "vimbig.cmd" which in turn calls "vimbig2.cmd". | 
					
						
							|  |  |  | Brute force and awkwardness, perhaps, but it works. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | vimbig.cmd: > | 
					
						
							|  |  |  |    @echo off | 
					
						
							|  |  |  |    start "Vi Improved" /f vimbig2.cmd %1 %2 %3 %4 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | vimbig2.cmd: > | 
					
						
							|  |  |  |    @echo off | 
					
						
							|  |  |  |    mode 80,43 | 
					
						
							|  |  |  |    vim.exe %1 %2 %3 %4 | 
					
						
							|  |  |  |    exit | 
					
						
							|  |  |  | < | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CLIPBOARD ACCESS (provided by Alexander Wagner) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Vim for OS/2 has no direct access to the system clipboard.  To enable access | 
					
						
							|  |  |  | anyway you need an additional tool which gives you access to the clipboard | 
					
						
							|  |  |  | from within a vio application.  The freeware package clipbrd.zip by Stefan | 
					
						
							|  |  |  | Gruendel can be used for this purpose.  You might download the package | 
					
						
							|  |  |  | including precompiled binaries and all sources from: | 
					
						
							|  |  |  | 	http://www.stellarcom.org/vim/index.html | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Installation of this package is straight forward: just put the two executables | 
					
						
							|  |  |  | that come with this package into a directory within your PATH for Vim should | 
					
						
							|  |  |  | be able to call them from whatever directory you are working. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | To copy text from the clipboard to your Vim session you can use the :r | 
					
						
							|  |  |  | command.  Simply call clipbrd.exe from within Vim in the following way: > | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	:r !clipbrd -r | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | To copy text from Vim to the system clipboard just mark the text in the usual | 
					
						
							|  |  |  | vim-manner and call: > | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	:!clipbrd -w | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | which will write your selection right into OS/2's clipboard. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | For ease of use you might want to add some maps for this commands.  E.g. to | 
					
						
							|  |  |  | use F11 to paste the clipboard into Vim and F12 to copy selected text to the | 
					
						
							|  |  |  | clipboard you would use: > | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if has("os2") | 
					
						
							|  |  |  | 	  imap <F11>     <ESC>:r !clipbrd -r<CR>i | 
					
						
							|  |  |  | 	  vmap <F12>     :!clipbrd -w<cr> | 
					
						
							|  |  |  | 	else | 
					
						
							|  |  |  | 	  imap <F11>     <ESC>"*p<CR>i | 
					
						
							|  |  |  | 	  vmap <F12>     "*y | 
					
						
							|  |  |  | 	endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This will ensure that only on OS/2 clipbrd is called whereas on other | 
					
						
							| 
									
										
										
										
											2005-04-15 21:00:38 +00:00
										 |  |  | platforms vims build in mechanism is used.  (To enable this functions on every | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | load of Vim place the above lines in your .vimrc.) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  vim:tw=78:ts=8:ft=help:norl: |