1 ; -*- mode: Emacs-Lisp; coding: utf-8; unibyte: t; -*-
2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3 ;; my dot_Emacs , is important ... remember to backup it !
4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6 (setq user-full-name "Marco <Bj> Bardelli")
9 (unless (bound-and-true-p user-emacs-directory)
10 (setq user-emacs-directory "~/.emacs.d/"))
12 (defun reload-dot-emacs() "" (interactive)
13 (eval-buffer (find-file-noselect user-init-file))) ;;"~/.emacs"
15 (defun reload-faces-customization () "" (interactive)
17 (set-buffer (find-file-noselect user-init-file))
18 (goto-char (string-match "(message \"Custom faces ...done\.\")" (buffer-string)))
19 (eval (preceding-sexp))))
21 (defun reload-variables-customization () "" (interactive)
23 (set-buffer (find-file-noselect user-init-file))
24 (goto-char (string-match "(message \"Custom vars ...done\.\")" (buffer-string)))
25 (eval (preceding-sexp))))
27 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
28 ;; Macro for a starter of service or job.
29 (defmacro define-async-job-or-service-w/o-args (name)
30 "Define a command to start `name' program in a async process."
31 `(defun ,name () (format "Start %s ." (symbol-name (quote ,name)))(interactive)
32 ;; (unless (not (get-process (symbol-name (quote ,name))))
33 ;; (error (format "%s yet started\n" (symbol-name (quote ,name)))))
35 (let ((pname (symbol-name (quote ,name)))
36 (cmd (symbol-name (quote ,name)))
38 (while (get-process pname)
39 (setq i (1+ i)) (setq pname (format "%s<%d>" cmd i)))
40 (setq outbuf (get-buffer-create (format "*%s*" pname)))
41 ;; (with-current-buffer outbuf
42 ;; (add-hook 'kill-buffer-hook
44 ;; (y-or-n-p (format "Kill %s" (buffer-name (current-buffer)))))
47 (start-process pname outbuf cmd)
48 (lambda (p e)(princ (format "The proc: %s said ... %s\n" p e)))))))
50 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
51 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
52 \f;; Paths for loading
56 (defun require-entire-dir (dir) "load subdirs.el in dir"
58 (expand-file-name (concat dir "/subdirs.el"))))
59 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
61 (defun add-path-in-dir-for-lisp (dir &optional force append) ""
64 (concat (expand-file-name dir) "/subdirs.el")))
65 (require-entire-dir dir)
69 (add-to-list 'load-path path append))
71 (shell-command-to-string
72 (concat "find " (expand-file-name dir) "/* -type d -maxdepth 0"))))))
75 ;;;; load-path (require 'bbdb) (print-list-of-strings load-path)
76 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
78 ;(setq load-path nil) ;; /etc/{emacs,flavor}/ ???
79 (add-to-list 'load-path (expand-file-name user-emacs-directory))
80 ;;(add-to-list 'load-path (expand-file-name "~/.emacs.d/elisp"))
82 (add-path-in-dir-for-lisp "/gnu/share/emacs/site-lisp" t t)
83 ;(add-path-in-dir-for-lisp (concat "/usr/share/emacs/" "23.0.60" "/lisp") t)
85 (add-path-in-dir-for-lisp "/usr/share/emacs/site-lisp" t t)
86 ;(add-path-in-dir-for-lisp "/usr/local/share/emacs/site-lisp" t t)
87 ; (setq load-path nil)
88 ;; Planner conflicts with timeclock ... ugly solution.
89 ;(setq load-path (remove "/usr/share/emacs/site-lisp/planner-el/contrib" load-path))
90 ;; (add-path-in-dir-for-lisp "/gnu/src/onVersion/Emacs/emacs--from-CVS/site-lisp" t)
93 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
94 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
95 ;;; This was installed by package-install.el.
96 ;;; This provides support for the package system and
97 ;;; interfacing with ELPA, the package archive.
98 ;;; Move this code earlier if you want to reference
99 ;;; packages in your .emacs.
102 (expand-file-name "~/.emacs.d/elpa/package.el"))
103 (package-initialize))
106 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
107 ;;;;;; For Emacs Speak .
108 ;(load-file "/usr/share/emacs/site-lisp/emacspeak/lisp/emacspeak-setup.el")
109 ;(voice-lock-mode nil)
112 ;;;; To group my customization.
116 (message "define My prefix-command `C-c x' ... ")
117 (define-prefix-command 'my-prefix-map) ; my-prefix-map
119 ;; load cedet for other requirements ...
122 (concat user-emacs-directory "my-cedet.el")) t)
126 ;;(require 'string nil t) ;; From elib package
127 (require 'emacs-goodies-el nil t)
128 (require 'xtla-autoloads nil t)
131 (require 'psvn nil t)
132 (require 'edebug nil t)
133 (require 'epa-setup nil t)
134 (require 'wdired nil t)
135 (require 'dired-x nil t)
136 (require 'records nil t)
138 ;;(require 'select-xface nil t)
139 (require 'chess nil t)
140 (require 'page-ext nil t)
141 (require 'folding nil t)
142 (require 'etags-select nil t)
143 (require 'windmove nil t)
144 (require 'ratpoison-cmd nil t)
145 (require 'info-look nil t)
149 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
150 \f;; Various utils Not-dependent on my lisp libs (in (@file :file-name "my-elib.el" :to "my-elib.el" :display "elib")`my-elib.el' ???
152 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
154 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
155 ;; (defun basename (file) "FIX"
156 ;; (car (last (split-string file "/"))))
157 (defun basename (name) "?"
158 (unless name (return nil))
159 (let ((path (expand-file-name name)))
160 (substring path (+ 1 (string-match "/[^/]*$" path)))))
162 (defun dirname (name) "?"
163 (let ((path (expand-file-name name)))
164 (substring path 0 (string-match "/[^/]*$" path))))
166 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
167 (defun messasge-list-of-strings (strings) ""
168 (if (not (sequencep strings))
169 (error "The arg is not a sequence, it is a %s" (type-of strings))
170 (let ((l strings) ret elt)
173 ( (numberp (car l)) (setq elt (number-to-string (car l))) )
174 ( (symbolp (car l)) (setq elt (symbol-name (car l))) )
175 ( (stringp (car l)) (setq elt (car l)) ))
177 (if (not ret) (setq ret elt)
178 (setq ret (concat ret "\n" elt))))
179 (message "%s" ret))))
181 ;; (print-list-of-strings '("ciao" "a" "te" 4 (symbolp 'ciaa) 5))
182 ;; (princ-list '("ciao" "a" "te" 4 5 'cia))
183 ;; (setq ret (concat ret "\n" elt))
187 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
188 (defun cycleframe-forward () "" (interactive)
191 (defun cycleframe-backward () "" (interactive)
194 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
195 (defun save-and-compile ()
196 "Save current buffer and make."
198 (save-some-buffers 0)
201 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
202 ;===============================================================
204 (defun indent-or-complete ()
205 "Complete if point is at end of a word, otherwise indent line."
207 (if (looking-at "\\>")
209 (indent-for-tab-command)
212 ;==============================================================================
214 (defun backward-buffer () (interactive)
215 "Switch to previously selected buffer."
216 (let* ((list (cdr (buffer-list)))
218 (while (and (cdr list) (string-match "\\*" (buffer-name buffer)))
220 (setq list (cdr list))
221 (setq buffer (car list))))
223 (switch-to-buffer buffer)))
225 (defun forward-buffer () (interactive)
226 "Opposite of backward-buffer."
227 (let* ((list (reverse (buffer-list)))
229 (while (and (cdr list) (string-match "\\*" (buffer-name buffer)))
231 (setq list (cdr list))
232 (setq buffer (car list))))
233 (switch-to-buffer buffer)))
235 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
236 ;; I hate have to do 'C-x k RET C-x 0' ... 'C-c x k' is most short
237 ;; (defun kill-window () "" (interactive)
238 ;; (progn (kill-buffer (current-buffer)) (delete-window)))
239 ;; ... exist kill-buffer-and-window
240 (defun bury-window () "" (interactive)
241 (progn (bury-buffer (current-buffer)) (delete-window)))
243 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
244 (defun googling () "" (interactive)
245 (browse-url "http://google.com/ig")
247 ;; (browse-url "http://code.google.com/")
248 ;; (browse-url "http://gmail.com/it")
249 ;; (browse-url "http://google.it/reader/view"))
251 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
252 ;; ;.. for `targets' in Makefile (^[A-Za-z_.-]*:)
253 ;; ... exist semantic by CEDET
254 (defun list-all-targets-with-grep (&optional makefile no-print)
256 (interactive "f(Make)File ? : ")
260 (lambda (target-line)
261 (add-to-list 'ret (caddr (split-string target-line ":" t))))
263 (shell-command-to-string
264 (concat "grep -nH -e '^[A-Za-z_.-]*:' " "GNUmakefile")) "\n" t))
267 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
269 (defcustom dired-x-omit-regex-list '() "List of Regexps"
271 :type '(repeat string))
272 (defvar dired-x-omit-dot-mode t "Omit dot files in dired if t.")
273 (defun dired-x-set-omit-dot (&optional val)
274 "dired hide/show dot files toggle. Return the dired-omit-files string."
276 (let ((old (split-string dired-omit-files "\\\\|" t)) result)
277 (setq dired-x-omit-regex-list old)
278 (cond ((not val) (setq dired-x-omit-dot-mode
279 (not dired-x-omit-dot-mode)))
280 ((= 0 val) (setq dired-x-omit-dot-mode nil))
281 ((= 1 val) (setq dired-x-omit-dot-mode t))
282 (t (setq dired-x-omit-dot-mode nil)))
283 (if dired-x-omit-dot-mode
284 (add-to-list 'dired-x-omit-regex-list "^\\..*$")
285 (setq dired-x-omit-regex-list (delete "^\\..*$" dired-x-omit-regex-list)))
288 (setq result (concat result "\\|" elt)))
289 dired-x-omit-regex-list)
290 (if (equal (substring result 0 2) "\\|")
291 (setq result (substring result 2)))
292 (setq dired-omit-files result)))
294 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
295 ;; (defun load-w3m-browser-in-emacs()""(interactive)(require 'w3m-load))
297 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
298 (defun view-file-at-point () "View File at Point." (interactive)
299 (view-file (ffap-prompter (ffap-file-at-point))))
301 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
303 (defun shell-command-in-console (&optional cmd) "" (interactive)
305 (setq cmd (shell-command-read-minibuffer "$ " (substring(pwd)(length "Directory ")))))
306 (if (not (string-match "&" cmd)) (concat cmd " &"))
307 (shell-command cmd (concat "*Console Command: " cmd " *")))
309 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
311 (message "require My ... ")
315 (require 'mail-and-gnus)
316 (require 'making-project)
317 (require 'my-pages) ;; in ~/Pages ... diary etc ...
321 (require 'my-browse-url)
324 ;(require 'my-e21-site-lisp)
325 ;(my-require-doremi-pkg)
331 \f;; Define some aliases so can find toggle commands easily.
333 (defalias 'toggle-abbrev-mode 'abbrev-mode)
334 (defalias 'toggle-auto-fill-mode 'auto-fill-mode)
335 (defalias 'toggle-auto-lower-mode 'auto-lower-mode)
336 (defalias 'toggle-auto-raise-mode 'auto-raise-mode)
337 (defalias 'toggle-auto-save-mode 'auto-save-mode)
338 (defalias 'toggle-binary-overwrite-mode 'binary-overwrite-mode)
339 (defun toggle-autofit-frames ()"..."(interactive)
340 (and (boundp 'autofit-frames-flag)(setq autofit-frames-flag (not autofit-frames-flag))))
342 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
343 \f;; {Auto,*} Mode List
344 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
345 (add-to-list 'auto-mode-alist '("\\.gsmarkup$" . xml-mode))
346 (add-to-list 'auto-mode-alist '("\\.make$" . makefile-gmake-mode))
347 (add-to-list 'auto-mode-alist '("Makefile\\.?.*$" . makefile-gmake-mode))
348 (add-to-list 'auto-mode-alist '("rules\\.?.*$" . makefile-gmake-mode))
349 (add-to-list 'auto-mode-alist '(".*\\.emacs\\.d.*\\.notes\\.?.*$" . muse-mode))
350 (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
352 (add-to-list 'interpreter-mode-alist '("perl" . cperl-mode))
353 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
355 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
358 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
361 ;(setq ibuffer-mode-hook nil)
362 ;; (defun ibuffer-collapse-filter-groups (&optional first) "" (interactive)
363 ;; (if (and first (= first (point))) (message "Finished.")
365 ;; (unless (get-buffer "*Ibuffer*")
367 ;; (unless (string= "*Ibuffer*" (buffer-name))
368 ;; (set-buffer (get-buffer "*Ibuffer*")))
369 ;; (message "buffer: %s at %d" (buffer-name) (point))
370 ;; (unless (get-text-property (point) 'ibuffer-filter-group-name)
371 ;; (ibuffer-forward-filter-group))
372 ;; (unless first (setq first (point)))
373 ;; (setq name (get-text-property (point) 'ibuffer-filter-group-name))
374 ;; (message "group: %s at %d" name (point))
375 ;; (unless (member name ibuffer-hidden-filter-groups)
376 ;; (ibuffer-toggle-filter-group-1 (point)))
377 ;; (ibuffer-forward-filter-group)
378 ;; (ibuffer-collapse-filter-groups first))))
381 ;; 'ibuffer-mode-hook
382 ;; '(lambda() (ibuffer-collapse-filter-groups)))
385 ;; 'ibuffer-mode-hook
387 ;; (ibuffer-switch-to-saved-filter-groups "ib_view")))
391 (add-hook 'c-mode-common-hook
393 (local-set-key (kbd "<tab>") 'indent-or-complete))))
396 (add-hook 'perl-mode-hook ;;'c-mode-common-hook
397 (lambda () (local-set-key "\C-cc" 'save-and-compile)))
400 (add-hook 'c-mode-common-hook
401 (lambda () (hs-minor-mode 1)))
403 (add-hook 'hs-minor-mode-hook
404 (lambda () (local-set-key "\C-cs" 'hs-show-block)))
405 (add-hook 'hs-minor-mode-hook
406 (lambda () (local-set-key "\C-ch" 'hs-hide-block)))
407 (add-hook 'hs-minor-mode-hook
408 (lambda () (local-set-key "\C-cS" 'hs-show-all)))
409 (add-hook 'hs-minor-mode-hook
410 (lambda () (local-set-key "\C-cH" 'hs-hide-all)))
412 ; indent on ENTER ;; c-mode-common-hook
413 ;; (remove-hook 'c-mode-common-hook
414 ;; (lambda () (local-set-key "\C-m" 'newline-and-indent)))
416 (add-hook 'c-mode-common-hook 'turn-on-auto-fill)
417 (add-hook 'text-mode-hook 'turn-on-auto-fill)
418 ;; (remove-hook ' c-mode-common-hook
419 ;; '(lambda () (c-toggle-auto-state 0)))
420 (add-hook 'java-mode-hook
421 '(lambda () (c-set-style "gnu")))
423 (unless (fboundp 'cxref-c-mode-common-hook)
424 (remove-hook 'c-mode-common-hook 'cxref-c-mode-common-hook))
427 (add-hook 'objc-mode-hook 'c-subword-mode)
429 ;;; clean dired-mode-hook -xtensioni
433 (setq dired-omit-files (dired-x-set-omit-dot 1))
434 (dired-omit-mode 1)))
437 ;(setq ibuffer-load-hook nil)
438 ;(cdr (assoc "my_view_with_mode" ibuffer-saved-filter-groups)) ibuffer-filter-groups
441 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
443 ;; (eval-after-load "ratpoison-cmd"
445 ;; (defun rat-prev () "" (interactive)(ratpoison-prev))
446 ;; (defun rat-next () "" (interactive)(ratpoison-next))
447 ;; ; (setq speedbar-before-popup-hook nil speedbar-before-delete-hook nil)
448 ;; (defvar ratfdump-splitted "(frame :number 0 :x 0 :y 0 :width 802 :height 768 :screenw 1024 :screenh 768 :window 6291559 :last-access 20 :dedicated 0),(frame :number 1 :x 802 :y 0 :width 222 :height 768 :screenw 1024 :screenh 768 :window 6293946 :last-access 0 :dedicated 0)," "")
449 ;; (defvar ratfdump-one "(frame :number 0 :x 0 :y 0 :width 1024 :height 768 :screenw 1024 :screenh 768 :window 6291559 :last-access 20 :dedicated 0)," "")
450 ;; (add-hook 'speedbar-before-popup-hook
452 ;; (ratpoison-cmd 'frestore ratfdump-splitted)
453 ;; (ratpoison-cmd 'fselect 1)))
454 ;; (add-hook 'speedbar-before-delete-hook
456 ;; (ratpoison-cmd 'fselect 1)
457 ;; (ratpoison-cmd 'frestore ratfdump-one)))
458 ;; (add-hook 'speedbar-before-visiting-file-hook
460 ;; (ratpoison-cmd 'fselect 0)))
461 ;; (add-hook 'speedbar-before-visiting-tag-hook
463 ;; (ratpoison-cmd 'fselect 0)))
467 ;; (remove-hook 'speedbar-before-popup-hook
469 ;; (ratpoison-cmd 'frestore ratfdump-splitted)
470 ;; (ratpoison-cmd 'fselect 1)))
471 ;; (remove-hook 'speedbar-before-delete-hook
473 ;; (ratpoison-cmd 'fselect 1)
474 ;; (ratpoison-cmd 'frestore ratfdump-one)))
475 ;; (remove-hook 'speedbar-before-visiting-file-hook
477 ;; (ratpoison-cmd 'fselect 0)))
478 ;; (remove-hook 'speedbar-before-visiting-tag-hook
480 ;; (ratpoison-cmd 'fselect 0)))
481 ;; "speedbar-hook is clean")
484 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
485 ; make all yes/no prompts y/n instead
486 (fset 'yes-or-no-p 'y-or-n-p)
487 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
488 \f;; Global Key Bindings
490 (message "Set Global Bindings ... ")
491 (global-set-key "\C-cx" 'my-prefix-map)
495 (define-key my-prefix-map "f" 'find-file-at-point)
496 (define-key my-prefix-map "v" 'view-file-at-point)
497 (define-key my-prefix-map "b" 'browse-url-at-point)
498 (define-key my-prefix-map "a" 'find-alternate-file)
499 (define-key my-prefix-map "hi" 'infobook-goto-node)
500 (define-key my-prefix-map "-" 'normal-mode)
501 (define-key my-prefix-map "k" 'kill-buffer-and-window)
502 (define-key my-prefix-map "K" 'bury-window)
503 (define-key my-prefix-map "d" 'find-dired)
504 (define-key my-prefix-map "c" 'comment-region)
505 (define-key my-prefix-map "C" 'calendar)
506 (define-key my-prefix-map "\C-q" 'view-mode)
507 (define-key my-prefix-map "Z" 'make-frame)
508 (define-key my-prefix-map "z" 'delete-frame) ;; Zack frame
509 (define-key my-prefix-map "t" 'shell)
510 (define-key my-prefix-map "T" 'toggle-truncate-lines)
511 (define-key my-prefix-map "P" 'proced)
512 (define-key my-prefix-map "E" 'eval-buffer)
513 (define-key my-prefix-map "W" 'woman)
514 (define-key my-prefix-map "R" 'rmail-other-frame)
518 (define-prefix-command 'my-modes-prefix)
519 (define-key my-prefix-map "M" 'my-modes-prefix)
520 (define-key my-modes-prefix "d" 'develock-mode)
521 (define-key my-modes-prefix "@" 'icy-mode)
522 (define-key my-modes-prefix "l" 'linkd-mode)
525 (defcustom minimal-height-for-window 4 "...")
526 (defun minimize-window ()""(enlarge-window (- minimal-height-for-window (window-height))))
527 (defun other-window-minimizing ()""(interactive) (minimize-window)(other-window 1))
528 (global-set-key [?\C->] 'other-window)
529 (global-set-key [?\C-<] 'other-window-minimizing)
532 ;(global-set-key (kbd "M-f") 'forward-sentence)
533 ;(global-set-key (kbd "M-b") 'backward-sexp)
535 (global-set-key "\C-cm" 'compile)
536 (global-set-key "\C-xK" 'bury-buffer)
537 (global-set-key "\M-_" 'hippie-expand)
538 (global-set-key "\C-x\C-b" 'ibuffer)
540 (global-set-key [f1] 'delete-other-windows)
541 (global-set-key [f11] 'delete-window)
542 (global-set-key [S-f1] 'menu-bar-mode)
543 (global-set-key [f2] 'show/switch-other-window)
544 (global-set-key [S-f2] 'show/hide-messages)
545 (defun get-scratch ()""(interactive)(switch-to-buffer "*scratch*"))
546 (global-set-key [S-f3] 'get-scratch)
547 (global-set-key [S-f6] 'speedbar)
548 (global-set-key [f5] 'rmail-or-rmime)
549 (global-set-key [f6] 'toggle-ecb)
550 (global-set-key [C-f6] 'ecb-deactivate)
551 (global-set-key [f7] 'ecb-toggle-layout)
552 (global-set-key (kbd "C-<f7>") 'font-resizing-mode)
553 (global-set-key (kbd "C-<f8>") 'frame-positioning-mode)
554 (global-set-key (kbd "C-<f9>") 'frame-resizing-mode)
555 (global-set-key (kbd "C-<f10>") 'un/maximize-frame)
556 (global-set-key (kbd "M-S-<f10>") 'set-unmaximized-frame-sizes)
558 (global-set-key (kbd "C-!") 'shell-command-in-console)
560 (global-set-key "\C-x\C-v" 'view-file)
561 (global-set-key "\C-x4v" 'view-file-other-window)
562 (global-set-key "\C-x5v" 'view-file-other-frame)
563 (global-set-key [?\C-x C-up] 'cycleframe-forward)
564 (global-set-key [?\C-x C-down] 'cycleframe-backward)
565 (global-set-key "\C-c@h" 'folding-mode)
566 (global-set-key "\C-ct" 'term)
567 ;(global-set-key "\M-n" 'forward-paragraph)
568 ;(global-set-key "\M-p" 'backward-paragraph)
570 (global-set-key (kbd "C-<tab>") 'ebs-switch-buffer)
571 ;;;;;(global-set-key "\C-h\C-j" 'gtk-lookup-symbol)
576 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
578 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
580 (define-async-job-or-service-w/o-args podwebserver)
581 (define-async-job-or-service-w/o-args dwww)
582 (define-async-job-or-service-w/o-args amule)
583 ;(define-async-job-or-service-w/o-args metacity)
584 (define-async-job-or-service-w/o-args vlc)
585 (define-async-job-or-service-w/o-args totem-gstreamer)
586 (define-async-job-or-service-w/o-args pidgin)
587 (define-async-job-or-service-w/o-args xterm)
589 ;;;; Various settings
590 (setq bookmark-default-file (concat user-emacs-directory "emacs.bmk"))
591 (setq desktop-base-file-name "emacs.desktop")
592 (setq desktop-dirname user-emacs-directory)
593 (setq desktop-save 'ask-if-exists)
595 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
596 ;;;; Various Temporary Utils
597 (defun fix-dired-hook () "" (interactive)
598 ; (setq dired-mode-hook nil)
599 (unless (or (fboundp 'dired-extra-startup)
600 (not (member 'dired-extra-startup dired-mode-hook)))
601 (remove-hook 'dired-mode-hook 'dired-extra-startup))
602 (unless (or (fboundp 'ffap-inhibit-ffap-here)
603 (not (member 'dired-extra-startup dired-mode-hook)))
604 (remove-hook 'dired-mode-hook 'ffap-inhibit-ffap-here))
605 (unless (or (fboundp 'tramp-minor-mode)
606 (not (member 'tramp-minor-mode dired-mode-hook)))
607 (remove-hook 'dired-mode-hook 'tramp-minor-mode))
608 (add-hook 'dired-mode-hook 'revert-buffer)
609 ;; dired-details+ in maximun-decoration exceed ...
610 (remove-hook 'dired-mode-hook
612 (if (and (boundp (quote font-lock-maximum-decoration))
613 font-lock-maximum-decoration)
614 (set (make-local-variable (quote font-lock-defaults))
615 (quote (diredp-font-lock-keywords-1 t)))))))
617 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
618 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
622 ;; jabber-username "safanaj"
623 ;; jabber-server "jabber.org"
624 ;; jabber-network-server nil ;"talk.google.com"
626 ;; jabber-connection-type 'starttls
627 ;; jabber-password "sanajana" ;; password secret
628 ;; jabber-nickname "SaFanaj"
629 ;; jabber-resource "Book")
632 ;;{{{ Test Exec as Compile
634 (defcustom test-exec-command "./obj" "...")
636 (defun test-exec (command)
640 (let ((command (eval test-exec-command)))
641 ;; (if (or compilation-read-command current-prefix-arg)
642 (read-from-minibuffer "Exec command: "
644 ;; (if (equal (car test-exec-history) command)
645 ;; '(test-exec-history . 1)
646 ;; 'test-exec-history))
649 (consp current-prefix-arg)))
650 (unless (equal command (eval test-exec-command))
651 (setq test-exec-command command))
652 ;; (save-some-buffers (not compilation-ask-about-save) nil)
653 ;; (setq compilation-directory default-directory)
654 ;; (compilation-start command comint))
657 (global-set-key "\C-ce" 'test-exec)
660 ;;{{{ xtla stuff (DVC, tla & Co.)
661 (require 'xtla nil t)
664 (defun tla--generic-file-unprefix (files)
665 "Rename FILES with adding prefix FIX control.
666 Visited buffer associations also updated."
669 (let* ((buf (find-buffer-visiting from))
671 (file-name-directory from)
672 (substring (file-name-nondirectory from)2))))
673 (rename-file from to)
675 (with-current-buffer buf
677 (set-visited-file-name to)))))
679 (tla-generic-refresh))
681 (defun tla--generic-file-move (files dir)
682 "Rename FILES with adding prefix FIX control.
683 Visited buffer associations also updated."
685 (let* ((from (pop files))
686 (buf (find-buffer-visiting from))
691 (file-name-directory dir)))
693 (file-name-nondirectory from))))
694 (tla-mv from to 'ask)
696 (with-current-buffer buf
698 (set-visited-file-name to))))
699 (tla-generic-refresh)))
701 (defun tla-inventory-move-into (files)
702 "Prompts and make the FILES junk.
703 If marked files are, use them as FIELS.
704 If not, a file under the point is used as FILES.
705 If on a message field, make all the files below this message junk."
708 (tla--inventory-select-files "Move %s ? "
709 "Move %s files into ? "
714 (tla--generic-file-move files (read-directory-name "Move into ? : ")))
716 (defun tla-inventory-make-plain (files)
717 "Prompts and make the FILES junk.
718 If marked files are, use them as FIELS.
719 If not, a file under the point is used as FILES.
720 If on a message field, make all the files below this message junk."
723 (tla--inventory-select-files "Make %s unprefixed? "
724 "Make %s files plain? "
725 "Not making any file unprefixed"
726 "Make file unprefixed: "
729 (tla--generic-file-unprefix files))))
732 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
733 ;;;; A client fo Google Services
734 (setq g-directory (concat (expand-file-name user-emacs-directory) "g-client"))
735 (add-to-list 'load-path g-directory)
737 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
738 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
740 (put 'narrow-to-page 'disabled nil)
741 (put 'narrow-to-region 'disabled nil)
743 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
744 \f;; Using to init ...
745 ;(setq inhibit-splash-screen t)
746 ;; Auto evalutation on init.
750 ;;(edebug (emms-all))
751 (shell-command-completion-mode 1)
753 (column-number-mode 1)
754 (windmove-default-keybindings 'meta)
755 (global-font-lock-mode t)
761 ;; Hide dot files in dired by default
762 (dired-x-set-omit-dot 1)
764 ;(eval (term "/bin/bash"))
766 ;; Use Diary and Calendar ... & TODOo ;;; in my-pages
770 ;(setq midnight-mode t)
772 (toggle-truncate-lines 1)
775 (eval-after-load "my-elisp"
777 (unless (or (fboundp 'dired-extra-startup)
778 (not (member 'dired-extra-startup dired-mode-hook)))
779 (remove-hook 'dired-mode-hook 'dired-extra-startup))
780 (unless (or (fboundp 'ffap-inhibit-ffap-here)
781 (not (member 'dired-extra-startup dired-mode-hook)))
782 (remove-hook 'dired-mode-hook 'ffap-inhibit-ffap-here))
783 (unless (or (fboundp 'tramp-minor-mode)
784 (not (member 'tramp-minor-mode dired-mode-hook)))
785 (remove-hook 'dired-mode-hook 'tramp-minor-mode))
786 (add-hook 'dired-mode-hook 'revert-buffer)
787 "cleaned dired-mode-hook"))
789 (if (member 'tramp-minor-mode dired-mode-hook) (fix-dired-hook))
791 (if (and window-system (equal (getenv "DISPLAY") ":4.0"))
792 (progn (sleep-for 1) (gnome-wm)))
796 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
798 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
800 ;; arch-tag: Marco (Bj) Bardelli, mar 19 feb 2008 18:25:44 CET (emacs.fanaj)