Next: Introduction [Contents]
This manual documents version 2.1 of poke.el.
Copyright © 2022 Jose E. Marchesi.
You can redistribute it and/or modify this manual under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Previous: poke-el: an Emacs interface to GNU poke, Up: poke-el: an Emacs interface to GNU poke [Contents]
poke-el is an Emacs interface to GNU poke1, the extensible editor for structured binary data.
Next: Configuration, Up: Introduction [Contents]
This program is implemented in a self-contained elisp file called poke.el. It can be obtained in several ways:
In the second case you need to tell Emacs where to locate the poke.el file and to load it. Add the following to your .emacs file.
(add-to-list 'load-path "~/path/to/poke-el/") (require 'poke)
If poke.el was installed as part of a binary
package in a distribution then you usually don’t have to touch the
load-path
variable. Depending on the specific case you may
have to require
the package.
Next: Running, Previous: Installation, Up: Introduction [Contents]
Once loaded, there are many aspects of poke-el that can be configured by the user.
Next: Window Layouts, Up: Configuration [Contents]
The following variables can be customized in order to change the default behavior of poke.
poke-setting-pretty-print
Indicates whether Poke values are pretty-printed. Valid values are
the strings "yes"
and "no
. Defaults to "no"
.
poke-setting-omode
The numeration base to use when printing numerical values. Valid values are 2, 8, 10 and 16. Defaults to 10.
poke-setting-omode
How to print composite Poke values, such as arrays and structs. Valid
values are "plain"
and "tree"
.
Note that all the settings above can be interactively changed at any time using the settings editor. XXX xref.
Previous: Settings, Up: Configuration [Contents]
The poke Emacs interface is composed by many different buffers, each
playing a different role: the repl, the bytes viewer, the settings
editor, the maps tree, etc. When using the interface, actions
will often result in many of these buffers to be displayed using
switch-to-buffer-other-window
.
In Emacs it is possible to configure how buffers are associated to
windows by customizing the display-buffer-alist
variable. This
is often used in order to make the interface more predictable, i.e. to
always have certain of the buffers shown in the same area of the
screen.
poke-el provides an example of such a configuration, that you can use
as-is or as the basis of your own layouts, in the function
poke-frame-layout-1
. This function appends entries to
display-buffer-alist
. It implements the following window
layout:
___________________________________ | | | *poke-vu* | | | |___________________________________| | | | | | | | | *poke-maps*/ | | | *poke-edit*/ | | *poke-repl* | *poke-code*/ | | | *poke-ios*/ | | | *poke-settings*| | | | |__________________|________________| | | | *poke-out* | |___________________________________|
To use this layout, simply include this call in your .emacs:
(poke-frame-layout-1)
Next: Feedback, Previous: Configuration, Up: Introduction [Contents]
Once you have loaded and configured poke-el, it is time to run poke! To do so, simply issue M-xpoke.
This command will start the poke daemon if it wasn’t already running and initialize the interface if necessary. Then it will show the poke windows in the current frame (using whatever configured layout. See Window Layouts) and drop you on the poke REPL.
In order to exit poke, you can either use the command
M-xpoke-exit or the quit
command at the repl:
#!poke!# quit
Previous: Running, Up: Introduction [Contents]
If you find problems with poke-el, or if you have questions, remarks, or ideas about it, please mail to the GNU poke mailing list poke-devel@gnu.org. If you are not a member of the mailing list, your mail will be passed to the list after a moderator has approved it2.
Please consider subscribing to the mailing list, in order to minimize the work the mailing list moderators have to do. The subscription can be done online at http://lists.gnu.org/mailman/listinfo/poke-devel.