51db5b9267
Signed-off-by: shenwenjie <shenwenjie@sensetime.com>
221 lines
8.5 KiB
Text
221 lines
8.5 KiB
Text
*os_os2.txt* For Vim version 7.4. 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.os2site.com/sw/util/clipboard/index.html
|
|
http://download.uni-hd.de/ftp/pub/os2/pmtools/
|
|
|
|
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 these 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:
|