<< 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>
