_            _    _        _         _
      /\ \         /\ \ /\ \     /\_\      / /\
      \_\ \       /  \ \\ \ \   / / /     / /  \
      /\__ \     / /\ \ \\ \ \_/ / /     / / /\ \__
     / /_ \ \   / / /\ \ \\ \___/ /     / / /\ \___\
    / / /\ \ \ / / /  \ \_\\ \ \_/      \ \ \ \/___/
   / / /  \/_// / /   / / / \ \ \        \ \ \
  / / /      / / /   / / /   \ \ \   _    \ \ \
 / / /      / / /___/ / /     \ \ \ /_/\__/ / /
/_/ /      / / /____\/ /       \ \_\\ \/___/ /
\_\/       \/_________/         \/_/ \_____\/
sbcl-nkeymaps 1.1.1
Dependencies: sbcl-alexandria@1.4-0.009b7e5 sbcl-fset@1.4.0 sbcl-cl-str@0.21 sbcl-trivial-package-local-nicknames@0.2
Channel: guix
Location: gnu/packages/lisp-xyz.scm (gnu packages lisp-xyz)
Home page: https://github.com/atlas-engineer/nkeymaps
Licenses: Modified BSD
Synopsis: Keymap facility for Common Lisp
Description:

This is a keymap facility for Common Lisp inspired by Emacsy (keymap.scm) which is inspired by Emacs.

  • Support prefix keys to other keymaps. For instance, if you prefix my-mode-map with C-c, then all bindings for my-mode will be accessible after pressing C-c.

  • List all bindings matching a given prefix. (Also known as which-key in Emacs.)

  • List the bindings associated to a command.

  • Support multiple inheritance.

  • Support keycode.

  • Validate keyspec at compile time.

  • define-key can set multiple bindings in a single call.

  • Support multiple scheme to make it easy to switch between, say, Emacs-style and VI-style bindings. This orthogonality to keymaps composes better than having multiple keymaps: changing scheme applies to the entire program, which is easier than looping through all keymaps to change them.

  • Translate keyspecs as a fallback. For instance if shift-a is not bound, check A.

  • Behaviour can be customized with global parameters such as *print-shortcut*.

  • The compose function can merge multiple keymaps together.

  • Support multiple arguments when that makes sense (e.g. multiple keymaps for lookup-key).

  • Key remapping à-la Emacs.

  • Typed keymaps, i.e. keymaps where bound values can only be of a given type. This is convenient to catch typos, for instance when binding 'FOO instead of #'FOO.

Total results: 1