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