| *os_os2.txt* For Vim version 7.2. 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: |