This is docY6woV0.info, produced by makeinfo version 6.7 from
poke-el.texi.

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.
INFO-DIR-SECTION Emacs
START-INFO-DIR-ENTRY
* Emacs meets GNU poke: (poke-el). Emacs interface to GNU poke
END-INFO-DIR-ENTRY


File: docY6woV0.info,  Node: Top,  Next: Introduction,  Up: (dir)

poke-el: an Emacs interface to GNU poke
***************************************

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.

* Menu:

* Introduction::                Getting started

 — The Detailed Node Listing —

Introduction

* Installation::                How to install this package
* Configuration::               Loading and configuring
* Running::                     Running and exiting poke
* Feedback::                    Bug reports, ideas, patches etc.


File: docY6woV0.info,  Node: Introduction,  Prev: Top,  Up: Top

1 Introduction
**************

poke-el is an Emacs interface to GNU poke(1), the extensible editor for
structured binary data.

* Menu:

* Installation::                How to install this package
* Configuration::               Loading and configuring
* Running::                     Running and exiting poke
* Feedback::                    Bug reports, ideas, patches etc.

   ---------- Footnotes ----------

   (1) <https://jemarch.net/poke>


File: docY6woV0.info,  Node: Installation,  Next: Configuration,  Up: Introduction

1.1 Installation
================

This program is implemented in a self-contained elisp file called
‘poke.el’.  It can be obtained in several ways:

   − From GNU ELPA (https://elpa.gnu.org/packages/poke.html) using the
     built-in Emacs package manager.
   − As part of the source tree cloned from the development git
     repository <https://git.savannah.gnu.org/git/poke/poke-el.git>.
   − As a single file downloaded form some other location in internet.
   − It may be already installed as part of a binary package in some
     distribution.

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.


File: docY6woV0.info,  Node: Configuration,  Next: Running,  Prev: Installation,  Up: Introduction

1.2 Configuration
=================

Once loaded, there are many aspects of poke-el that can be configured by
the user.

* Menu:

* Settings::                    Output numeration base and other settings.
* Window Layouts::              Predefined layouts.


File: docY6woV0.info,  Node: Settings,  Next: Window Layouts,  Up: Configuration

1.2.1 Settings
--------------

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.


File: docY6woV0.info,  Node: Window Layouts,  Prev: Settings,  Up: Configuration

1.2.2 Window Layouts
--------------------

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)


File: docY6woV0.info,  Node: Running,  Next: Feedback,  Prev: Configuration,  Up: Introduction

1.3 Running
===========

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.  *Note
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


File: docY6woV0.info,  Node: Feedback,  Prev: Running,  Up: Introduction

1.4 Feedback
============

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 it(1).

   ---------- Footnotes ----------

   (1) 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>.



Tag Table:
Node: Top479
Node: Introduction1302
Ref: Introduction-Footnote-11781
Node: Installation1816
Node: Configuration2903
Node: Settings3263
Node: Window Layouts4055
Node: Running5934
Node: Feedback6568
Ref: Feedback-Footnote-16981

End Tag Table


Local Variables:
coding: utf-8
End:
