.emacs-obsolete
author Oleksandr Gavenko <gavenkoa@gmail.com>
Fri, 01 Apr 2016 19:04:18 +0300
changeset 1390 edcad6180e5e
parent 1389 6004ef18bbe2
child 1391 32cc6f1ac5dc
permissions -rw-r--r--
I don't use rcirc.

;; -*- mode: emacs-lisp; coding: utf-8; fill-column: 78 -*-

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(iswitchb-mode 1)

(setq iswitchb-regexp t)
(setq iswitchb-use-virtual-buffers t)
(setq iswitchb-buffer-ignore
      '("^ "
        "^\\*Buffer"
        "^\\*Completions\\*"
        "^\\*tramp"
        "^\\*Dired log\\*"
        "^\\*Quail Completions\\*"
        "^\\*Disabled Command\\*"
        "^TAGS"
        ))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(require 'ffap)
(ffap-bindings)

;; I usually mistype "C-x C-f" to "C-x d" or "C-x C-d", so always use find-file,
;; because when file if directory find-file load dired, if regular file open it.
(global-set-key (kbd "C-x C-f") 'find-file-at-point)
(global-set-key (kbd "C-x C-d") 'find-file-at-point)
(global-set-key (kbd "C-x d") 'find-file-at-point)

;; Stop 'ffap' in Dired as its suggestion is inconvenient.
(define-key dired-mode-map (kbd "C-x C-f") 'find-file)
(define-key dired-mode-map (kbd "C-x C-d") 'find-file)
(define-key dired-mode-map (kbd "C-x d") 'find-file)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(mapc (lambda (ext) (add-to-list 'completion-ignored-extensions ext))
      '(
        ".class" "~" ".aux"
        ".o" ".obj" ".map" ".lib" ".lo" ".la" ".a" ".bin" ".exe"
        ;; Place dir at end to appear at the start of completion-ignored-extensions.
        "CVS/" ".hg/" ".svn/" ".git/" ".bzr/"
        ) )

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun my-find-subdirs (dir)
  (if (file-directory-p dir)
      (cons dir (apply 'append (mapcar 'my-find-subdirs (directory-files dir t "^[^.]")) ) )
    ))
(defun my-add-subdirs-to-load-path (dir)
  (mapc
   (lambda (d)
     (add-to-list 'load-path d t)
     (message "Load-path updated with: %s" d)
     )
   (my-find-subdirs dir)) )

(my-add-subdirs-to-load-path my-usr-lisp-dir)
(my-add-subdirs-to-load-path my-lisp-dir)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(add-hook 'comint-output-filter-functions 'comint-strip-ctrl-m)
(add-hook 'comint-mode-hook 'ansi-color-for-comint-mode-on)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; For Cygwin.

(add-hook 'comint-output-filter-functions 'comint-strip-ctrl-m)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(message "TODO, XXX, FIXME highlight")

(defface my-contrasty-face
  '((t :background "pink" :foreground "red" :weight bold))
  "Font for showing conflicts."
  :group 'basic-faces)

(dolist (mode (append my-devel-mode-list my-text-mode-list))
  (font-lock-add-keywords
   mode
   `(
     ;; 64 times, for highlight C-u C-u C-u <key>
     ("\\([^[:space:]]\\)\\1\\{63\\}" 0 'my-contrasty-face t) )) )

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Make mouse clicks work in xterm (and iTerm).

(when (not (window-system))
  (xterm-mouse-mode +1))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(message "org-mode, GTD, PIM, organize, todo")

(when (>= emacs-major-version 22)
  (require 'org))

(when (or (featurep 'org) (featurep 'org-install))
  (message "Many lines here..."))

(cond
 ((featurep 'org-capture)
  (setq org-default-notes-file my-org-agenda-todo-file)
  (setq org-capture-templates
        '(("t" "Todo" entry (file my-org-agenda-todo-file) "* %?\n  SCHEDULED: %T")))
  (define-key global-map "\C-vr"
    (lambda () (interactive) (org-capture nil "t")))
  )
 ((or (featurep 'remember) (fboundp 'remember))
  (setq remember-annotation-functions '(org-remember-annotation))
  (setq remember-handler-functions '(org-remember-handler))
  (add-hook 'remember-mode-hook 'org-remember-apply-template)
  (define-key global-map "\C-vr" 'org-remember)
  (setq org-remember-templates
        ;; With one item org-mode do not prompt choose template.
        `(
          ("todo" ?t "* TODO %?" ,my-org-agenda-todo-file)
          ;; ("note" ?n "* %?\n" ,my-org-agenda-note-file)
          ))
  (setq org-remember-store-without-prompt t)
  (org-remember-insinuate)
  ))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(message "highlight selected text")

(cond
 ((= emacs-major-version 21) (pc-selection-mode))
 ((>= emacs-major-version 22) (pc-selection-mode 1)) )

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(message "keyboard, mouse")

(setq my-russian-input-method 'russian-computer)
(setq my-ukranian-input-method 'ukrainian-computer)
(setq my-ipa-input-method 'ipa-x-sampa)
(when (<= emacs-major-version 21)
  (setq my-russian-input-method 'cyrillic-jcuken)
  (setq my-ukranian-input-method 'cyrillic-jcuken))
(setq default-input-method my-russian-input-method)

(defun my-toggle-input-method (&optional arg)
  (interactive "P")
  (if (numberp arg)
      (cond
       ((eq arg 1)
        (activate-input-method nil))
       ((eq arg 2)
        (activate-input-method 'my-russian-input-method))
       ((eq arg 3)
        (activate-input-method 'my-ukranian-input-method))
       ((eq arg 4)
        (activate-input-method 'greek))
       ((eq arg 5)
        (activate-input-method 'my-ipa-input-method))
       ((eq arg 6)
        (activate-input-method 'TeX)) )
    (toggle-input-method arg)) )

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(message "dired")

(when (>= emacs-major-version 22)
  ;; Enable 'a' command.
  (put 'dired-find-alternate-file 'disabled nil)
  )

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(message "devel, programming")

(when (>= emacs-major-version 22)
  (add-to-list 'magic-mode-alist '(my--c++-header-file-p . c++-mode))
  )

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(message "desktop")

(when (>= emacs-major-version 22)
  (require 'desktop)
  (add-to-list 'desktop-path desktop-dirname)
  (setq desktop-restore-frames nil)
  (desktop-save-mode 1)
  (setq
   desktop-globals-to-save
   (append
    '((file-name-history . 100)
      (compile-history . 100)
      (command-history . 100)
      (extended-command-history . 100)
      (shell-command-history . 100)
      (search-ring . 20)
      (query-replace-history . 100)
      (regexp-history . 100)
      (grep-history . 100)
      (minibuffer-history . 100)
      tags-file-name
      register-alist)
    desktop-globals-to-save))
  )

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(message "coding system, charset, locale, lang")

;; Emacs 23.1 no longer need codepage-setup.
(when (<= emacs-major-version 22)
  (codepage-setup 866)
  (codepage-setup 1251)
  )

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(message "jdone")

(ignore-errors
  (require 'jdone)
  (jdone-setup-key-binding)
  (jdone-integrate-hook)
  )

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(message "yasnippet")

(setq my-yas-root-directory "~/.emacs.d/my-yas")
(setq yas/ignore-filenames-as-triggers t)

;; (my--eval-after-load yasnippet
;;   (cond
;;    ((listp yas/root-directory) (add-to-list 'yas/root-directory my-yas-root-directory))
;;    ((stringp yas/root-directory) (setq yas/root-directory (list my-yas-root-directory yas/root-directory)))
;;    (t (error "I expect that yas/root-directory is a list of string")) )
;;   (mapc 'yas/load-directory yas/root-directory))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(message "ECB")

(setq ecb-tip-of-the-day nil)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(message "vc-mode, VCS, version control, cvs, svn, mercurial, hg, bazaar, bzr, git, fossil")

(when (equal window-system 'w32)
  (modify-coding-system-alist 'process "cvs" '(cp1251-dos . cp1251-dos))
  (modify-coding-system-alist 'process "svn" '(cp1251 . cp1251))
  (setq vc-svn-checkin-switches '("--encoding" "UTF-8"))
  )

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(message "fortune")
(setq fortune-file "~/XXX")

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(message "bbdb")

(eval-when 'compile (require 'bbdb nil t))

(setq
 bbdb-offer-save 1
 bbdb-use-pop-up t
 bbdb-electric-p t
 bbdb-popup-target-lines  1
 )

(setq bbdb-complete-name-full-completion t)
(setq bbdb-completion-type 'primary-or-name)
(setq bbdb-complete-name-allow-cycling t)

(setq bbdb-file "~/.gnus/bbdb")

;; (bbdb-initialize 'gnus 'message)
;; (bbdb-insinuate-message)
;; (add-hook 'gnus-startup-hook 'bbdb-insinuate-gnus)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(message "rcirc")

(eval-when 'compile (require 'rcirc))

;; Turn on logging everything to a special buffer, for debugging.
;; (setq rcirc-debug-flag t)

(add-hook 'rcirc-mode-hook (lambda () (rcirc-track-minor-mode 1)))
(setq rcirc-time-format "%H:%M ")
(defun rcirc-handler-301 (process cmd sender args)
  "/away message handler.")

(setq rcirc-default-server "irc.freenode.net")
(setq rcirc-default-port 6667)
(setq rcirc-default-nick user-nick)
(setq rcirc-default-user-full-name user-full-name)