k-talo / volatile-highlights.el

Minor mode for visual feedback on some operations in Emacs. STATUS: *STABLE*
135 stars 18 forks source link

+STARTUP: indent

+OPTIONS: num:nil toc:nil author:nil timestamp:nil

Copyright (C) 2001, 2010-2016, 2024 K-talo Miyazaki, all rights reserved.

** OVERVIEW

This library provides minor mode =volatile-highlights-mode=, which brings visual feedback to some operations by highlighting portions relating to the operations.

All of highlights made by this library will be removed when any new operation is executed.

** INSTALLING

To install this library, save the file "volatile-highlights.el" to a directory in your =load-path= (you can view the current =load-path= using =C-h v load-path = within Emacs), then add following lines to your =.emacs= start up file:

+BEGIN_EXAMPLE

(require 'volatile-highlights) (volatile-highlights-mode t)

+END_EXAMPLE

** USING

To toggle volatile highlighting, type:

: M-x volatile-highlights-mode

While this minor mode is on, a string `VHl' will be displayed on the modeline.

Currently, operations listed below will be highlighted While the minor mode `volatile-highlights-mode' is on:

- =undo= ::
  Volatile highlights will be put on the text inserted by =undo=.

- =yank= and =yank-pop= ::
  Volatile highlights will be put on the text inserted by =yank='
  or =yank-pop=.

- =kill-region=,  =kill-line=,  any other killing function ::
  Volatile highlights will be put at the positions where the
  killed text used to be.

- =delete-region= ::
  Same as =kill-region=,  but not as reliable since
  =delete-region= is an inline function.

- =find-tag= ::
  Volatile highlights will be put on the tag name which was found
  by =find-tag=.

- =occur-mode-goto-occurrence= and =occur-mode-display-occurrence= ::
  Volatile highlights will be put on the occurrence which is selected
  by =occur-mode-goto-occurrence= or =occur-mode-display-occurrence=.

- Non incremental search operations ::
  Volatile highlights will be put on the the text found by
  commands listed below:

    : nonincremental-search-forward
    : nonincremental-search-backward
    : nonincremental-re-search-forward
    : nonincremental-re-search-backward
    : nonincremental-repeat-search-forward
    : nonincremental-repeat-search-backward

Highlighting support for each operations can be turned on/off individually via customization. Also check out the customization group by:

: M-x customize-group RET volatile-highlights RET

** EXAMPLE SNIPPETS FOR USING VOLATILE HIGHLIGHTS WITH OTHER PACKAGES

*** vip

+BEGIN_SRC emacs-lisp

;;----------------------------------------------------------------------------- ;; Supporting vip-mode. ;;----------------------------------------------------------------------------- (vhl/define-extension 'vip 'vip-yank) (vhl/install-extension 'vip)

+END_SRC

*** evil

+BEGIN_SRC emacs-lisp

;;----------------------------------------------------------------------------- ;; Supporting evil-mode. ;;----------------------------------------------------------------------------- (vhl/define-extension 'evil 'evil-paste-after 'evil-paste-before 'evil-paste-pop 'evil-move) (vhl/install-extension 'evil)

+END_SRC

*** undo-tree

+BEGIN_SRC emacs-lisp

;;----------------------------------------------------------------------------- ;; Supporting undo-tree. ;;----------------------------------------------------------------------------- (vhl/define-extension 'undo-tree 'undo-tree-yank 'undo-tree-move) (vhl/install-extension 'undo-tree)

+END_SRC