+delete a sentence in auto fill

Basically adds the functionality necessary to delete sentences in auto
fill mode, where it may not be possible with simple vim motions and
where Emacs functions kill the paragraph.
This commit is contained in:
2020-08-09 17:23:15 +01:00
parent 6b289457fb
commit 2fd2149b59

View File

@@ -763,6 +763,40 @@ Auto fill mode is nice for most text modes, 80 char limit is great.
#+BEGIN_SRC emacs-lisp
(add-hook 'text-mode-hook #'auto-fill-mode)
#+END_SRC
** Delete a sentence in auto fill
In long lines via truncate lines, deleting till the end of the
sentence was easy via vim motions. However, the same action is
difficult with auto-fill-mode where sentences are separated through
(potentially several) newlines which makes vim motions
difficult. Thus, I propose some form of functionality which allows you
to:
- Find the next closest period denoting the end of the sentence
- Delete the region between the point of invocation and the found period
This essentially does the same task as vim motion based deletion, but
can handle the newlines. To not trample on the toes of any package,
I'll set it to "M-d" (kill-word), the most inoffensive binding
possible which is still mnemonic.
First, the function. I'll use search-forward (from zap* lib) to find
the period. Then auto-fill to make it look nice.
#+BEGIN_SRC emacs-lisp
(defun +text/delete-till-sentence ()
"Delete all text from current point to the next closest period."
(interactive)
(set-mark-command nil)
(search-forward ". ")
(kill-region (region-beginning) (region-end))
(fill-paragraph))
#+END_SRC
Now, the binding
#+BEGIN_SRC emacs-lisp
(general-def
:states '(normal insert)
(kbd "M-d") #'+text/delete-till-sentence)
#+END_SRC
* Org
** Org default with evil
Setup for org mode, currently basically nothing. Has evil-org for