emacs-evil / evil-collection

A set of keybindings for evil-mode
GNU General Public License v3.0
1.21k stars 275 forks source link

Add lpy #479

Closed jgarte closed 2 years ago

jgarte commented 3 years ago

https://github.com/abo-abo/lpy

Original bindings

(defvar lpy-mode-map
  (let ((map (make-sparse-keymap)))
    (define-key map (kbd "M-o") 'lpy-back-to-special)
    (define-key map (kbd "M-i") 'lpy-iedit)
    (define-key map (kbd "C-y") 'lpy-yank)
    (define-key map (kbd "C-c C-z") 'lpy-switch-to-shell)
    (define-key map (kbd "C-c C-c") 'lispy-eval-current-outline)
    (define-key map (kbd "C-c C-l") 'lpy-eval-buffer)
    (define-key map (kbd "C-a") 'lpy-beginning-of-line)
    (define-key map (kbd "C-k") 'lpy-kill-line)
    (define-key map (kbd "C-d") 'lpy-delete)
    (define-key map (kbd "M-m") 'lpy-mark-symbol)
    (define-key map (kbd "M-RET") 'lpy-meta-return)
    (define-key map (kbd "<backtab>") 'lispy-shifttab)
    (define-key map (kbd "M-<left>") 'lispy-outline-demote)
    (define-key map (kbd "M-<right>") 'lispy-outline-promote)
    (define-key map (kbd "C-1") 'lispy-describe-inline)
    (define-key map (kbd "C-2") 'lispy-arglist-inline)
    (define-key map (kbd "M-.") 'lispy-goto-symbol)
    (define-key map (kbd "M-,") 'pop-tag-mark)
    (define-key map (kbd "M-j") 'lpy-split)
    (define-key map (kbd "SPC") 'lpy-space)
    (define-key map "(" 'lpy-parens)
    (define-key map "φ" 'lpy-parens)
    (define-key map "\"" 'lpy-quotes)
    (lpy-define-key map "a" 'lpy-avy-symbol)
    (lpy-define-key map "b" 'lispy-back)
    (lpy-define-key map "c" 'hydra-lispy-move/body)
    (lpy-define-key map "d" 'lpy-different)
    (lpy-define-key map "e" 'lispy-eval)
    (lpy-define-key map "E" 'lispy-eval-and-insert)
    (lpy-define-key map "f" 'lpy-flow)
    (lpy-define-key map "g" 'lpy-goto)
    (lpy-define-key map "h" 'lpy-left)
    (lpy-define-key map "i" 'lpy-tab)
    (lpy-define-key map "/" 'lpy-contents)
    (lpy-define-key map "j" 'lpy-down)
    (lpy-define-key map "k" 'lpy-up)
    (lpy-define-key map "l" 'lpy-right)
    (lpy-define-key map "m" 'lpy-mark)
    (lpy-define-key map "n" 'lispy-new-copy)
    (lpy-define-key map "o" 'lpy-open)
    (lpy-define-key map "p" 'self-insert-command)
    (lpy-define-key map "q" 'lpy-avy)
    (lpy-define-key map "r" 'self-insert-command)
    (lpy-define-key map "s" 'self-insert-command)
    (lpy-define-key map "t" 'lpy-teleport)
    (lpy-define-key map "u" 'undo)
    (lpy-define-key map "v" 'lpy-view)
    (lpy-define-key map "w" 'self-insert-command)
    (lpy-define-key map "x" 'lispy-x)
    (lpy-define-key map "y" 'lpy-occur)
    (lpy-define-key map "z" 'self-insert-command)
    (lpy-define-key map "B" 'lispy-ediff-regions)
    (lpy-define-key map "C" 'lpy-clean)
    (lpy-define-key map "D" 'pop-tag-mark)
    (lpy-define-key map "F" 'lispy-goto-symbol)
    (lpy-define-key map "I" 'lispy-shifttab)
    (lpy-define-key map "J" 'lispy-outline-next)
    (lpy-define-key map "K" 'lispy-outline-prev)
    (lpy-define-key map "N" 'lispy-narrow)
    (lpy-define-key map "W" 'lispy-widen)
    (define-key map ">" 'lpy-soap-command)
    (define-key map "<" 'lpy-soap-command)
    (dolist (x (number-sequence 0 9))
      (lpy-define-key map (format "%d" x) 'digit-argument))
    (dolist (x '("+" "-" "%" "&" "|" "=" ","))
      (define-key map x 'lpy-soap-command))
    map))
jojojames commented 3 years ago

PR would be good, haven't used lpy for a while. I think modeling it after the lispy version in evil-collection is a good idea.