;; -*- Emacs-Lisp -*- ;; keys (require 'cl) ;(global-set-key [(control x) ?5 ?2] 'new-make-frame) (global-set-key [(pause)] 'remember) (global-set-key [(meta pause)] 'plan) ;;(global-set-key [(hyper ?p)] 'plan) (global-set-key [(hyper ?r)] 'remember) (global-set-key [(control delete)] #'delete-word) ;(global-set-key [(control ?\=)] 'x-symbol-key) (global-set-key "\C-xd" 'dired) (global-set-key "\C-xb" 'iswitchb-buffer) (global-set-key "\C-ck" 'browse-kill-ring) (global-set-key "\C-cq" 'comment-out-region) (global-set-key [(control x) (control b)] 'bs-show) (global-set-key [(control x) (control meta f)] 'find-files-glob) (global-set-key [(control x) (control meta f)] 'ido-find-file) (global-set-key [(control x) (control f)] 'find-file) (global-set-key [find] 'google-query) (global-set-key [(control find)] 'dictionary-search) (global-set-key [SunPaste] 'make-frame) (global-set-key [(meta ?W)] 'sy-add-to-kill) (global-set-key [(alt w)] 'delete-region) (global-set-key [(alt k)] #'(lambda () (interactive) (delete-region (point) (if (= (point) (point-at-bol)) (let ((p (1+ (point-at-eol)))) (if (< p (point-max)) p (point-max))) (point-at-eol))))) ;;(global-set-key [f17] #'register-to-point) ;;(global-set-key [(control x) ?7] #'register-to-point) (global-set-key [f19] #'other-window) ;(global-set-key "\C-v" 'pager-page-down) ;(global-set-key [next] 'pager-page-down) ;(global-set-key "\M-v" 'pager-page-up) ;(global-set-key [prior] 'pager-page-up) ;(global-set-key [(meta up)] 'pager-row-up) ;(global-set-key [(meta kp-8)] 'pager-row-up) ;(global-set-key [(meta down)] 'pager-row-down) ;(global-set-key [(meta kp-2)] 'pager-row-down) (global-set-key "\C-v" 'forward-paragraph) ;(global-set-key [next] 'forward-sentence) (global-set-key "\M-v" 'backward-paragraph) ;(global-set-key [prior] 'backward-sentence) ;(global-set-key [(shift insert)] #'yank) (global-set-key [(shift insert)] #'yank-clipboard-selection) ;; swiss-move controls (global-set-key [(super up)] #'backward-page) (global-set-key [(super down)] #'forward-page) ;;(global-set-key [(super left)] 'swiss-move-line-left) ;;(global-set-key [(super right)] 'swiss-move-line-right) ;; multr stuff ;;(global-set-key [(control meta m)] mr-regions-map) ;; zap stuff (global-set-key [(control z)] (make-sparse-keymap)) (global-set-key [(control z) ?z] 'zap-upto-char) (global-set-key [(control z) (meta z)] 'zap-to-char) (global-set-key [(control z) ?Z] 'zap-following-char) (global-set-key [(control z) (meta Z)] 'zap-from-char) (global-set-key [(control pause)] 'remember) (global-set-key [f1] 'delete-other-windows) (global-set-key [f2] 'split-window-vertically) (global-set-key [f3] 'split-window-horizontally) ;;(global-set-key [f4] 'uniquify-rationalize-file-buffer-names) ;;(global-set-key [f5] "\M-w") ;;(global-set-key [f6] "\C-y") (global-set-key [f8] 'abbrev-mode) (global-set-key [f12] 'kill-buffer) (global-set-key [f18] 'eval-last-sexp) (defun my-cleanup-extents () (interactive) (map-extents #'(lambda (ext foo) (set-extent-property ext 'read-only nil)))) (global-set-key [f20] #'my-cleanup-extents) (global-set-key [f4] #'my-cleanup-extents) (add-hook 'c-mode-hook '(lambda () (define-key c-mode-map [f11] 'compile))) (define-key emacs-lisp-mode-map [f11] 'emacs-lisp-byte-compile) (define-key emacs-lisp-mode-map [f10] 'eval-current-buffer) (define-key emacs-lisp-mode-map [(shift f10)] 'eval-defun) ;; only temporarily set (global-set-key [(shift button3)] 'imenu) (global-set-key [(meta escape) k] 'kill-emacs) (global-set-key [(meta escape) q] 'save-buffers-kill-emacs) ;;(global-set-key [tab] 'expand-abbrev-or-dabbrev) (global-set-key [tab] 'hippie-expand) (define-key emacs-lisp-mode-map [(alt tab)] 'lisp-complete-symbol) (define-key emacs-lisp-mode-map [tab] 'hippie-expand) (global-set-key [(shift tab)] 'indent-according-to-mode) (global-set-key [(iso-left-tab)] 'indent-according-to-mode) (global-set-key [(meta tab)] 'dabbrev-expand) (global-set-key [(control \()] 'paren-act-mad) (global-set-key [(control \))] 'paren-deactivate) (global-set-key [(alt e)] (lambda () (interactive) (insert (make-char 'latin-iso8859-15 #x24)))) (global-unset-key [(meta f4)]) (global-unset-key [(meta tab)]) (global-set-key [(hyper k)] 'kill-entire-line) ;;(global-set-key [(hyper backspace)] 'kill-entire-line) (global-set-key [(alt r)] #'revert-buffer) (when (featurep 'emacs-wiki) (define-key emacs-wiki-mode-map [f10] 'emacs-wiki-publish) (define-key emacs-wiki-mode-map [(control c) (control c)] 'emacs-wiki-publish)) (define-key ctl-x-map "ti" 'timeclock-in) (define-key ctl-x-map "to" 'timeclock-out) (define-key ctl-x-map "tc" 'timeclock-change) (define-key ctl-x-map "tr" 'timeclock-reread-log) (define-key ctl-x-map "tu" 'timeclock-update-modeline) (define-key ctl-x-map "tw" 'timeclock-when-to-leave-string) (defun repeat-last-char nil (interactive) (insert (preceding-char))) ;; (defun repeat-last-word nil ;; (interactive) ;; (insert (word-at-point))) ;; (defun eval-and-insert nil ;; (interactive) ;; (insert (format "%S" (eval-last-sexp)))) (defun repeat-last-word nil (interactive) (let ((word (save-excursion (let* ((wbeg (progn (backward-word) (point))) (wend (progn (forward-word) (point))) (word (buffer-substring wbeg wend))) word))) (space (if (string-match "\\s-" (format "%s" (or (char-before) ""))) "" " "))) (insert (format "%s%s" space word)))) (global-set-key [(control insert)] #'repeat-last-char) (global-set-key [(meta insert)] #'repeat-last-word) ;;(global-set-key [(control meta insert)] 'repeat-last-char) ;;(global-set-key [(control x) (control meta e)] 'eval-and-insert) ;;; use prefix arg to obtain that (defun mine-insert-memory-usage nil (interactive) (progn (insert "\n") (mapcar (function (lambda (z) (insert (format "%s:\n" (buffer-name z))) (mapcar (function (lambda (x) (insert (format " %s %s\n" (symbol-name (car x)) (cdr x))))) (buffer-memory-usage z)) z)) (buffer-list t)))) (add-hook 'dired-load-hook '(lambda () (define-key dired-mode-map "r" 'wdired-change-to-wdired-mode) (define-key dired-mode-map [menu-bar immediate wdired-change-to-wdired-mode] '("Edit File Names" . wdired-change-to-wdired-mode)))) ;;; coding theory ;) ;; (global-set-key [f19 e] 'base64-encode-region) ;; (global-set-key [f19 d] 'base64-decode-region) ;; (global-set-key [f19 c] 'pgg-encrypt) ;; (global-set-key [f19 x] 'pgg-decrypt) ;;; emacs-wiki keymap ;;(global-set-key [f14 x f] 'emacs-wiki-find-file) ;; extra key bindings (add-hook 'singular-interactive-mode-hook (function (lambda () ;; control cursor keys (cond ;; Emacs ((eq singular-emacs-flavor 'emacs) (local-set-key [C-prior] 'singular-scroll-right) (local-set-key [C-next] 'singular-scroll-left) (local-set-key [C-up] 'comint-previous-prompt) (local-set-key [C-down] 'comint-next-prompt)) ;; XEmacs (t (local-set-key [(control prior)] 'singular-scroll-right) (local-set-key [(control next)] 'singular-scroll-left) (local-set-key [(control up)] 'comint-previous-prompt) (local-set-key [(control down)] 'comint-next-prompt)))))) ;; (defun myswitch-to-buffer buffer ;; (interactive) ;; (let ((buf (get-buffer buffer))) ;; (and buf ;; (switch-to-buffer buf t)))) (defvar myerc-prefix-map nil "Prefix keymap for accessing ERC networks/channels") (defvar myerc-prefix-key [f9] "Prefix key for accessing ERC networks/channels") (defun mymake-erc-maps nil (interactive) (setq myerc-prefix-map (make-sparse-keymap 'myerc-prefix-keymap)) (global-set-key myerc-prefix-key myerc-prefix-map)) (mymake-erc-maps) (and (fboundp 'myerc-bind-keys) (myerc-bind-keys)) ;;; ;;; rest of the maps (defvar mybuf-prefix-key [f7] "Prefix key for accessing commonly used buffers") (defvar mybuf-prefix-map nil "Prefix keymap for accessing commonly used buffers") (defvar mybuf-prefix-maps '((mybuf-prefix-map . (mybuf-prefix-key (current-global-map))) (mydotfile-prefix-map . (?. mybuf-prefix-map)) (mydired-prefix-map . (?d mybuf-prefix-map))) "Looks like an alist (prefix-map . '(prefix-key parent-map))") (defvar mybuf-list nil "Looks like an alist of alists \(prefix-keymap . '((buffer-or-file . [keystroke]) ... This binds `buffer-or-file' to the keystroke mybuf-prefix-key myerc-network-prefix-map-key `keystroke'") (setq mybuf-list '((mybuf-prefix-map . (("*Group*" . ?g ) (my-eshell-fire . ?e) ("*scratch*" . ?s) ("*eshell*" . (?1 :jump-bottom t)) ("*eshell*<2>" . (?2 :jump-bottom t)) ("*eshell*<3>" . (?3 :jump-bottom t)) ("*eshell*<4>" . (?4 :jump-bottom t)) ("*eshell*<5>" . (?5 :jump-bottom t)) ("*eshell*<6>" . (?6 :jump-bottom t)) ("*eshell*<7>" . (?7 :jump-bottom t)) ("*eshell*<8>" . (?8 :jump-bottom t)) ("*eshell*<9>" . (?9 :jump-bottom t)))) (mydotfile-prefix-map . ((".keys" . (?k :path "~/.sxemacs")) (".gnus" . ?g) (".sounds" . ([?s] :path "~/.sxemacs")) (".mail.split" . [?2 ?s]) (".tex" . (?t :path "~/.sxemacs")) (".bashrc" . ?b) (".zshrc" . ?z) (".wiki" . (?w :path "~/.sxemacs")) (".fresse" . ([?f] :path "~/.sxemacs")) (".faces" . ([?2 ?f] :path "~/.sxemacs")) (".emms" . ([?2 ?e] :path "~/.sxemacs")) (".mail.split" . ?m) (".passwd" . (?p :path "~/.sxemacs")) ("init.el" . (?. :path "~/.sxemacs")) ("botinit.el" . ([?2 ?.] :path "~/.sxemacs")) (".erc" . (?e :path "~/.sxemacs/erc")) (".eicq" . (?q :path "~/.sxemacs")))) (mydired-prefix-map . (((dired (expand-file-name "~/")) . ?~))))) (defun my-eshell-fire () (dotimes (j 9) (eshell 1))) (defun myfind-keyword (keyword sequence) "Finds `keyword' in `sequence' and returns its value" (and (sequencep sequence) (let ((keywpos (position keyword sequence))) (and keywpos (nth (1+ keywpos) sequence))))) ;; (myfind-keyword :key '(?k bla :key bla)) (defun mybuf-bind-keys nil (interactive) (mapc (lambda (prefixmap) (let* ((mapname (car prefixmap)) (keyspec (cdr prefixmap)) (key (eval (or (car-safe keyspec) (myfind-keyword ':key keyspec) keyspec))) (parent (eval (or (nth 1 keyspec) (myfind-keyword ':parent keyspec) (current-global-map)))) (map (make-sparse-keymap mapname))) (set mapname map) (define-key parent key map) (let ((mybuf-entries (cdr (assoc mapname mybuf-list)))) (mapc #'(lambda (mybuf) (let* ((buf-or-fun (car mybuf)) (buf (and (stringp buf-or-fun) buf-or-fun)) (bufspec (cdr mybuf)) (key (eval (or (car-safe bufspec) (myfind-keyword ':key bufspec) bufspec))) (path (or (myfind-keyword ':path bufspec) (expand-file-name "~"))) (jumpbtm (myfind-keyword ':jump-bottom bufspec)) (switch-buf (and buf `(lambda nil (interactive) (let* ((swbuf (get-buffer ,buf))) (and swbuf (prog1 (switch-to-buffer swbuf t) (and ,jumpbtm (goto-char (point-max))))))))) (switch-buf-maybe-find (and buf `(lambda nil (interactive) (let* ((swbuf (or (get-buffer ,buf) (find-file (expand-file-name (concat ,path "/" ,buf)))))) (and swbuf (switch-to-buffer swbuf t)))))) (fun (or (and (not buf) (listp buf-or-fun) (fboundp (car buf-or-fun)) `(lambda () (interactive) ,buf-or-fun)) (and (not buf) (symbolp buf-or-fun) (fboundp buf-or-fun) `(lambda () (interactive) (funcall ',buf-or-fun) (and ,jumpbtm (goto-char (point-max))))) (myfind-keyword :binding bufspec) (cond ((string-match "^\\*" buf) switch-buf) (t switch-buf-maybe-find))))) (define-key map key fun))) mybuf-entries)))) mybuf-prefix-maps)) (mybuf-bind-keys) (global-set-key [f9 f8] (function (lambda nil (interactive) (bbdb-resort-database) (bbdb-save-db)))) (global-set-key [f9 f6] (function (lambda nil (interactive) (bbdb-resort-database) (bbdb-save-db)))) (global-set-key [f9 kp-1] (function (lambda nil (interactive) (setq current-xemacs-dsp-device (get-device ":1"))))) (global-set-key [f9 kp-9] (function (lambda nil (interactive) (setq current-xemacs-dsp-device (get-device ":9"))))) ;;; mtorus (global-set-key '[(control kp-6)] 'mtorus-next-element) (global-set-key '[(control kp-4)] 'mtorus-prev-element) (global-set-key '[(control kp-7)] 'mtorus-aunt-element) (global-set-key '[(control kp-8)] 'mtorus-parent-element) (global-set-key '[(control kp-9)] 'mtorus-uncle-element) (global-set-key '[(control kp-1)] 'mtorus-niece-element) (global-set-key '[(control kp-2)] 'mtorus-child-element) (global-set-key '[(control kp-3)] 'mtorus-nephew-element) (global-set-key '[(control kp-5)] 'mtorus-select-current-element) (global-set-key '[(control kp-0)] 'mtorus-create-element) (global-set-key '[(control kp-decimal)] 'mtorus-delete-element) ;;; mp3player ;; (global-set-key [(super left)] 'mp3player-prev) ;; (global-set-key [(super right)] 'mp3player-next) ;; (global-set-key [(super up)] 'mp3player-resume) ;; (global-set-key [(super down)] 'mp3player-stop) ;; (global-set-key [(super prior)] 'mp3player-increment-volume) ;; (global-set-key [(super next)] 'mp3player-decrement-volume) ;; (global-set-key [(super p)] 'mp3player-popup-playlist) ;; (global-set-key [(super insert)] 'mp3player-play-from-playlist) ;; (global-set-key [(super m)] 'mp3player-change-mood) ;; (global-set-key [(super f24)] 'mp3player-mute) ;; (global-set-key [(super kp-add)] 'mp3player-score-up-current) ;; (global-set-key [(super kp-subtract)] 'mp3player-score-down-current) ;;; dired (when (featurep 'dired) (define-key dired-mode-map [(shift return)] #'dired-find-alternate-file)) ;;; fresse (global-set-key [(hyper down)] 'fresse-ui-handler-stop-ancient) (global-set-key [(hyper control down)] 'fresse-ui-handler-stop-recent) (global-set-key [(hyper up)] 'fresse-ui-handler-continue-recent) (global-set-key [(hyper control up)] 'fresse-ui-handler-continue-ancient) (global-set-key [(hyper right)] 'fresse-ui-handler-next-recent) (global-set-key [(hyper control left)] 'fresse-ui-handler-rehandle-recent) (global-set-key [(hyper left)] 'fresse-ui-handler-prev-recent) (global-set-key [(hyper ?p)] 'fresse-ui-popup) (global-set-key [(hyper ?i)] 'fresse-ui-currently-handled) (global-set-key [f9 f2] #'my-c-set-style-SXE) (global-set-key [f9 f3] #'my-c-set-style-ME) ;; Local variables: ;; donteval: (mtorus-add-pos-to-ring (current-buffer) "emacs-config") ;; indent-tabs-mode: nil ;; End: