1*os_os2.txt* For Vim version 7.3. Last change: 2007 Apr 22 2 3 4 VIM REFERENCE MANUAL by Paul Slootman 5 6 7 *os2* *OS2* *OS/2* 8This file contains the particularities for the OS/2 version of Vim. 9 10At present there is no native PM version of the GUI version of Vim: The OS/2 11version is a console application. However, there is now a Win32s-compatible 12GUI version, which should be usable by owners of Warp 4 (which supports 13Win32s) in a Win-OS/2 session. The notes in this file refer to the native 14console version. 15 16 17NOTE 18 19This OS/2 port works well for me and a couple of other OS/2 users; however, 20since I haven't had much feedback, that either means no (OS/2-specific) bugs 21exist (besides the ones mentioned below), or no one has yet created a 22situation in which any bugs are apparent. File I/O in Dos and Unix mode, 23binary mode, and FAT handling all seem to work well, which would seem to be 24the most likely places for trouble. 25 26A known problem is that files opened by Vim are inherited by other programs 27that are started via a shell escape from within Vim. This specifically means 28that Vim won't be able to remove the swap file(s) associated with buffers open 29at the time the other program was started, until the other program is stopped. 30At that time, the swap file may be removed, but if Vim could not do that the 31first time, it won't be removed at all. You'll get warnings that some other 32Vim session may be editing the file when you start Vim up again on that file. 33This can be reproduced with ":!start epm". Now quit Vim, and start Vim again 34with the file that was in the buffer at the time epm was started. I'm working 35on this! 36 37A second problem is that Vim doesn't understand the situation when using it 38when accessing the OS/2 system via the network, e.g. using telnet from a Unix 39system, and then starting Vim. The problem seems to be that OS/2 =sometimes= 40recognizes function / cursor keys, and tries to convert those to the 41corresponding OS/2 codes generated by the "normal" PC keyboard. I've been 42testing a workaround (mapping the OS/2 codes to the correct functions), but so 43far I can't say anything conclusive (this is on Warp 3, by the way). In the 44meantime any help will be appreciated. 45 46 47PREREQUISITES 48 49To run Vim, you need the emx runtime environment (at least rev. 0.9b). This 50is generally available as (ask Archie about it): 51 52 emxrt.zip emx runtime package 53 54I've included a copy of emx.dll, which should be copied to one of the 55directories listed in your LIBPATH. Emx is GPL'ed, but the emx.dll library is 56not (read COPYING.EMX to find out what that means to you). 57 58This emx.dll is from the emxfix04.zip package, which unfortunately has a bug, 59eh, I mean a POSIX feature, in select(). Versions of Vim before 3.27 will 60appear to hang when starting (actually, while processing vimrc). Hit <Enter> a 61couple of times until Vim starts working if this happens. Next, get an up to 62date version of Vim! 63 64 65HELP AND VIMRC FILE 66 67If you unpack the archive that Vim came in and run Vim directly from where it 68was unpacked, Vim should be able to find the runtime files and your .vimrc 69without any settings. 70 71If you put the runtime files separately from the binary, the VIM environment 72variable is used to find the location of the help files and the system .vimrc. 73Place an entry such as this in CONFIG.SYS: > 74 75 SET VIM=c:/local/lib/vim 76 77Put your .vimrc and your other Vim files in this directory. Copy the runtime 78directory to this directory. Each version of Vim has its own runtime 79directory. It will be called something like "c:/local/lib/vim/vim54". Thus 80you get a tree of Vim files like this: 81 c:/local/lib/vim/.vimrc 82 c:/local/lib/vim/vim54/filetype.vim 83 c:/local/lib/vim/vim54/doc/help.txt 84 etc. 85 86Note: .vimrc may also be called _vimrc to accommodate those who have chosen to 87install OS/2 on a FAT file system. Vim first tries to find .vimrc and if that 88fails, looks for _vimrc in the same place. The existence of a .vimrc or 89_vimrc file influences the 'compatible' options, which can have unexpected side 90effects. See |'compatible'|. 91 92If you're using network drives with OS/2, then you can install Vim on a 93network drive (including .vimrc; this is then called the "system" vimrc file), 94and then use a personal copy of .vimrc (the "user" vimrc file). This should be 95located in a directory indicated by the HOME environment variable. 96 97 98ENVIRONMENT VARIABLES IN FILE NAMES 99 100This HOME environment variable is also used when using ~ in file names, so 101":e ~/textfile" will edit the file "textfile" in the directory referred to by 102HOME. Additionally you can use other environment variables in file names, as 103in ":n $SRC/*.c". 104 105The HOME environment variable is also used to locate the .viminfo file 106(see |viminfo-file|). There is no support yet for .viminfo on FAT file 107systems yet, sorry. You could try the -i startup flag (as in "vim -i 108$HOME/_viminfo") however. 109 110If the HOME environment variable is not set, the value "C:/" is used as a 111default. 112 113 114BACKSLASHES 115 116Using slashes ('/') and backslashes ('\') can be a bit of a problem (see 117|dos-backslash| for more explanation), but in almost all cases Vim does "The 118Right Thing". Vim itself uses backslashes in file names, but will happily 119accept forward slashes if they are entered (in fact, sometimes that works 120better!). 121 122 123TEMP FILES 124 125Temporary files (for filtering) are put in the first directory in the next 126list that exists and where a file can be created: 127 $TMP 128 $TEMP 129 C:\TMP 130 C:\TEMP 131 current directory 132 133 134TERMINAL SETTING 135 136 *os2ansi* 137Use "os2ansi" as the TERM environment variable (or don't set it at all, as the 138default is the correct value). You can set term to os2ansi in the .vimrc, in 139case you need TERM to be a different value for other applications. The 140problem is that OS/2 ANSI emulation is quite limited (it doesn't have insert / 141delete line, for example). 142 143If you want to use a different value for TERM (because of other programs, for 144example), make sure that the termcap entry for that TERM value has the 145appropriate key mappings. The termcap.dat distributed with emx does not always 146have them. Here are some suitable values to add to the termcap entry of your 147choice; these allow the cursor keys and the named function keys (such as 148pagedown) to work. 149 150 :ku=\316H:kd=\316P:kl=\316K:kr=\316M:%i=\316t:#4=\316s:\ 151 :kD=\316S:kI=\316R:kN=\316Q:kP=\316I:kh=\316G:@7=\316O:\ 152 :k1=\316;:k2=\316<:k3=\316=:k4=\316>:k5=\316?:k6=\316@:\ 153 :k7=\316A:k8=\316B:k9=\316C:k;=\316D: 154 155 156Paul Slootman 157 158 15943 LINE WINDOW 160 161A suggestion from Steven Tryon, on how to run Vim in a bigger window: 162 163When I call Vim from an OS/2 WPS application such as PMMail it comes up 164in the default 25-line mode. To get a more useful window size I make 165my external editor "vimbig.cmd" which in turn calls "vimbig2.cmd". 166Brute force and awkwardness, perhaps, but it works. 167 168vimbig.cmd: > 169 @echo off 170 start "Vi Improved" /f vimbig2.cmd %1 %2 %3 %4 171 172vimbig2.cmd: > 173 @echo off 174 mode 80,43 175 vim.exe %1 %2 %3 %4 176 exit 177< 178 179CLIPBOARD ACCESS (provided by Alexander Wagner) 180 181Vim for OS/2 has no direct access to the system clipboard. To enable access 182anyway you need an additional tool which gives you access to the clipboard 183from within a vio application. The freeware package clipbrd.zip by Stefan 184Gruendel can be used for this purpose. You might download the package 185including precompiled binaries and all sources from: 186 http://www.os2site.com/sw/util/clipboard/index.html 187 http://download.uni-hd.de/ftp/pub/os2/pmtools/ 188 189Installation of this package is straight forward: just put the two executables 190that come with this package into a directory within your PATH for Vim should 191be able to call them from whatever directory you are working. 192 193To copy text from the clipboard to your Vim session you can use the :r 194command. Simply call clipbrd.exe from within Vim in the following way: > 195 196 :r !clipbrd -r 197 198To copy text from Vim to the system clipboard just mark the text in the usual 199vim-manner and call: > 200 201 :!clipbrd -w 202 203which will write your selection right into OS/2's clipboard. 204 205For ease of use you might want to add some maps for these commands. E.g. to 206use F11 to paste the clipboard into Vim and F12 to copy selected text to the 207clipboard you would use: > 208 209 if has("os2") 210 imap <F11> <ESC>:r !clipbrd -r<CR>i 211 vmap <F12> :!clipbrd -w<cr> 212 else 213 imap <F11> <ESC>"*p<CR>i 214 vmap <F12> "*y 215 endif 216 217This will ensure that only on OS/2 clipbrd is called whereas on other 218platforms vims build in mechanism is used. (To enable this functions on every 219load of Vim place the above lines in your .vimrc.) 220 221 vim:tw=78:ts=8:ft=help:norl: 222