A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/hrehfeld/emacs-smart-hungry-delete below:

hrehfeld/emacs-smart-hungry-delete: An emacs package to delete whitespace between words, parenthesis and other delimiters in a (not very) smart way.

Delete whitespace between words, parenthesis and other delimiters in a smart (dumb) way.

Suppose you have this text in the buffer:

With smart-hungry-delete/backward-char, it will delete all but one (white-)space between word and paren:

If you delete here:

it deletes all whitespace, because it’s on the inside of a paren:

Inside of right paren:

This is configured for C-like languages (e.g. Python), where : usually has no space to the left:

It has space to the right though:

This also works for (nested) parentheses:

Between words it will leave a space:

Here’s a small demonstration video:

It’s in MELPA, so if you have that in your package lists, just M-x package-install smart-hungry-delete, and bind smart-hungry-delete-backward-char and smart-hungry-delete-forward-char:
(require 'smart-hungry-delete)
(smart-hungry-delete-add-default-hooks)
(global-set-key (kbd "<backspace>") 'smart-hungry-delete-backward-char)
(global-set-key (kbd "<delete>") 'smart-hungry-delete-backward-char)
(global-set-key (kbd "C-d") 'smart-hungry-delete-forward-char)
If you use use-package:
(use-package smart-hungry-delete
  :ensure t
  :bind (([remap backward-delete-char-untabify] . smart-hungry-delete-backward-char)
	       ([remap delete-backward-char] . smart-hungry-delete-backward-char)
	       ([remap delete-char] . smart-hungry-delete-forward-char))
  :init (smart-hungry-delete-add-default-hooks))

Only for some modes:

(use-package smart-hungry-delete
  :ensure t
  :bind (:map python-mode-map
              ([remap backward-delete-char-untabify] . smart-hungry-delete-backward-char)
	            ([remap delete-backward-char] . smart-hungry-delete-backward-char)
	            ([remap delete-char] . smart-hungry-delete-forward-char))
  :init (smart-hungry-delete-add-default-hooks))
Here’s the basic el-get recipe:
(:name smart-hungry-delete
 :type github
 :pkgname "hrehfeld/emacs-smart-hungry-delete")

smart-hungry-delete deletes hungrily if three regexps match:

<left><kill>(point)<right>

or with smart-hungry-delete-forward-char:

<left>(point)<kill><right>

You can configure these on a per buffer basis:

smart-hungry-delete-char-kill-regexp is a buffer-local variable holding a regex that defines what will be hungrily deleted (<kill>).

smart-hungry-delete-char-trigger-killall-regexps is a list of pairs:

'(("\\[" . ".") ;; delete when <left> is "[" and <right> is any of "."
  ("." . "\\]") ;; delete when <left> is any of "." and <right> is "]"
  ...)

smart-hungry-delete-add-regexps-left-right makes it easy to add left-right combinations of chars like parentheses:

(smart-hungry-delete-add-regexps-left-right "\\{" "\\}") ;;as above, but with "{" and "}"

smart-hungry-delete-add-default-hooks will add some good defaults for (some) programming modes. Check out the smart-hungry-delete-default-*-hook functions.

If you have good suggestions for more defaults, make sure to suggest the recipes!


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4