*os_os2.txt*    For Vim version 7.1.  Last change: 2007 Apr 22


		  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
in ":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:
