<< how to start >>

hxavi [-b] [+[address]] filename                                              
       -a                 : use alternative screen if possible
       -b                 : supports large file                               
       +[address]         : jump to address on startup                        
                                                                              
<< how to save file and/or quit >>

:q<ent>              : quit without saving file                               
:q!<ent>             : quit without saving file even if changes are made      
:w   [{altname}]<ent>: save file                                              
:w!  [{altname}]<ent>: force to save file                                     
:wq  [{altname}]<ent>: save file and quit                                     
:wq! [{altname}]<ent>: force to save file and quit                            
:ZZ                  : save if any changes and quit                           
:ZQ                  : quit without saving file even if changes are made      
                                                                              
<< motion >>

h|^H|<bs>|<left> / l|<spc>|<right>                                            
                     : left/right                                             
k|^P|<up> / j|^N|<down>                                                       
                     : up/down                                                
0|^ / $              : to first/last byte in the line                         
+|<ent> / -          : down/up 1 line, on the first byte                      
H|<home> / M / L     : to the top/middle/last line, on the first byte         
<end>                : to the last line, on the last byte                     
zt / zz / zb         : redraw, current line at top/center/bottom of window    
z<ent> / z. / z-     : redraw, current line at top/center/bottom of window    
                       and move the cursor to the left edge                   
^Y / ^E              : 1 line upwards/downwards                               
^U / ^D              : 1/2 window upwards/downwards                           
^B|<pgup> / ^F|<pgdn>: previous/nest page                                     
gg / G               : to the top/bottom left edge of the file                
:go {address}<ent>   : jump to the address                                    
:{address}<ent>      : jump to the address                                    
                                                                              
<< motion (summary) >>
                                                ^                             
                            ^Y       ^ ^U       | ^B|<pgup>                   
          +---------------^----------|----------|--------------+              
          | H|<home><--                                        |              
          |                          k|^P                      |              
          | -       <--               ^                        |              
          | 0|^     <--   <bs>|^H|h <-X-> l|<spc>          ->$ |              
          | +|<ent> <--               v                        |              
          |                          j|^N                      |              
          | M       <--                                        |              
          |                                                    |              
          |                  -->:g address<ent>                |              
          |                                                    |              
          |                                                    |              
          |                                                    |              
          | L       <--                              --> <end> |              
          +---------------v----------|----------|--------------+              
                            ^E       v ^D       | ^F|<pgdn>                   
                                                v                             
                                                                              
<< search >>

fHH / FHH            : search forward/backward inline                         
tHH / THH            : search forward/backward inline (previous position)     
;                    : search inline, repeat                                  
/{HH HH ...}<ent>    : search forward for hexadecimal pattern                
/"{text}<ent>        : search forward for string                             
?{HH HH ...}<ent>    : search backward for hexadecimal pattern                
?"{text}<ent>        : search backward for string                             
<tab> / <shift+tab>  : decimal data type selection                            
/:{decimal}<ent>     : search by decimal number, in the forward direction     
/:{decmin},{decmax}<ent>                                                      
                     : search by decimal number, specify range with two values
?:{decimal}<ent>     : search by decimal number, in the backward direction    
?:{decmin},{decmax}<ent>                                                      
                     : search backward, specify range with two values         
/<ent>               : repeat last search, in the forward direction           
?<ent>               : repeat last search, in the backward direction          
n/N                  : repeat last search in same/opposite direction          
mx                   : give the cursor position the name x (x: a to z)        
'x                   : junp to the location name x and move to the far left   
`x                   : junp to the location name x                            
                                                                              
<< edit >>

i|<ins>              : enter insert mode from the cursor position             
I                    : move to the beginning of line and enter insert mode    
a                    : move one byte ahead of the cursor and enter insert mode
A                    : move to the end of the line and enter insert mode      
o                    : move to the beginning of the next line and             
                       enter insert mode                                      
O                    : move to the beginning of line and enter insert mode    
i|...   ---+         : insert mode                                            
R       ---+         : replace mode                                           
           |                                                                  
           +--- 0-9|a-f|A-F   : change 4-bits                                 
           +--- "{string}<ent>: input data as string                          
           +--- :{number}<ent>: enter data in decimal number                  
           +--- #{binary}<ent>: enter data in binary number                   
           |                    (:set decimalview must be set)                
           +--- h|^H|<bs>     : delete 1 byte of input data                   
           +--- <tab>         : decimal data type selection                   
           +--- <shift+tab>   : decimal data type selection (reverse)         
           +--- <esc>         : end edit mode, back to command mode           
           +--- !             : show help messages in the mode                
           +--- ^L            : redraw the screen                             
rHH                  : overwrite a single byte                                
x|<del>              : delete 1 byte under the cursor                         
y{motion}            : copy data from current position to the location you    
                       moved using the motion command                         
yy|Y                 : copy the current line of data                          
d{motion}            : delete data from current position to the location you  
                       moved using the motion command                         
dd                   : delete the current line of data                        
D                    : delete data from the curosr position to the end of line
p                    : insert the copied or deleted data just after the cursor
P                    : insert the copied or deleted data just before the cursor
.                    : repeat the last editing command                        
"x{command(y|d|...)} : save command results in register x                     
:i {source address},{end address},{dest address}<ent>                         
                     : block copy (insert)                                    
:d {start address},{end address}<ent>                                         
                     : block delete                                           
u                    : undo changes                                           
^R                   : redo changes                                           
                                                                              
<< misc >>

^L                   : redraw the screen                                      
^G                   : show filename                                          
<tab>                : data type selection in decimalview                     
<shift+tab>          : data type selection in decimalview (reverse direction) 
:!{command}<ent>     : execute command with shell                             
:bitmap<ent>         : show bitmap view of data                               
    ^F / ^B | ^D / ^U | ^E / ^Y | ^N / ^P | zt / zz / zb | z<ent> / z. / z-   
                              : vertical scroll of display                    
    j / k / h / l / H / M / L / 0 / $                                         
                              : move cursor                                   
    < / >                     : side-scroll of display                        
    + / -                     : increase/decrease the number of bytes         
    ( / )                     : rotate left/right of data                     
    U                         : turn the image upside down                    
    W                         : invert the black and white of the image       
    s / r                     : set / reset one bit under cursor              
    u                         : undo changes                                  
    ^R                        : redo changes                                  
    ^L                        : redraw the screen                             
    q|<esc>                   : end bitmap view                               
:bytemap<ent>        : show bytemap view of data                              
    ^F / ^B | ^D / ^U | ^E / ^Y | j / k | ^N / ^P                             
                              : scrolling the display                         
    + / -                     : increase/decrease the number of bytes         
                                displayed on one line                         
    ( / )                     : rotate left/right of data                     
    <tab> / <shift+tab>       : change the range of values of data            
    q|<esc>                   : end bytemap view                              
    g                         : end bytemap view, move to the cursor position 
:cmap                         : displays 256 color samples. quit with q or :q 
:file {newname}<ent>          : change filename to 'newname'                  
:help<ent>                    : show this help                                
:histogram<ent>               : display data distribution as a histogram      
    h / l                     : move left/right of display                    
    j / k                     : enlargement/reduction of the vertical axis    
    q|<esc>                   : end histogram view                            
:logo<ent>                    : show program logo                             
:man<ent>                     : show manual. quit with q or :q                
:set all<ent>             : show all current options                          
:set ambiwidth[=(single|double)]<ent>                                         
                          : set width of ambiguous chars                      
:set biblen[=N]<ent>      : cursor blinking interval on bitmap (millisec)     
:set bidlen[=N]<ent>      : cursor blinking interval on dump screen (msec)    
:set bytes[=N]<ent>       : set the number of bytes in a line                 
:set cmdenter[={commands}]<ent>                                               
                          : instructions when entering the command line       
:set cmdleave[={commands}]<ent>                                               
                          : instructions when leaving the command line        
:set color                : displays the current color settings               
:set color {place} {part}=N                                                   
:                         : updates the coloring of each part to N            
:set [no]decimalview<ent> : specifying the decimal display mode               
:set encoding[=(enc)]<ent>: set encoding at character area                    
:set endian[=(little|big)]<ent>                                               
                          : endian specification of decimalview               
:set [no]flash<ent>       : set visible bell (flash)                          
:set helplang[=(en_US|ja_JP|..)]<ent>                                         
                          : choose language of help messages                  
:set [no]hideescseq<ent>  : display escape sequences as speces                
:set hxaviend[=commands]<ent>                                                 
                          : instructions to execute when exiting hxavi        
:set lines[=N]<ent>       : set the number of lines                           
:set ttimeoutlen[=N]<ent> : timeout length after <esc> (milliseconds)         
:set [no]usecolor<ent>    : set color option                                  
:set [no]wrapscan<ent>    : set scan option for search                        
                                                                              
<< count of comamnds >>

 - decimal number     : [0-9]+             example: 123, 2300, ...            
 - hexadecimal number : 16#[0-9a-fA-F]+#   example: 16#ABC0#, 16#12cf#, ...   
 - octal number       : 8#[0-7]+           example: 8#776, 8#1000, ...        
 - binary number      : 2#[0-1]+           example: 2#1000000, 2#10110011, ...
                                                                              
<< abbreviating comamnds >>

For words used in commands beginning with ":", you only need to type the      
minimum number of characters that are distinct from others.                   
                                                                              
example        :set ambiwidth=double<ent>  --> :s am=d<ent>                   
               :set nowrapscan<ent>        --> :s now<ent>