;; This file: http://user.it.uu.se/~embe8573/conf/emacs-init/sort-my.el (require 'edit) (require 'erc) (defvar sort-fold-case) (setq sort-fold-case t) (defun sort-lines-random (beg end) (interactive "r") (save-excursion (save-restriction (narrow-to-region beg end) (goto-char (point-min)) (sort-subr nil #'forward-line #'end-of-line nil nil (lambda (a b) (zerop (random 2)) ))))) (defun sort-buffer (&optional reverse) "Sort the buffer with `sort-lines', ignoring case while sorting. Do REVERSE search with a prefix argument." (interactive "P") (setq sort-fold-case t) ; ignore case (sort-lines reverse (point-min) (point-max)) ) (defun sort-whole-lines (beg end) (interactive "r") (save-excursion (goto-char beg) (let ((start (line-beginning-position))) (goto-char end) (let ((end (line-end-position))) (sort-lines nil start end)) ))) ; REVERSE (defun insert-string-list (ss) (when ss (insert (format "%s " (car ss))) (insert-string-list (cdr ss)))) (require 'get-search-string) (defun sort-line-words (start stop) (interactive "r") (let*((str (region-to-string)) (str-list (split-string str)) (sorted (erc-sort-strings str-list)) ) (kill-region start stop) (insert-string-list sorted) (backward-char 1) )) (defalias 'sort-horizontally 'sort-line-words)