From db6b1e941e441aa770a5151712eaa7bd66e1e60e Mon Sep 17 00:00:00 2001 From: syl20bnr Date: Tue, 3 Dec 2013 08:53:29 -0500 Subject: [PATCH] Add another count words related function --- my-funcs.el | 18 ++++++++++++++++++ my-keybindings.el | 1 + 2 files changed, 19 insertions(+) diff --git a/my-funcs.el b/my-funcs.el index c8929282f..0e4955fe8 100644 --- a/my-funcs.el +++ b/my-funcs.el @@ -303,4 +303,22 @@ For instance pass En as source for english." (setq google-translate-default-source-language source) (setq google-translate-default-target-language target)) +;; from http://www.emacswiki.org/emacs/WordCount +(defun count-words-analysis (start end) + "Count how many times each word is used in the region. + Punctuation is ignored." + (interactive "r") + (let (words) + (save-excursion + (goto-char start) + (while (re-search-forward "\\w+" end t) + (let* ((word (intern (match-string 0))) + (cell (assq word words))) + (if cell + (setcdr cell (1+ (cdr cell))) + (setq words (cons (cons word 1) words)))))) + (when (interactive-p) + (message "%S" words)) + words)) + (provide 'my-funcs) diff --git a/my-keybindings.el b/my-keybindings.el index e8a4a7eec..1a00e4206 100644 --- a/my-keybindings.el +++ b/my-keybindings.el @@ -219,6 +219,7 @@ (evil-leader/set-key "xtw" 'transpose-words) (evil-leader/set-key "xU" 'upcase-region) (evil-leader/set-key "xu" 'downcase-region) +(evil-leader/set-key "xwC" 'count-words-analysis) (evil-leader/set-key "xwc" 'count-words-region) ;; google translate ----------------------------------------------------------- (evil-leader/set-key "xgl" 'set-google-translate-languages)