added hydra support
This commit is contained in:
parent
624166706b
commit
27c8891148
|
@ -0,0 +1,86 @@
|
|||
* Hydra
|
||||
This is a package for GNU Emacs that can be used to tie related commands into a family of short bindings with a common prefix - a Hydra.
|
||||
Imagine that you have bound C-c j and C-c k in your config. You want to call C-c j and C-c k in some (arbitrary) sequence. Hydra allows you to:
|
||||
- Bind your functions in a way that pressing C-c jjkk3j5k is equivalent to pressing C-c j C-c j C-c k C-c k M-3 C-c j M-5 C-c k. Any key other than j or k exits this state.
|
||||
|
||||
- Assign a custom hint to this group of functions, so that you know immediately after pressing C-c that you can follow up with j or k.
|
||||
|
||||
If you want to quickly understand the concept, see [the video demo](https://www.youtube.com/watch?v=_qZliI1BKzI).
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package hydra
|
||||
:ensure hydra
|
||||
:init
|
||||
(global-set-key
|
||||
(kbd "C-x t")
|
||||
(defhydra toggle (:color blue)
|
||||
"toggle"
|
||||
("a" abbrev-mode "abbrev")
|
||||
("s" flyspell-mode "flyspell")
|
||||
("d" toggle-debug-on-error "debug")
|
||||
("c" fci-mode "fCi")
|
||||
("f" auto-fill-mode "fill")
|
||||
("t" toggle-truncate-lines "truncate")
|
||||
("w" whitespace-mode "whitespace")
|
||||
("q" nil "cancel")))
|
||||
(global-set-key
|
||||
(kbd "C-x j")
|
||||
(defhydra gotoline
|
||||
( :pre (linum-mode 1)
|
||||
:post (linum-mode -1))
|
||||
"goto"
|
||||
("t" (lambda () (interactive)(move-to-window-line-top-bottom 0)) "top")
|
||||
("b" (lambda () (interactive)(move-to-window-line-top-bottom -1)) "bottom")
|
||||
("m" (lambda () (interactive)(move-to-window-line-top-bottom)) "middle")
|
||||
("e" (lambda () (interactive)(end-of-buffer)) "end")
|
||||
("c" recenter-top-bottom "recenter")
|
||||
("n" next-line "down")
|
||||
("p" (lambda () (interactive) (forward-line -1)) "up")
|
||||
("g" goto-line "goto-line")
|
||||
))
|
||||
(global-set-key
|
||||
(kbd "C-c t")
|
||||
(defhydra hydra-global-org (:color blue)
|
||||
"Org"
|
||||
("t" org-timer-start "Start Timer")
|
||||
("s" org-timer-stop "Stop Timer")
|
||||
("r" org-timer-set-timer "Set Timer") ; This one requires you be in an orgmode doc, as it sets the timer for the header
|
||||
("p" org-timer "Print Timer") ; output timer value to buffer
|
||||
("w" (org-clock-in '(4)) "Clock-In") ; used with (org-clock-persistence-insinuate) (setq org-clock-persist t)
|
||||
("o" org-clock-out "Clock-Out") ; you might also want (setq org-log-note-clock-out t)
|
||||
("j" org-clock-goto "Clock Goto") ; global visit the clocked task
|
||||
("c" org-capture "Capture") ; Don't forget to define the captures you want http://orgmode.org/manual/Capture.html
|
||||
("l" (or )rg-capture-goto-last-stored "Last Capture"))
|
||||
|
||||
))
|
||||
|
||||
(defhydra hydra-multiple-cursors (:hint nil)
|
||||
"
|
||||
Up^^ Down^^ Miscellaneous % 2(mc/num-cursors) cursor%s(if (> (mc/num-cursors) 1) \"s\" \"\")
|
||||
------------------------------------------------------------------
|
||||
[_p_] Next [_n_] Next [_l_] Edit lines [_0_] Insert numbers
|
||||
[_P_] Skip [_N_] Skip [_a_] Mark all [_A_] Insert letters
|
||||
[_M-p_] Unmark [_M-n_] Unmark [_s_] Search
|
||||
[Click] Cursor at point [_q_] Quit"
|
||||
("l" mc/edit-lines :exit t)
|
||||
("a" mc/mark-all-like-this :exit t)
|
||||
("n" mc/mark-next-like-this)
|
||||
("N" mc/skip-to-next-like-this)
|
||||
("M-n" mc/unmark-next-like-this)
|
||||
("p" mc/mark-previous-like-this)
|
||||
("P" mc/skip-to-previous-like-this)
|
||||
("M-p" mc/unmark-previous-like-this)
|
||||
("s" mc/mark-all-in-region-regexp :exit t)
|
||||
("0" mc/insert-numbers :exit t)
|
||||
("A" mc/insert-letters :exit t)
|
||||
("<mouse-1>" mc/add-cursor-on-click)
|
||||
;; Help with click recognition in this hydra
|
||||
("<down-mouse-1>" ignore)
|
||||
("<drag-mouse-1>" ignore)
|
||||
("q" nil)
|
||||
|
||||
|
||||
("<mouse-1>" mc/add-cursor-on-click)
|
||||
("<down-mouse-1>" ignore)
|
||||
("<drag-mouse-1>" ignore))
|
||||
#+END_SRC
|
Loading…
Reference in New Issue