diff options
Diffstat (limited to 'runtime/doc/os_os2.txt')
-rw-r--r-- | runtime/doc/os_os2.txt | 220 |
1 files changed, 220 insertions, 0 deletions
diff --git a/runtime/doc/os_os2.txt b/runtime/doc/os_os2.txt new file mode 100644 index 000000000..3a4dd476f --- /dev/null +++ b/runtime/doc/os_os2.txt @@ -0,0 +1,220 @@ +*os_os2.txt* For Vim version 7.0aa. Last change: 2004 Jan 09 + + + 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: |