Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: line continuation with sed



On Fri, Oct 14, 2022 at 12:19:01PM +0100, Peter Stephenson wrote:
> You can configure a number of editors to show this up.  In emacs,
> for example, I use:
>
> (setq-default show-trailing-whitespace t)
>
> to show it for all modes, since it's often useful and at worst
> a minor distraction.

Decades ago Paul D. Smith posted the attached script
"rm-tspaces.el" to the fvwm-workers mailing list:  When you try to
save a buffer with trailing whitespace, it asks you whether you
want to remove them before saving.  Very handy.  (Can also be
configured to do this automatically.)

My configuration:
-- ~/.emacs --
;; Removes all trailing whitespace at the end of all lines--this setting
;; makes it ask you by default.
;;
(require 'rm-tspaces)
(setq-default rm-trailing-spaces 1)
;; Turn it on unconditionally for various programming modes
;;
(add-hook 'emacs-lisp-mode-hook 'rm-trailing-spaces-always)
(add-hook 'cperl-mode-hook 'rm-trailing-spaces-always)
(add-hook 'c-mode-common-hook 'rm-trailing-spaces-always)
(add-hook 'makefile-mode-hook 'rm-trailing-spaces-always)
;; Turn it off unconditionally in other places
;;
(add-hook 'message-mode-hook  'rm-trailing-spaces-never)
(add-hook 'nnfolder-save-buffer-hook 'rm-trailing-spaces-never)
-- snip --

Ciao

Dominik ^_^  ^_^

--

Dominik Vogt
;; rm-tspaces.el: Automatically clean trailing whitespace from buffers.
;;
;; Copyright (C) 1995  Paul D. Smith <psmith@xxxxxxxxxxxxxxx>
;;
;; This file requires Emacs 19 or above.  It should work with both Emacs
;; and XEmacs.  Use (require 'rm-tspaces) to load this file (don't
;; autoload it).
;;
;; For user-invoked whitespace cleanup, the function rm-trailing-spaces
;; can be bound to a key or invoked via M-x.
;;
;; The variable rm-trailing-spaces controls behavior when the buffer is
;; saved.  By default nothing is done.  See the documentation of this
;; variable for details.
;;
;; The variable rm-trailing-spaces is buffer-local.  Use setq-default to
;; set the default value for all buffers.  Use setq to override the
;; default value for a particular buffer.  If you're going to put the
;; setq in a hook, use the handy hook functions at the end of this file
;; to avoid having to write your own.
;;
;; For example, to be asked about removal for all buffers, except
;; automatically remove spaces in C files, try something like this:
;;
;;  (require 'rm-tspaces)
;;  (setq-default rm-trailing-spaces 1) ; any non-nil, non-t value
;;
;;  (add-hook 'c-mode-hook 'rm-trailing-spaces-always)
;;
;; Note the user is only queried when there is actually trailing
;; whitespace in the buffer (e.g., the buffer would be modified).
;;
;;  This program is free software; you can redistribute it and/or modify
;;  it under the terms of the GNU General Public License as published by
;;  the Free Software Foundation; either version 2, or (at your option)
;;  any later version.
;;
;; Changes:
;;  1.2 - Add version info.
;;        Add simple functions to make installing in hooks simpler.


(defvar rm-trailing-spaces nil
  "*Value of t says silently remove all trailing spaces when a file is saved.
Non-nil but not t says ask user whether to remove trailing spaces or not.
nil means don't remove trailing spaces.")
(make-variable-buffer-local 'rm-trailing-spaces)


;; What are we?
;;
;(defconst rm-tspaces-version (substring "$Revision$" 11 -2)
;  "$Id$")


(defun rm-trailing-spaces-internal ()
  "Deletes trailing whitespace from all lines in the current buffer."
  (if (and (not buffer-read-only) rm-trailing-spaces)
      (save-excursion
	(goto-char (point-min))
	(if (or (eq rm-trailing-spaces t)
		(and (re-search-forward "[ \t]$" nil 1)
		     (y-or-n-p
		      (format "Remove trailing spaces in buffer %s? "
			      (buffer-name)))))
	    (list
	     (while (< (point) (point-max))
	       (end-of-line nil)
	       (delete-horizontal-space)
	       (forward-line 1))
	     (end-of-line nil)
	     (delete-horizontal-space))
	    )))
  nil) ; indicates buffer-not-saved for write-file-hooks

(defun rm-trailing-spaces ()
  "Deletes trailing whitespace from all lines in the current buffer."
  (interactive "*")
  (message "Deleting trailing spaces... ")
  (let ((rm-trailing-spaces t))
    (rm-trailing-spaces-internal))
  (message "Deleting trailing spaces... done"))


;; Apply this function automatically to all buffers before they're saved.
;;
(add-hook 'write-file-hooks 'rm-trailing-spaces-internal)


;; Provide some simple functions for inclusion in hooks variables
;;
(defun rm-trailing-spaces-never ()
  "Don't automatically delete trailing whitespace in this buffer."
  (setq rm-trailing-spaces nil))

(defun rm-trailing-spaces-ask ()
  "Ask before deleting trailing whitespace in this buffer."
  (setq rm-trailing-spaces 1))

(defun rm-trailing-spaces-always ()
  "Always automatically delete trailing whitespace in this buffer."
  (setq rm-trailing-spaces t))


(provide 'rm-tspaces)

;; rm-tspaces.el ends here


Messages sorted by: Reverse Date, Date, Thread, Author