# HG changeset patch # User Oleksandr Gavenko # Date 1279970726 -10800 # Node ID 7a06c31e9c099bcba1569d6971d164a0aa2fd739 # Parent dd77820b51c4f2945506a5184f9e103bb68492b1# Parent e64e256d27724c8ab083bc5d42effa8f0d46e6ca merged diff -r e64e256d2772 -r 7a06c31e9c09 .emacs --- a/.emacs Thu Apr 01 22:47:31 2010 +0300 +++ b/.emacs Sat Jul 24 14:25:26 2010 +0300 @@ -19,11 +19,18 @@ (defvar my-autoload (concat my-lisp-dir "/autoload-my.el") "Path to autoload for mode files.") +(defvar dot-emacs-autogen (expand-file-name "~/.emacs-autogen") + "Path to automatically generated config file. It content depend on + installation environment and it was overridden on install.") (defvar dot-emacs-pre (expand-file-name "~/.emacs-pre") "Path to file with pre-loaded custom settings.") (defvar dot-emacs-post (expand-file-name "~/.emacs-post") "Path to file with post-loaded custom settings.") + +(if (file-exists-p dot-emacs-autogen) + (load dot-emacs-autogen)) + ;; pre-load custom settings (if (file-exists-p dot-emacs-pre) (load dot-emacs-pre)) diff -r e64e256d2772 -r 7a06c31e9c09 .emacs-autogen --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.emacs-autogen Sat Jul 24 14:25:26 2010 +0300 @@ -0,0 +1,3 @@ +;; -*- mode: lisp; coding: utf-8; fill-column: 78 -*- +;; +;; For load order see README. diff -r e64e256d2772 -r 7a06c31e9c09 .emacs-autogen.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.emacs-autogen.sh Sat Jul 24 14:25:26 2010 +0300 @@ -0,0 +1,18 @@ +#!/bin/sh + +if [ -z "$1" ]; then + echo "Where config file?" + exit 1 +fi + +cfg=$1 + +if which aspell; then + echo >>$cfg + echo "(setq-default ispell-program-name \"aspell\")" >>$cfg + echo "(setq-default ispell-local-dictionary \"english\")" >>$cfg +elif which ispell; then + echo >>$cfg + echo "(setq-default ispell-program-name \"ispell\")" >>$cfg + echo "(setq-default ispell-local-dictionary \"english\")" >>$cfg +fi diff -r e64e256d2772 -r 7a06c31e9c09 .emacs-my --- a/.emacs-my Thu Apr 01 22:47:31 2010 +0300 +++ b/.emacs-my Sat Jul 24 14:25:26 2010 +0300 @@ -22,15 +22,37 @@ ;; mode groups (defvar my-devel-mode-list - '(sh-mode script-mode java-mode c-mode - lisp-mode makefile-mode makefile-gmake-mode python-mode) + '( + outline-mode + sh-mode script-mode + c-mode c++-mode java-mode + python-mode + lisp-mode + emacs-lisp-mode + makefile-mode makefile-gmake-mode + ) "List of development modes.") (defvar my-devel-mode-hook-list - '(sh-mode-hook script-mode-hook java-mode-hook c-mode-hook - lisp-mode-hook makefile-mode-hook makefile-gmake-mode-hook python-mode-hook) + '(sh-mode-hook script-mode-hook + c-mode-hook c++-mode-hook java-mode-hook + python-mode-hook + makefile-mode-hook makefile-gmake-mode-hook + lisp-mode-hook emacs-lisp-mode-hook) "List of development mode hooks.") +(defvar my-scroll-margin-mode-hook-list + '( + vc-dir-mode-hook + recentf-dialog-mode-hook + org-agenda-grid-mode-hook ; XXX for this item not worked! + log-view-mode-hook + diff-mode-hook + dired-mode-hook + compilation-mode-hook + ) + "List of mode hooks for enabling scroll margin.") + (defvar my-text-mode-list '(outline-mode text-mode) "List of text modes.") @@ -67,8 +89,10 @@ (menu-bar-mode -1) (tool-bar-mode -1) -(when (>= emacs-major-version 22) (tooltip-mode -1)) -(scroll-bar-mode 1) +(when window-system + (when (>= emacs-major-version 22) (tooltip-mode -1)) + (scroll-bar-mode 1) + ) (setq frame-title-format "Emacs - %b") @@ -87,6 +111,7 @@ ;; show column & line numbers in status bar (setq column-number-mode t) (setq line-number-mode t) +(setq size-indication-mode t) ;; Also useful such format: (setq display-time-format " %H:%M %d-%m-%y ") (setq display-time-24hr-format t) @@ -139,12 +164,12 @@ ;; (require 'gnuserv) ;; (setq gnuserv-frame (selected-frame)) -(require 'server) -(when (and (= emacs-major-version 23) (= emacs-minor-version 1) (equal window-system 'w32)) - (defun server-ensure-safe-dir (dir) "Noop" t)) ; Suppress error directory ~/.emacs.d/server is unsafe on windows. - (when (>= emacs-major-version 22) - (server-start)) + (require 'server) + (when (and (= emacs-major-version 23) (>= emacs-minor-version 1) (<= emacs-minor-version 2) (equal window-system 'w32)) + (defun server-ensure-safe-dir (dir) "Noop" t)) ; Suppress error directory ~/.emacs.d/server is unsafe on windows. + (server-start) + ) ;; (desktop-load-default) ;; (desktop-read) @@ -158,6 +183,9 @@ ;; Try to speed things up, especially in VM. (setq gc-cons-threshold 2000000) +;; Default 'command-history' length too short (in Emacs 23.2 is 30). +(setq history-length 200) + ;; Don't beep in my headphones! (setq ring-bell-function '(lambda () "Empty ring-bell-function." nil)) (setq visible-bell t) ; With default ring-bell-function in text terminal @@ -201,7 +229,6 @@ "^\*Help\*" "^\*Quail Completions\*" "^\*Disabled Command\*" - "^\*vc\*" )) (require 'uniquify) @@ -225,11 +252,10 @@ (make-variable-buffer-local 'scroll-margin) (mapc (lambda (hook) (add-hook hook (lambda nil (setq scroll-margin my-scroll-margin)))) ;; TODO its good invoke delete-dups for list, but delete-dups not exist in Emacs 21.4 - (append my-text-mode-hook-list my-devel-mode-hook-list - '(recentf-mode-hook)) ) + (append my-text-mode-hook-list my-devel-mode-hook-list my-scroll-margin-mode-hook-list) ) ;; ---------------------------------------------------------------------- -;; searching. +;; search, isearch, occur. (setq case-fold-search t) @@ -237,10 +263,6 @@ (setq search-highlight t) ; highlight incremental search ;; ---------------------------------------------------------------------- -;; *Occur* -(global-set-key [f7] 'occur) ; Key binding as in mc - -;; ---------------------------------------------------------------------- ;; grep, find. ;; Assume that we have GNU grep, so -H available. @@ -253,6 +275,8 @@ ;; Do not set t because some grep do not has --color options. (setq grep-highlight-matches nil) (setq grep-use-null-device nil) +;; For find-dired. +;; (setq find-ls-option '("-exec ls -ld {} \\;" . "-ld")) (global-set-key [M-f7] 'rgrep) @@ -260,7 +284,7 @@ ;; syntax highlighting. (setq font-lock-maximum-decoration t) -(global-font-lock-mode 1 t) +(global-font-lock-mode 1) ;; ---------------------------------------------------------------------- ;; highlight selected text. @@ -299,18 +323,19 @@ ;; ====================================================================== ;; keyboard, mouse. -;; cyrillic-jcuken for 567 is :,. -;; russian-computer for 567 is %^& -(setq default-input-method 'cyrillic-jcuken) - +;; cyrillic-jis-russian for 567 is :,. +;; cyrillic-jcuken for SHIFT 567 is :,. +;; russian-computer for SHIFT 567 is %^& +(if (>= emacs-major-version 22) + (setq default-input-method 'russian-computer) + (setq default-input-method 'cyrillic-jcuken)) ;; (pc-bindings-mode) ; Myself define keybinding, see ;; ---------------------------------------------------------------------- -;; completition. +;; completion. -;; partial-completion-mode cause bug in read-file-name with Emacs v22.3.1 (but not with v23.1). -;; read-file-name used in rgrep, so I disable partial-completion-mode. -(partial-completion-mode -1) ; For example, M-x p-c-m expands to M-x partial-completion-mode +;; I remove partial-completion-mode because it depricated in Emacs 24.0. +;; Completion controled by 'completion-styles' variable. ;; ---------------------------------------------------------------------- ;; mouse. @@ -449,7 +474,7 @@ ;; Its take time and ask passwords! (setq recentf-auto-cleanup 'never) (recentf-mode t) -(setq recentf-max-saved-items 200) +(setq recentf-max-saved-items 1000) (global-set-key (kbd "\e\eq") 'recentf-open-files) ;; ---------------------------------------------------------------------- @@ -631,41 +656,33 @@ commands. If nil, 'sh' will be used." ) (when (eq window-system 'w32) ; may require Cygwin or MSYS - (setenv "ESHELL" "bash") (if my-use-windows-shell - ;; Restore shell name if user set SHELL env var for Cygwin/MSYS. - (setq shell-file-name (concat exec-directory "cmdproxy.exe")) - ;; Use shell from Cygwin/MinGW. - (setq shell-file-name "sh") + (progn + ;; Restore shell name if user set SHELL env var for Cygwin/MSYS. + (setq shell-file-name (concat exec-directory "cmdproxy.exe")) + ;; Here is workaround: when explicit-shell-file-name is "bash" and shell-file-name is "cmdproxy.exe" + ;; find-dired incorrect quote args (in shell-quote-argument (w32-shell-name) return "bash", but + ;; shell-command used shell-file-name which value "cmdproxy.exe"). So I put additional space in pattern to + ;; prevent quoting. + (setq find-ls-option '("-exec ls -ld {} ;" . "-ld")) + ) + (progn + ;; Use shell from Cygwin/MinGW. + (setq shell-file-name "bash") + ) ) ;; (setq explicit-shell-file-name "bash") (setq explicit-bash-args '("-i")) (setq explicit-sh-args '("-i")) - ;; Here is workaround: when explicit-shell-file-name is "bash" and shell-file-name is "cmdproxy.exe" - ;; find-dired incorrect quote args (in shell-quote-argument (w32-shell-name) return "bash", but - ;; shell-command used shell-file-name which value "cmdproxy.exe"). So I put additional space in pattern to - ;; prevent quoting. - (setq find-ls-option '("-exec ls -ld {} ;" . "-ld")) ) ;; ====================================================================== -;; spell, ispall, aspell. +;; spell, ispell, aspell. -(setq ispell-program-name "ispell") -;(setq ispell-dictionary "russianw"); default dictionary -;(setq ispell-local-dictionary "russianw"); default dictionary +;; Settings for spelling done in '.emacs-autogen'. ;(add-hook 'text-mode-hook 'flyspell-mode) ;(setq flyspell-default-dictionary "russianw") ;(setq flyspell-delay '1) -;; (setq ispell-local-dictionary-alist -;; '((nil ; default (english.aff) -;; "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil iso-8859-1) -;; ("UK-xlg" ; english large version -;; "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B" "-d" "UK-xlg") nil iso-8859-1) -;; ("US-xlg" ; american large version -;; "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B" "-d" "US-xlg") nil iso-8859-1) -;; ) -;; ) ;; ====================================================================== ;; GTD, PIM, organize, todo mode. @@ -685,7 +702,7 @@ (add-to-list 'auto-mode-alist '("\\.org$" . org-mode)) (setq org-directory (expand-file-name "~/.gtd")) (setq org-default-notes-file (expand-file-name "~/.gtd/notes")) - (setq org-agenda-ndays 14 + (setq org-agenda-ndays 31 org-deadline-warning-days 7 org-agenda-show-all-dates t org-agenda-format-date "%Y-%m-%d, %A %e %B" @@ -702,7 +719,7 @@ ;; ---------------------------------------------------------------------- ;; remember-mode. -(if (featurep 'remember) +(if (or (featurep 'remember) (fboundp 'remember)) (progn (setq remember-annotation-functions '(org-remember-annotation)) (setq remember-handler-functions '(org-remember-handler)) @@ -796,6 +813,12 @@ ;; ---------------------------------------------------------------------- ;; erc. +;; Take off noise message. +(setq erc-track-exclude-types '("JOIN" "PART" "QUIT" "NICK" "MODE")) + +(setq erc-current-nick-highlight-type 'nick-or-keyword) +(setq erc-track-use-faces t) + (setq erc-server-coding-system 'utf-8) ;; ====================================================================== @@ -804,7 +827,8 @@ (if (equal window-system 'w32) (progn (modify-coding-system-alist 'process "cvs" '(cp1251-dos . cp1251-dos)) - (modify-coding-system-alist 'process "svn" '(cp866-dos . cp1251-dos)) + (modify-coding-system-alist 'process "svn" '(cp1251 . cp1251)) + (setq vc-svn-checkin-switches '("--encoding" "utf-8")) )) ;; (setq-default vc-svn-register-switches "--encoding cp1251") diff -r e64e256d2772 -r 7a06c31e9c09 .emacs-pre --- a/.emacs-pre Thu Apr 01 22:47:31 2010 +0300 +++ b/.emacs-pre Sat Jul 24 14:25:26 2010 +0300 @@ -1,7 +1,3 @@ ;; -*- mode: lisp; coding: utf-8; fill-column: 78 -*- ;; ;; For load order see README. - -;; Set frame width and heith. 150x46 for 13pt 1280x800, 150x60 for 13pt 1280x1024. -;; (setq my-frame-width 150) -;; (setq my-frame-height 60) diff -r e64e256d2772 -r 7a06c31e9c09 INSTALL --- a/INSTALL Thu Apr 01 22:47:31 2010 +0300 +++ b/INSTALL Sat Jul 24 14:25:26 2010 +0300 @@ -31,12 +31,14 @@ ** Setup INFOPATH. -To browse info file inside Emacs set INFOPATH like this: +To browse info file inside Emacs set INFOPATH like this for Cygwin: + + INFOPATH=e:/opt/cygwin/usr/share/info;e:/home/usr/share/info;e:/bin/gnuwin32/info;e:/bin/gnuwin32/share/info: + +and like this for MinGW: INFOPATH=e:/bin/gnutls/share/info;e:/bin/gnuwin32/info;e:/bin/gnuwin32/share/info;e:/bin/MinGW/info;e:/bin/MinGW/share/info;e:/bin/wget/info: -for MinGW. - Note that last colon symbol is essential for include also Emacs info to list. * GTD (org-mode). diff -r e64e256d2772 -r 7a06c31e9c09 Makefile --- a/Makefile Thu Apr 01 22:47:31 2010 +0300 +++ b/Makefile Sat Jul 24 14:25:26 2010 +0300 @@ -6,6 +6,18 @@ $(error Home env var not set!) endif +host_os = unix +ifneq '' '$(COMSPEC)' + host_os = windows +endif + +# Special case for Windows if emacs-nox from Cygwin installed along with native Emacs. +# So we run native Emacs to compile sources. +EMACS = emacs +ifeq 'windows' '$(host_os)' + EMACS = runemacs +endif + FILES_MODE_EL := $(wildcard *-mode.el) .PHONY: all @@ -22,13 +34,15 @@ if [ ! -f $(HOME)/$$file ]; then cp $$file $(HOME)/$$file; fi; \ done cp .emacs $(HOME)/.emacs + cp .emacs-autogen $(HOME)/.emacs-autogen + sh .emacs-autogen.sh $(HOME)/.emacs-autogen cp .emacs-my $(HOME)/.emacs-my rm -f -r $(HOME)/.emacs.d/my-lisp mkdir -p $(HOME)/.emacs.d/my-lisp for file in $(FILES_MODE_EL); do \ cp -f $$file $(HOME)/.emacs.d/my-lisp; \ done - emacs --batch \ + $(EMACS) --batch \ --eval='(let ( (generated-autoload-file "~/.emacs.d/my-lisp/autoload-my.el") ) (update-directory-autoloads "~/.emacs.d/my-lisp") )' .PHONY: uninstall diff -r e64e256d2772 -r 7a06c31e9c09 README --- a/README Thu Apr 01 22:47:31 2010 +0300 +++ b/README Sat Jul 24 14:25:26 2010 +0300 @@ -9,6 +9,9 @@ Main Emacs config file is '~/.emacs'. I decide don't store beside it all customisations. Instead it simply load files in such order: + '~/.emacs-autogen' + It content depend on installation environment. Automatically + generated. '~/.emacs-pre' For manually written customisation (usually for updating load-path) which can affect on '.emacs-my'. Will not be