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