diff options
Diffstat (limited to 'runtime/doc/os_beos.txt')
-rw-r--r-- | runtime/doc/os_beos.txt | 348 |
1 files changed, 348 insertions, 0 deletions
diff --git a/runtime/doc/os_beos.txt b/runtime/doc/os_beos.txt new file mode 100644 index 000000000..d58966f49 --- /dev/null +++ b/runtime/doc/os_beos.txt @@ -0,0 +1,348 @@ +*os_beos.txt* For Vim version 7.0aa. Last change: 2004 May 01 + + + VIM REFERENCE MANUAL by Bram Moolenaar + + + *BeOS* *BeBox* +This is a port of Vim 5.1 to the BeOS Preview Release 2 (also known as PR2) +or later. + +This file contains the particularities for the BeBox/BeOS version of Vim. For +matters not discussed in this file, Vim behaves very much like the Unix +|os_unix.txt| version. + + 1. General |beos-general| + 2. Compiling Vim |beos-compiling| + 3. Timeout in the Terminal |beos-timeout| + 4. Unicode vs. Latin1 |beos-unicode| + 5. The BeOS GUI |beos-gui| + 6. The $VIM directory |beos-vimdir| + 7. Drag & Drop |beos-dragndrop| + 8. Single Launch vs. Multiple + Launch |beos-launch| + 9. Fonts |beos-fonts| +10. The meta key modifier |beos-meta| +11. Mouse key mappings |beos-mouse| +12. Color names |beos-colors| +13. Compiling with Perl |beos-perl| + + +1. General *beos-general* + +The default syntax highlighting mostly works with different foreground colors +to highlight items. This works best if you set your Terminal window to a +darkish background and light letters. Some middle-grey background (for +instance (r,g,b)=(168,168,168)) with black letters also works nicely. If you +use the default light background and dark letters, it may look better to +simply reverse the notion of foreground and background color settings. To do +this, add this to your .vimrc file (where <Esc> may need to be replaced with +the escape character): > + + :if &term == "beos-ansi" + : set t_AB=<Esc>[3%dm + : set t_AF=<Esc>[4%dm + :endif + + +2. Compiling Vim *beos-compiling* + +From the Advanced Access Preview Release (AAPR) on, Vim can be configured with +the standard configure script. To get the compiler and its flags right, use +the following command-line in the shell (you can cut and paste it in one go): + +CC=$BE_C_COMPILER CFLAGS="$BE_DEFAULT_C_FLAGS -O7" \ + ./configure --prefix=/boot/home/config + +$BE_C_COMPILER is usually "mwcc", $BE_DEFAULT_C_FLAGS is usually "-I- -I." + +When configure has run, and you wish to enable GUI support, you must edit the +config.mk file so that the lines with GUI_xxx refer to $(BEOSGUI_xxx) instead +of $(NONE_xxx). +Alternatively you can make this change in the Makefile; it will have a +more permanent effect. Search for "NONE_". + +After compilation you need to add the resources to the binary. Add the +following few lines near the end (before the line with "exit $exit_value") of +the link.sh script to do this automatically. + + rmattr BEOS:TYPE vim + copyres os_beos.rsrc vim + mimeset vim + +Also, create a dummy file "strip": + + #!/bin/sh + mimeset $1 + exit 0 + +You will need it when using "make install" to install Vim. + +Now type "make" to compile Vim, then "make install" to install it. + +If you want to install Vim by hand, you must copy Vim to $HOME/config/bin, and +create a bunch of symlinks to it ({g,r,rg}{vim,ex,view}). Furthermore you must +copy Vims configuration files to $HOME/config/share/vim: +vim-5.0s/{*.vim,doc,syntax}. For completeness, you should also copy the nroff +manual pages to $HOME/config/man/man1. Don't forget ctags/ctags and xxd/xxd! + +Obviously, you need the unlimited linker to actually link Vim. See +http://www.metrowerks.com for purchasing the CodeWarrior compiler for BeOS. +There are currently no other linkers that can do the job. + +This won't be able to include the Perl or Python interfaces even if +you have the appropriate files installed. |beos-perl| + + +3. Timeout in the Terminal *beos-timeout* + +Because some POSIX/UNIX features are still missing[1], there is no direct OS +support for read-with-timeout in the Terminal. This would meat that you cannot +use :mappings of more than one character, unless you also :set notimeout. +|'timeout'| + +To circumvent this problem, I added a workaround to provide the necessary +input with timeout by using an extra thread which reads ahead one character. +As a side effect, it also makes Vim recognize when the Terminal window +resizes. + +Function keys are not supported in the Terminal since they produce very +indistinctive character sequences. + +These problems do not exist in the GUI. + +[1]: there is no select() on file descriptors; also the termios VMIN and VTIME +settings do not seem to work properly. This has been the case since DR7 at +least and still has not been fixed as of PR2. + + *beos-unicode* +4. Unicode vs. Latin1 *beos-utf8* + +BeOS uses Unicode and UTF-8 for text strings (16-bit characters encoded to +8-bit characters). Vim assumes ISO-Latin1 or other 8-bit character codes. +This does not produce the desired results for non-ASCII characters. Try the +command :digraphs to see. If they look messed up, use :set isprint=@ to +(slightly) improve the display of ISO-Latin1 characters 128-255. This works +better in the GUI, depending on which font you use (below). + +You may also use the /boot/bin/xtou command to convert UTF-8 files from (xtou +-f iso1 filename) or to (xtou -t iso1 filename) ISO-Latin1 characters. + + +5. The BeOS GUI *beos-gui* + +Normally Vim starts with the GUI if you start it as gvim or vim -g. The BeOS +version tries to determine if it was started from the Tracker instead of the +Terminal, and if so, use the GUI anyway. However, the current detection scheme +is fooled if you use the command "vim - </dev/null" or "vim filename &". The +latter can be called a feature but probably only works because there is no +BSD-style job control. + +Stuff that does not work yet: + +- Running external commands from the GUI does not work 100% (again due to lack + of support for select()). There was a choice between seeing the command's + output, or being able to interrupt it. I chose for seeing the output. Even + now the command sometimes crashes mysteriously, apparently in Be's + malloc_internal() called from the putenv() function, after fork()ing. (data + access exception occurred, ec01b0ec: 90e80000 *stw r7, 0x0000 (r8))(:!ls + works usually, :r !ls usually doesn't). This has been reported as bug + # 971215-083826. +- The window title. +- Starting the GUI from the Terminal version with :gui always acts as if + :gui -f were used. There is no way to fix this that I can see. +- There are some small display glitches here and there that I hope to clean up + later. Most of them occur when the window is partially obscured. Some of + them seem to be bugs in BeOS, because the Terminal has similar glitches. +- Mouse up events are not generated when outside the window. This is a bug in + BeOS. You can notice this when selecting text and moving the cursor outside + the window, then letting go of the mouse button. Another way is when you + drag the scrollbar and do the same thing. Because Vim still thinks you are + still playing with the scrollbar it won't change it itself. I provided a + workaround which kicks in when the window is activated or deactivated (so it + works best with focus- follows-mouse (/boot/bin/ffm) turned on). +- The cursor does not flash (very low priority; I'm not sure I even like it + when it flashes) + + +The $VIM directory *beos-vimdir* + +$VIM is the symbolic name for the place where Vims support files are stored. +The default value for $VIM is set at compile time and can be determined with > + + :version + +The normal value is /boot/home/config/share/vim. If you don't like it you can +set the VIM environment variable to override this, or set 'helpfile' in your +.vimrc: > + + :if version >= 500 + : set helpfile=~/vim/vim54/doc/help.txt + : syntax on + :endif + + +7. Drag & Drop *beos-dragndrop* + +You can drop files and directories on either the Vim icon (starts a new Vim +session, unless you use the File Types application to set Vim to be "Single +Launch") or on the Vim window (starts editing the files). Dropping a folder +sets Vim's current working directory. |:cd| |:pwd| If you drop files or +folders with either SHIFT key pressed, Vim changes directory to the folder +that contains the first item dropped. When starting Vim, there is no need to +press shift: Vim behaves as if you do. + +Files dropped set the current argument list. |argument-list| + + +8. Single Launch vs. Multiple Launch *beos-launch* + +As distributed Vim's Application Flags (as seen in the FileTypes preference) +are set to Multiple Launch. If you prefer, you can set them to Single Launch +instead. Attempts to start a second copy of Vim will cause the first Vim to +open the files instead. This works from the Tracker but also from the command +line. In the latter case, non-file (option) arguments are not supported. + +NB: Only the GUI version has a BApplication (and hence Application Flags). +This section does not apply to the GUI-less version, should you compile one. + + +9. Fonts *beos-fonts* + +Set fonts with > + + :set guifont=Courier10_BT/Roman/10 + +where the first part is the font family, the second part the style, and the +third part the size. You can use underscores instead of spaces in family and +style. + +Best results are obtained with monospaced fonts (such as Courier). Vim +attempts to use all fonts in B_FIXED_SPACING mode but apparently this does not +work for proportional fonts (despite what the BeBook says). + +Vim also tries to use the B_ISO8859_1 encoding, also known as ISO Latin 1. +This also does not work for all fonts. It does work for Courier, but not for +ProFontISOLatin1/Regular (strangely enough). You can verify this by giving the > + + :digraphs + +command, which lists a bunch of characters with their ISO Latin 1 encoding. +If, for instance, there are "box" characters among them, or the last character +isn't a dotted-y, then for this font the encoding does not work. + +If the font you specify is unavailable, you get the system fixed font. + +Standard fixed-width system fonts are: + + ProFontISOLatin1/Regular + Courier10_BT/Roman + Courier10_BT/Italic + Courier10_BT/Bold + Courier10_BT/Bold_Italic + +Standard proportional system fonts are: + + Swis721_BT/Roman + Swis721_BT/Italic + Swis721_BT/Bold + Swis721_BT/Bold_Italic + Dutch801_Rm_BT/Roman + Dutch801_Rm_BT/Italic + Dutch801_Rm_BT/Bold + Dutch801_Rm_BT/Bold_Italic + Baskerville/Roman + Baskerville/Italic + Baskerville/Bold + Baskerville/Bold_Italic + SymbolProp_BT/Regular + +Try some of them, just for fun. + + +10. The meta key modifier *beos-meta* + +The META key modifier is obtained by the left or right OPTION keys. This is +because the ALT (aka COMMAND) keys are not passed to applications. + + +11. Mouse key mappings *beos-mouse* + +Vim calls the various mouse buttons LeftMouse, MiddleMouse and RightMouse. If +you use the default Mouse preference settings these names indeed correspond to +reality. Vim uses this mapping: + + Button 1 -> LeftMouse, + Button 2 -> RightMouse, + Button 3 -> MiddleMouse. + +If your mouse has fewer than 3 buttons you can provide your own mapping from +mouse clicks with modifier(s) to other mouse buttons. See the file +vim-5.x/macros/swapmous.vim for an example. |gui-mouse-mapping| + + +12. Color names *beos-colors* + +Vim has a number of color names built-in. Additional names are read from the +file $VIMRUNTIME/rgb.txt, if present. This file is basically the color +database from X. Names used from this file are cached for efficiency. + + +13. Compiling with Perl *beos-perl* + +Compiling with Perl support enabled is slightly tricky. The Metrowerks +compiler has some strange ideas where to search for include files. Since +several include files with Perl have the same names as some Vim header +files, the wrong ones get included. To fix this, run the following Perl +script while in the vim-5.0/src directory: > + + preproc.pl > perl.h + + #!/bin/env perl + # Simple #include expander, just good enough for the Perl header files. + + use strict; + use IO::File; + use Config; + + sub doinclude + { + my $filename = $_[0]; + my $fh = new IO::File($filename, "r"); + if (defined $fh) { + print "/* Start of $filename */\n"; + + while (<$fh>) { + if (/^#include "(.*)"/) { + doinclude($1); + print "/* Back in $filename */\n"; + } else { + print $_; + } + } + print "/* End of $filename */\n"; + + undef $fh; + } else { + print "/* Cannot open $filename */\n"; + print "#include \"$filename\"\n"; + } + } + + chdir $Config{installarchlib}."/CORE"; + doinclude "perl.h"; + +It expands the "perl.h" header file, using only other Perl header files. + +Now you can configure & make Vim with the --enable-perlinterp option. +Be warned though that this adds about 616 kilobytes to the size of Vim! +Without Perl, Vim with default features and GUI is about 575K, with Perl +it is about 1191K. + +-Olaf Seibert + +[Note: these addresses no longer work:] +<rhialto@polder.ubc.kun.nl> +http://polder.ubc.kun.nl/~rhialto/be + + vim:tw=78:ts=8:ft=help:norl: |