Better org evil text-objects
This commit is contained in:
parent
533a307043
commit
0c261f9821
2 changed files with 18 additions and 39 deletions
|
@ -93,5 +93,17 @@
|
|||
(call-interactively 'evil-window-vsplit)
|
||||
(evil-window-right 1))
|
||||
|
||||
;;;###autoload
|
||||
(defmacro define-text-object! (key start-regex end-regex)
|
||||
(let ((inner-name (make-symbol "narf--inner-name"))
|
||||
(outer-name (make-symbol "narf--outer-name")))
|
||||
`(progn
|
||||
(evil-define-text-object ,inner-name (count &optional beg end type)
|
||||
(evil-select-paren ,start-regex ,end-regex beg end type count nil))
|
||||
(evil-define-text-object ,outer-name (count &optional beg end type)
|
||||
(evil-select-paren ,start-regex ,end-regex beg end type count t))
|
||||
(define-key evil-inner-text-objects-map ,key (quote ,inner-name))
|
||||
(define-key evil-outer-text-objects-map ,key (quote ,outer-name)))))
|
||||
|
||||
(provide 'defuns-evil)
|
||||
;;; defuns-evil.el ends here
|
||||
|
|
|
@ -271,45 +271,12 @@
|
|||
|
||||
;; Add element delimiter text-objects so we can use evil-surround to
|
||||
;; manipulate them.
|
||||
(evil-define-text-object evil-inner-org-bold-element (count &optional beg end type)
|
||||
:extend-selection nil (evil-select-quote ?* beg end type count))
|
||||
(evil-define-text-object evil-a-org-bold-element (count &optional beg end type)
|
||||
:extend-selection nil (evil-select-quote ?* beg end type count t))
|
||||
|
||||
(evil-define-text-object evil-inner-org-italic-element (count &optional beg end type)
|
||||
:extend-selection nil (evil-select-quote ?/ beg end type count))
|
||||
(evil-define-text-object evil-a-org-italic-element (count &optional beg end type)
|
||||
:extend-selection nil (evil-select-quote ?/ beg end type count t))
|
||||
|
||||
(evil-define-text-object evil-inner-org-underline-element (count &optional beg end type)
|
||||
:extend-selection nil (evil-select-quote ?_ beg end type count))
|
||||
(evil-define-text-object evil-a-org-underline-element (count &optional beg end type)
|
||||
:extend-selection nil (evil-select-quote ?_ beg end type count t))
|
||||
|
||||
(evil-define-text-object evil-inner-org-code-element (count &optional beg end type)
|
||||
:extend-selection nil (evil-select-quote ?= beg end type count))
|
||||
(evil-define-text-object evil-a-org-code-element (count &optional beg end type)
|
||||
:extend-selection nil (evil-select-quote ?= beg end type count t))
|
||||
|
||||
(evil-define-text-object evil-inner-org-verbatim-element (count &optional beg end type)
|
||||
:extend-selection nil (evil-select-quote ?~ beg end type count))
|
||||
(evil-define-text-object evil-a-org-verbatim-element (count &optional beg end type)
|
||||
:extend-selection nil (evil-select-quote ?~ beg end type count t))
|
||||
|
||||
(define-key evil-outer-text-objects-map "*" 'evil-a-org-bold-element)
|
||||
(define-key evil-inner-text-objects-map "*" 'evil-inner-org-bold-element)
|
||||
|
||||
(define-key evil-outer-text-objects-map "/" 'evil-a-org-italic-element)
|
||||
(define-key evil-inner-text-objects-map "/" 'evil-inner-org-italic-element)
|
||||
|
||||
(define-key evil-outer-text-objects-map "_" 'evil-a-org-underline-element)
|
||||
(define-key evil-inner-text-objects-map "_" 'evil-inner-org-underline-element)
|
||||
|
||||
(define-key evil-outer-text-objects-map "=" 'evil-a-org-code-element)
|
||||
(define-key evil-inner-text-objects-map "=" 'evil-inner-org-code-element)
|
||||
|
||||
(define-key evil-outer-text-objects-map "~" 'evil-a-org-verbatim-element)
|
||||
(define-key evil-inner-text-objects-map "~" 'evil-inner-org-verbatim-element)
|
||||
(define-text-object! "$" "\\$" "\\$")
|
||||
(define-text-object! "*" "\\*" "\\*")
|
||||
(define-text-object! "/" "/" "/")
|
||||
(define-text-object! "_" "_" "_")
|
||||
(define-text-object! "=" "=" "=")
|
||||
(define-text-object! "~" "~" "~")
|
||||
|
||||
;; Keybinds
|
||||
(bind! (:map org-mode-map
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue