*os_os2.txt*    For Vim version 7.0e.  Last change: 2005 Mar 29


		  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
first time, it won't be removed at all.  You'll get warnings that some other
Vim session may be editing the file when you start Vim up again on that file.
This can be reproduced with ":!start epm".  Now quit Vim, and start Vim again
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
system, and then starting Vim.  The problem seems to be that OS/2 =sometimes=
recognizes function / cursor keys, and tries to convert those to the
corresponding OS/2 codes generated by the "normal" PC keyboard.  I've been
testing a workaround (mapping the OS/2 codes to the correct functions), but so
far I can't say anything conclusive (this is on Warp 3, by the way).  In the
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
directories listed in your LIBPATH.  Emx is GPL'ed, but the emx.dll library is
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
appear to hang when starting (actually, while processing vimrc).  Hit <Enter> a
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
install OS/2 on a FAT file system.  Vim first tries to find .vimrc and if that
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),
and then use a personal copy of .vimrc (the "user" vimrc file).  This should be
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
as ":n $SRC/*.c".

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
default is the correct value).  You can set term to os2ansi in the .vimrc, in
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
appropriate key mappings.  The termcap.dat distributed with emx does not always
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
platforms vims build in mechanism is used.  (To enable this functions on every
load of Vim place the above lines in your .vimrc.)

 vim:tw=78:ts=8:ft=help:norl:
