The hex editors being still popular, here’s a review of the biew/beye hex editor by guest author @F_84_5 . Thanks a lot!

biew, which the original author attempted to rename to beye though versions named beye seem hard to find now, is a GPL-licensed cross-platform hex editor. It’s quite dated, but - as of 2019 - has a Wikipedia page. Setup can be tricky:

  • Ubuntu/Debian hints: as root:

    $ alien biew-*.rpm
    $ sudo dpkg -i biew-*.deb
    
  • The .rpm incorrectly installs a biew.1.gz file that is (wrongly) identical to a biew.1.lzma.gz it also installs. A correct biew.1.gz can be created by extracting the biew.1 file from the .lzma.gz file (use lzma(1) or file-roller or xdg-open) and gzipping it:

    $ gzip -c biew.1 > biew.1.gz
    
  • To install use:

    $ sudo cp biew.1.gz /usr/share/man/man1/biew.1.gz
    
  • Without this correction, the man page may not work.

  • biew expects the $TERM variable to be set to vt100 and will not work with other values, even compatible ones like Ubuntu’s xterm-256color default. This can be fixed with:

    $ alias biew='TERM=vt100 biew'
    
  • This will not change your $TERM in general, only when you’re running biew. You may want to add this to ~/.bashrc or similar.

  • When launched as biew <filename> (i.e. not just as biew), the program may show a config menu if it thinks it’s missing anything. It remembers settings in ~/.biewrc on Unix (and in an .ini file on DOS/Windows, apparently). One default it suggests is for a syntax.stx file not included in the .rpm. (To add a downloaded syntax.stx:

    $ sudo mkdir /usr/share/biew/syntax
    $ sudo cp syntax.stx /usr/share/biew/syntax/
    
  • At least on a UTF-8 Unicode system, biew seems to default to emulating the Russian code page 866, thus showing its Eastern origins. This is why some of the byte characters look “funky” to Western eyes. The Setup menu mentions CP866, but it’s unclear if there’s a bug there, or how or if this can be changed to something more familiar to Westerners (i.e. to CP437, CP1252, or ISO-8859-1 or -15). Of course, pure UTF-8 isn’t sensible here, since any bytes between 0x80 and 0xFF would all be the same U+FFFD � replacement character, which may not even be single-width. Any Multi-Byte Character Set (MBCS) would be a bad fit for a Single-Byte Character Set (SBCS) application like a hex editor.

  • The fact that - at least on Unix - biew/beye apparently always clears the terminal screen when exiting may be related to this

The wholly text-mode biew should look and feel instantly familiar or even nostalgic to any old DOS users, as it makes heavy use of DOS usage conventions in its look and feel, including the use of double-border box-drawing characters. Some of these conventions can seem a little jarring to Unix users, e.g. biew always clears the terminal screen on exit, even if the program only showed a boxed window, as when started with just bview.

biew is a TUI program and expects to have full cursor position control in the terminal and access to the F1-F10 function keys, as per its DOS-style function key line at the bottom (labelled 1-10; the Fs are implied). If your distro/terminal already maps e.g. F1 to Help, that may be a problem (Ubuntu hint: Terminal - Edit - Preference - Shortcuts - Help -> remap to Ctrl+F1. biew can run in the system console, given vt100- and code page-compatibility. F2 is labelled ViMode, but there is no vi support as Unix users may expect on reading that; ViMode is just short for “view mode” there. Pressing F2 reveals that biew includes a disassembler, so this is more than a toy, but whether that’s worth dealing with the above shortcomings is a matter of opinion.