1*os_beos.txt* For Vim version 7.3. Last change: 2010 Aug 14 2 3 4 VIM REFERENCE MANUAL by Bram Moolenaar 5 6 7 *BeOS* *BeBox* 8This is a port of Vim 5.1 to the BeOS Preview Release 2 (also known as PR2) 9or later. 10 11This file contains the particularities for the BeBox/BeOS version of Vim. For 12matters not discussed in this file, Vim behaves very much like the Unix 13|os_unix.txt| version. 14 15 1. General |beos-general| 16 2. Compiling Vim |beos-compiling| 17 3. Timeout in the Terminal |beos-timeout| 18 4. Unicode vs. Latin1 |beos-unicode| 19 5. The BeOS GUI |beos-gui| 20 6. The $VIM directory |beos-vimdir| 21 7. Drag & Drop |beos-dragndrop| 22 8. Single Launch vs. Multiple 23 Launch |beos-launch| 24 9. Fonts |beos-fonts| 2510. The meta key modifier |beos-meta| 2611. Mouse key mappings |beos-mouse| 2712. Color names |beos-colors| 2813. Compiling with Perl |beos-perl| 29 30 311. General *beos-general* 32 33The default syntax highlighting mostly works with different foreground colors 34to highlight items. This works best if you set your Terminal window to a 35darkish background and light letters. Some middle-grey background (for 36instance (r,g,b)=(168,168,168)) with black letters also works nicely. If you 37use the default light background and dark letters, it may look better to 38simply reverse the notion of foreground and background color settings. To do 39this, add this to your .vimrc file (where <Esc> may need to be replaced with 40the escape character): > 41 42 :if &term == "beos-ansi" 43 : set t_AB=<Esc>[3%dm 44 : set t_AF=<Esc>[4%dm 45 :endif 46 47 482. Compiling Vim *beos-compiling* 49 50From the Advanced Access Preview Release (AAPR) on, Vim can be configured with 51the standard configure script. To get the compiler and its flags right, use 52the following command-line in the shell (you can cut and paste it in one go): 53 54CC=$BE_C_COMPILER CFLAGS="$BE_DEFAULT_C_FLAGS -O7" \ 55 ./configure --prefix=/boot/home/config 56 57$BE_C_COMPILER is usually "mwcc", $BE_DEFAULT_C_FLAGS is usually "-I- -I." 58 59When configure has run, and you wish to enable GUI support, you must edit the 60config.mk file so that the lines with GUI_xxx refer to $(BEOSGUI_xxx) instead 61of $(NONE_xxx). 62Alternatively you can make this change in the Makefile; it will have a 63more permanent effect. Search for "NONE_". 64 65After compilation you need to add the resources to the binary. Add the 66following few lines near the end (before the line with "exit $exit_value") of 67the link.sh script to do this automatically. 68 69 rmattr BEOS:TYPE vim 70 copyres os_beos.rsrc vim 71 mimeset vim 72 73Also, create a dummy file "strip": 74 75 #!/bin/sh 76 mimeset $1 77 exit 0 78 79You will need it when using "make install" to install Vim. 80 81Now type "make" to compile Vim, then "make install" to install it. 82 83If you want to install Vim by hand, you must copy Vim to $HOME/config/bin, and 84create a bunch of symlinks to it ({g,r,rg}{vim,ex,view}). Furthermore you must 85copy Vim's configuration files to $HOME/config/share/vim: 86vim-5.0s/{*.vim,doc,syntax}. For completeness, you should also copy the nroff 87manual pages to $HOME/config/man/man1. Don't forget ctags/ctags and xxd/xxd! 88 89Obviously, you need the unlimited linker to actually link Vim. See 90http://www.metrowerks.com for purchasing the CodeWarrior compiler for BeOS. 91There are currently no other linkers that can do the job. 92 93This won't be able to include the Perl or Python interfaces even if 94you have the appropriate files installed. |beos-perl| 95 96 973. Timeout in the Terminal *beos-timeout* 98 99Because some POSIX/UNIX features are still missing[1], there is no direct OS 100support for read-with-timeout in the Terminal. This would mean that you cannot 101use :mappings of more than one character, unless you also :set notimeout. 102|'timeout'| 103 104To circumvent this problem, I added a workaround to provide the necessary 105input with timeout by using an extra thread which reads ahead one character. 106As a side effect, it also makes Vim recognize when the Terminal window 107resizes. 108 109Function keys are not supported in the Terminal since they produce very 110indistinctive character sequences. 111 112These problems do not exist in the GUI. 113 114[1]: there is no select() on file descriptors; also the termios VMIN and VTIME 115settings do not seem to work properly. This has been the case since DR7 at 116least and still has not been fixed as of PR2. 117 118 *beos-unicode* 1194. Unicode vs. Latin1 *beos-utf8* 120 121BeOS uses Unicode and UTF-8 for text strings (16-bit characters encoded to 1228-bit characters). Vim assumes ISO-Latin1 or other 8-bit character codes. 123This does not produce the desired results for non-ASCII characters. Try the 124command :digraphs to see. If they look messed up, use :set isprint=@ to 125(slightly) improve the display of ISO-Latin1 characters 128-255. This works 126better in the GUI, depending on which font you use (below). 127 128You may also use the /boot/bin/xtou command to convert UTF-8 files from (xtou 129-f iso1 filename) or to (xtou -t iso1 filename) ISO-Latin1 characters. 130 131 1325. The BeOS GUI *beos-gui* 133 134The BeOS GUI is no longer included. It was not maintained for a while and 135most likely didn't work. If you want to work on this: get the Vim 6.x version 136and merge it back in. 137 138 1396. The $VIM directory *beos-vimdir* 140 141$VIM is the symbolic name for the place where Vims support files are stored. 142The default value for $VIM is set at compile time and can be determined with > 143 144 :version 145 146The normal value is /boot/home/config/share/vim. If you don't like it you can 147set the VIM environment variable to override this, or set 'helpfile' in your 148.vimrc: > 149 150 :if version >= 500 151 : set helpfile=~/vim/vim54/doc/help.txt 152 : syntax on 153 :endif 154 155 1567. Drag & Drop *beos-dragndrop* 157 158You can drop files and directories on either the Vim icon (starts a new Vim 159session, unless you use the File Types application to set Vim to be "Single 160Launch") or on the Vim window (starts editing the files). Dropping a folder 161sets Vim's current working directory. |:cd| |:pwd| If you drop files or 162folders with either SHIFT key pressed, Vim changes directory to the folder 163that contains the first item dropped. When starting Vim, there is no need to 164press shift: Vim behaves as if you do. 165 166Files dropped set the current argument list. |argument-list| 167 168 1698. Single Launch vs. Multiple Launch *beos-launch* 170 171As distributed Vim's Application Flags (as seen in the FileTypes preference) 172are set to Multiple Launch. If you prefer, you can set them to Single Launch 173instead. Attempts to start a second copy of Vim will cause the first Vim to 174open the files instead. This works from the Tracker but also from the command 175line. In the latter case, non-file (option) arguments are not supported. 176 177NB: Only the GUI version has a BApplication (and hence Application Flags). 178This section does not apply to the GUI-less version, should you compile one. 179 180 1819. Fonts *beos-fonts* 182 183Set fonts with > 184 185 :set guifont=Courier10_BT/Roman/10 186 187where the first part is the font family, the second part the style, and the 188third part the size. You can use underscores instead of spaces in family and 189style. 190 191Best results are obtained with monospaced fonts (such as Courier). Vim 192attempts to use all fonts in B_FIXED_SPACING mode but apparently this does not 193work for proportional fonts (despite what the BeBook says). 194 195Vim also tries to use the B_ISO8859_1 encoding, also known as ISO Latin 1. 196This also does not work for all fonts. It does work for Courier, but not for 197ProFontISOLatin1/Regular (strangely enough). You can verify this by giving the > 198 199 :digraphs 200 201command, which lists a bunch of characters with their ISO Latin 1 encoding. 202If, for instance, there are "box" characters among them, or the last character 203isn't a dotted-y, then for this font the encoding does not work. 204 205If the font you specify is unavailable, you get the system fixed font. 206 207Standard fixed-width system fonts are: 208 209 ProFontISOLatin1/Regular 210 Courier10_BT/Roman 211 Courier10_BT/Italic 212 Courier10_BT/Bold 213 Courier10_BT/Bold_Italic 214 215Standard proportional system fonts are: 216 217 Swis721_BT/Roman 218 Swis721_BT/Italic 219 Swis721_BT/Bold 220 Swis721_BT/Bold_Italic 221 Dutch801_Rm_BT/Roman 222 Dutch801_Rm_BT/Italic 223 Dutch801_Rm_BT/Bold 224 Dutch801_Rm_BT/Bold_Italic 225 Baskerville/Roman 226 Baskerville/Italic 227 Baskerville/Bold 228 Baskerville/Bold_Italic 229 SymbolProp_BT/Regular 230 231Try some of them, just for fun. 232 233 23410. The meta key modifier *beos-meta* 235 236The META key modifier is obtained by the left or right OPTION keys. This is 237because the ALT (aka COMMAND) keys are not passed to applications. 238 239 24011. Mouse key mappings *beos-mouse* 241 242Vim calls the various mouse buttons LeftMouse, MiddleMouse and RightMouse. If 243you use the default Mouse preference settings these names indeed correspond to 244reality. Vim uses this mapping: 245 246 Button 1 -> LeftMouse, 247 Button 2 -> RightMouse, 248 Button 3 -> MiddleMouse. 249 250If your mouse has fewer than 3 buttons you can provide your own mapping from 251mouse clicks with modifier(s) to other mouse buttons. See the file 252vim-5.x/macros/swapmous.vim for an example. |gui-mouse-mapping| 253 254 25512. Color names *beos-colors* 256 257Vim has a number of color names built-in. Additional names are read from the 258file $VIMRUNTIME/rgb.txt, if present. This file is basically the color 259database from X. Names used from this file are cached for efficiency. 260 261 26213. Compiling with Perl *beos-perl* 263 264Compiling with Perl support enabled is slightly tricky. The Metrowerks 265compiler has some strange ideas where to search for include files. Since 266several include files with Perl have the same names as some Vim header 267files, the wrong ones get included. To fix this, run the following Perl 268script while in the vim-5.0/src directory: > 269 270 preproc.pl > perl.h 271 272 #!/bin/env perl 273 # Simple #include expander, just good enough for the Perl header files. 274 275 use strict; 276 use IO::File; 277 use Config; 278 279 sub doinclude 280 { 281 my $filename = $_[0]; 282 my $fh = new IO::File($filename, "r"); 283 if (defined $fh) { 284 print "/* Start of $filename */\n"; 285 286 while (<$fh>) { 287 if (/^#include "(.*)"/) { 288 doinclude($1); 289 print "/* Back in $filename */\n"; 290 } else { 291 print $_; 292 } 293 } 294 print "/* End of $filename */\n"; 295 296 undef $fh; 297 } else { 298 print "/* Cannot open $filename */\n"; 299 print "#include \"$filename\"\n"; 300 } 301 } 302 303 chdir $Config{installarchlib}."/CORE"; 304 doinclude "perl.h"; 305 306It expands the "perl.h" header file, using only other Perl header files. 307 308Now you can configure & make Vim with the --enable-perlinterp option. 309Be warned though that this adds about 616 kilobytes to the size of Vim! 310Without Perl, Vim with default features and GUI is about 575K, with Perl 311it is about 1191K. 312 313-Olaf Seibert 314 315[Note: these addresses no longer work:] 316<rhialto@polder.ubc.kun.nl> 317http://polder.ubc.kun.nl/~rhialto/be 318 319 vim:tw=78:ts=8:ft=help:norl: 320