| *os_beos.txt* For Vim version 7.0. Last change: 2005 Mar 29 |
| |
| |
| 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 Vim's 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 mean 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) |
| |
| |
| 6. 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: |