751 (iswitchb-mode 1) |
751 (iswitchb-mode 1) |
752 (setq iswitchb-regexp t) |
752 (setq iswitchb-regexp t) |
753 (setq iswitchb-use-virtual-buffers t) |
753 (setq iswitchb-use-virtual-buffers t) |
754 (setq iswitchb-buffer-ignore |
754 (setq iswitchb-buffer-ignore |
755 '("^ " |
755 '("^ " |
756 "^\*Buffer" |
756 "^\\*Buffer" |
757 "^\*Completions\*" |
757 "^\\*Completions\\*" |
758 "^\*tramp" |
758 "^\\*tramp" |
759 "^\*Dired log\*" |
759 "^\\*Dired log\\*" |
760 "^\*Quail Completions\*" |
760 "^\\*Quail Completions\\*" |
761 "^\*Disabled Command\*" |
761 "^\\*Disabled Command\\*" |
762 "^TAGS" |
762 "^TAGS" |
763 )) |
763 )) |
764 |
764 |
765 (require 'uniquify) |
765 (require 'uniquify) |
766 (setq uniquify-buffer-name-style 'post-forward) |
766 (setq uniquify-buffer-name-style 'post-forward) |
1414 (setq fill-column 78) |
1414 (setq fill-column 78) |
1415 (turn-on-auto-fill) |
1415 (turn-on-auto-fill) |
1416 (flyspell-mode 1)) |
1416 (flyspell-mode 1)) |
1417 (add-hook 'message-mode-hook 'my-message-mode-hook) |
1417 (add-hook 'message-mode-hook 'my-message-mode-hook) |
1418 |
1418 |
1419 ;; Mark all send message with same domain "Message-Id" to provide for replays |
1419 ;; Mark all my messages by "common" string in "Message-Id" field to simplify |
1420 ;; to me in followups. |
1420 ;; lookup for followups to me. |
1421 (setq message-user-fqdn "gavenkoa.example.com") |
1421 (setq message-user-fqdn "gavenkoa.example.com") |
1422 |
1422 |
1423 ;; Kill message buffer after mail send. You always can use C-c C-s to preserve it. |
1423 ;; Kill message buffer after mail send. You always can use C-c C-s to preserve it. |
1424 (setq message-kill-buffer-on-exit t) |
1424 (setq message-kill-buffer-on-exit t) |
1425 |
1425 |
1471 (defun my-kill-gnus () |
1471 (defun my-kill-gnus () |
1472 "Kill Gnus when exiting Emacs." |
1472 "Kill Gnus when exiting Emacs." |
1473 (let ( (gnus-interactive-exit nil) ) |
1473 (let ( (gnus-interactive-exit nil) ) |
1474 (gnus-group-exit) |
1474 (gnus-group-exit) |
1475 )) |
1475 )) |
1476 (eval-after-load 'gnus |
1476 (eval-after-load 'gnus '(add-hook 'kill-emacs-hook 'my-kill-gnus)) |
1477 '(progn |
|
1478 (add-hook 'kill-emacs-hook 'my-kill-gnus) |
|
1479 )) |
|
1480 |
1477 |
1481 (eval-after-load 'gnus-art |
1478 (eval-after-load 'gnus-art |
1482 '(progn |
1479 '(progn |
1483 (setq gnus-visible-headers (concat gnus-visible-headers "\\|^Archived-At")) |
1480 (setq gnus-visible-headers (concat gnus-visible-headers "\\|^Archived-At")) |
1484 )) |
1481 )) |
1570 '((".*" |
1567 '((".*" |
1571 (organization (getenv "ORGANIZATION")) |
1568 (organization (getenv "ORGANIZATION")) |
1572 (signature-file "~/.signature")))) |
1569 (signature-file "~/.signature")))) |
1573 |
1570 |
1574 (gnus-add-configuration |
1571 (gnus-add-configuration |
1575 '(article (vertical 1.0 (group .10 point) (summary .30 point) (article 1.0)))) |
1572 '(article (vertical 1.0 (summary .30 point) (article 1.0)))) |
1576 |
1573 |
1577 (setq gnus-summary-display-arrow t) |
1574 (setq gnus-summary-display-arrow t) |
1578 |
1575 |
1579 ;; `gnus-summary-line-format', |
1576 ;; `gnus-summary-line-format', |
1580 ;; `gnus-server-line-format', `gnus-topic-line-format', |
1577 ;; `gnus-server-line-format', `gnus-topic-line-format', |
1634 )) |
1631 )) |
1635 |
1632 |
1636 (setq |
1633 (setq |
1637 gnus-show-threads t |
1634 gnus-show-threads t |
1638 gnus-thread-sort-functions '(gnus-thread-sort-by-date gnus-thread-sort-by-total-score) |
1635 gnus-thread-sort-functions '(gnus-thread-sort-by-date gnus-thread-sort-by-total-score) |
|
1636 gnus-summary-thread-gathering-function 'gnus-gather-threads-by-subject |
|
1637 gnus-summary-gather-subject-limit 'fuzzy |
|
1638 gnus-thread-hide-killed t |
|
1639 gnus-thread-ignore-subject t |
1639 ) |
1640 ) |
1640 |
1641 |
1641 ;; gnus-summary-mark-below gnus-summary-default-score gnus-summary-default-high-score gnus-summary-default-low-score |
1642 ;; gnus-summary-mark-below gnus-summary-default-score gnus-summary-default-high-score gnus-summary-default-low-score |
1642 |
1643 |
1643 ;; Scoring. |
1644 ;; Scoring. |
1644 (setq |
1645 (setq |
1645 gnus-use-scoring t |
1646 gnus-use-scoring t |
1646 gnus-save-score t |
1647 gnus-save-score t |
1647 gnus-score-expiry-days 60 |
1648 gnus-score-expiry-days 60 |
1648 gnus-decay-scores t |
1649 ;; gnus-decay-scores t |
1649 gnus-score-decay-constant 3 |
1650 gnus-score-decay-constant 3 |
1650 ) |
1651 ) |
1651 |
1652 |
1652 (setq |
1653 (setq gnus-score-interactive-default-score 100) |
1653 gnus-score-interactive-default-score 100 |
1654 |
1654 gnus-summary-mark-below 0 |
1655 ;; These variables are local to each summary buffer and usually set by the |
1655 gnus-summary-expunge-below -40 |
1656 ;; score file: gnus-summary-mark-below, gnus-summary-expunge-below, gnus-thread-expunge-below |
1656 gnus-thread-expunge-below -40) |
|
1657 |
1657 |
1658 (setq gnus-use-adaptive-scoring t) |
1658 (setq gnus-use-adaptive-scoring t) |
1659 ;; I use 100 for replay to me and 200 for essential mails, and -50 for bad mails. |
1659 ;; I use 100 for replay to me and 200 for essential mails, and -50 for bad mails. |
1660 (setq gnus-default-adaptive-score-alist |
1660 (setq gnus-default-adaptive-score-alist |
1661 '( |
1661 '( |
1673 (eval-after-load 'gnus-score |
1673 (eval-after-load 'gnus-score |
1674 '(progn |
1674 '(progn |
1675 ;; (add-hook 'message-sent-hook 'gnus-score-followup-article) |
1675 ;; (add-hook 'message-sent-hook 'gnus-score-followup-article) |
1676 (add-hook 'message-sent-hook 'gnus-score-followup-thread) |
1676 (add-hook 'message-sent-hook 'gnus-score-followup-thread) |
1677 )) |
1677 )) |
|
1678 |
|
1679 (defvar my-gnus-summary-kill-same-subject-min-len 8 |
|
1680 "Minimal length of subject string to ignore this subject.") |
|
1681 (defun my-gnus-summary-kill-same-subject (&optional unmark) |
|
1682 "Add negative scores for all articles with same subject." |
|
1683 (interactive "P") |
|
1684 (when (or (not (integerp unmark)) (< 0 unmark)) |
|
1685 (let ( (subj (gnus-simplify-subject-fuzzy (gnus-summary-article-subject))) ) |
|
1686 (when (<= (length subj) my-gnus-summary-kill-same-subject-min-len) |
|
1687 (gnus-summary-score-entry |
|
1688 "subject" subj |
|
1689 's (- gnus-score-interactive-default-score) (current-time-string))))) |
|
1690 (gnus-summary-kill-same-subject unmark)) |
|
1691 (eval-after-load 'gnus-sum |
|
1692 '(define-key gnus-summary-mode-map (kbd "C-k") #'my-gnus-summary-kill-same-subject)) |
1678 |
1693 |
1679 (defun my-gnus-thread-score-function (&rest scores) |
1694 (defun my-gnus-thread-score-function (&rest scores) |
1680 "If any followup have positive score assign greater available |
1695 "If any followup have positive score assign greater available |
1681 score to thread, else assign lesser available score." |
1696 score to thread, else assign lesser available score." |
1682 (let ( (max (apply 'max scores)) (min (apply 'min scores)) ) |
1697 (let ( (max (apply 'max scores)) (min (apply 'min scores)) ) |