;;; ;; ~/.xyzzy - Startup file for xyzzy ;; HIROSE, Yuuji [yuuji@gentei.org] ;;; (defun save-kill-buffer () "Save and kill current buffer" (interactive) (save-buffer) (kill-buffer (selected-buffer))) (defun backward-kill-line () "Kill line backward" (interactive) (kill-line 0)) (defun copy-word () (interactive) (copy-region-as-kill (point) (save-excursion (skip-chars-forward "^[](){} \t\n()\"") ;(skip-chars-forward "-A-Za-z_") (point))) (message (car (car *kill-ring*)))) (defun MY-scroll-up (&optional (arg 1)) (interactive "p") (let ((p (point))) (scroll-window arg) (if (pos-visible-in-window-p p) (goto-char p)))) (defun MY-scroll-down (&optional (arg 1)) (interactive "p") (MY-scroll-up (- arg))) (define-key *global-keymap* #\C-x 'nil) (define-key *global-keymap* #\C-x 'next-line) (setq Ctrl-O-prefix (copy-keymap ctl-x-map)) ;;; ;; Ctrl-L prefix family ;;; (setq Ctrl-L-prefix (make-sparse-keymap)) ;(define-key Ctrl-L-prefix "1" 'win-switch-to-window) (define-key Ctrl-L-prefix #\) 'up-list) (define-key Ctrl-L-prefix #\( 'backward-up-list) ;(define-key Ctrl-L-prefix "]" 'remove-trailing-spaces) ;(define-key Ctrl-L-prefix ">" 'comment-out-region) ;(define-key Ctrl-L-prefix "<" 'uncomment-region) ;(define-key Ctrl-L-prefix "?" 'apropos) ;(define-key Ctrl-L-prefix "a" 'Super-apropos-menu);Joe Wells's Apropos (define-key Ctrl-L-prefix #\c 'next-page) ;(define-key Ctrl-L-prefix "d" 'Describe-menu) ;Extended Describe menu ;(define-key Ctrl-L-prefix "e" 'Evaluate-menu) ;Extended Evaluate menu ;(define-key Ctrl-L-prefix "\C-i" 'file-complete) ;(define-key Ctrl-L-prefix "\C-k" 'mkdir-in-line) (define-key Ctrl-L-prefix #\v 'compare-windows) ;(define-key Ctrl-L-prefix "w" 'Change-case-menu) ;Change case menu (define-key Ctrl-L-prefix #\C-l 'recenter) (define-key Ctrl-L-prefix #\l 'recenter) (define-key Ctrl-L-prefix #\u 'unshar-other-buffer) ;(define-key Ctrl-L-prefix "\^R" 'Rectangle-menu) ;(define-key Ctrl-L-prefix "\^X" 'edebug-defun) ;;; ;; Ctrl-O prefix family ;; ( Re-defined ^Q^O as ^O in order to alive ;; ^O prefix in other environmet such as ;; gnus-Subject-mode. ) ;;; (setq Ctrl-O-prefix ctl-x-map) ;(global-set-key "\^Q\^O" 'Control-X-prefix) (define-key Ctrl-O-prefix #\C-a 'save-buffer) ;;(define-key Ctrl-O-prefix "b" 'switch-to-buffer-across-frame) ;;(define-key Ctrl-O-prefix "B" 'switch-to-buffer) (define-key Ctrl-O-prefix #\C-e 'save-kill-buffer) (define-key Ctrl-O-prefix #\C-g 'quit) (define-key Ctrl-O-prefix #\C-i 'fill-paragraph) (define-key Ctrl-O-prefix #\C-j 'jump-to-register) (define-key Ctrl-O-prefix #\C-k 'copy-region-as-kill) (define-key Ctrl-O-prefix #\C-l 'yank) ;(define-key Ctrl-O-prefix "l" 'browse-yank) ;(define-key Ctrl-O-prefix "\^M" 'electric-buffer-list) (define-key Ctrl-O-prefix #\C-n 'find-file) ;(define-key Ctrl-O-prefix "\^S" 'suspend-emacs) (define-key Ctrl-O-prefix #\C-q 'replace-string) ;(define-key Ctrl-O-prefix "q" Ctrl-Q-prefix) (define-key Ctrl-O-prefix #\C-r 'find-file-read-only) (define-key Ctrl-O-prefix #\C-t 'set-mark-command) (define-key Ctrl-O-prefix #\C-u 'fill-region-as-paragraph) (define-key Ctrl-O-prefix #\w 'write-file) (define-key Ctrl-O-prefix #\C-w #'(lambda () (interactive) (if (= (count-windows) 1) (switch-to-buffer (other-buffer)) (other-window 1)))) (define-key Ctrl-O-prefix #\C-x #'(lambda () (interactive) (kill-buffer (selected-buffer)))) (define-key Ctrl-O-prefix #\z 'copy-word) ;;(define-key Ctrl-O-prefix "\^Z" 'suspend-emacs) ;;(define-key Ctrl-O-prefix "[" 'backward-paragraph) ;;(define-key Ctrl-O-prefix "]" 'forward-paragraph) (define-key Ctrl-O-prefix #\8 'save-buffers-kill-xyzzy) ;;(define-key Ctrl-O-prefix "9" 'see-you-again) (define-key Ctrl-O-prefix #\/ 'point-to-register) ;;; ;; Ctrl-Q prefix family ;; for Quick operations. ;;; (setq Ctrl-Q-prefix (make-sparse-keymap)) (define-key Ctrl-Q-prefix #\1 #'(lambda()(interactive)(jump-to-register #\1))) (define-key Ctrl-Q-prefix #\2 #'(lambda()(interactive)(jump-to-register #\2))) (define-key Ctrl-Q-prefix #\3 #'(lambda()(interactive)(jump-to-register #\3))) (define-key Ctrl-Q-prefix #\4 #'(lambda()(interactive)(jump-to-register #\4))) (define-key Ctrl-Q-prefix #\5 #'(lambda()(interactive)(jump-to-register #\5))) ;;(define-key Ctrl-Q-prefix "\^B" 'isearch-backward) (define-key Ctrl-Q-prefix #\b 're-search-backward) ;(define-key Ctrl-Q-prefix "\^E" 'Beginning-of-screen) (define-key Ctrl-Q-prefix #\C-f 'search-forward) ;(define-key Ctrl-Q-prefix "f" 're-search-forward) (define-key Ctrl-Q-prefix #\C-c 'end-of-buffer) (define-key Ctrl-Q-prefix #\c 'next-page) (define-key Ctrl-Q-prefix #\C-d 'end-of-line) (define-key Ctrl-Q-prefix #\C-h 'backward-kill-word) (define-key Ctrl-Q-prefix #\C-j 'exchange-point-and-mark) (define-key Ctrl-Q-prefix #\C-k 'copy-to-register) (define-key Ctrl-Q-prefix #\C-l 'insert-register) (define-key Ctrl-Q-prefix #\l 'goto-line) (define-key Ctrl-Q-prefix #\C-m 'call-last-kbd-macro) ;(define-key Ctrl-Q-prefix "o" ; '(lambda () (interactive) (global-set-key "\C-o" Ctrl-O-prefix))) (define-key Ctrl-Q-prefix #\C-o Ctrl-O-prefix) (define-key Ctrl-Q-prefix #\C-r 'beginning-of-buffer) (define-key Ctrl-Q-prefix #\C-s 'beginning-of-line) (define-key Ctrl-Q-prefix #\C-u 'universal-argument) (define-key Ctrl-Q-prefix #\C-v 'overwrite-mode) (define-key Ctrl-Q-prefix #\v 'overwrite-mode) ;(define-key Ctrl-Q-prefix "\^W" 'resize-window) ;(define-key Ctrl-Q-prefix "w" 'smooth-scroll-down) ;(define-key Ctrl-Q-prefix "z" 'smooth-scroll-up) ;(define-key Ctrl-Q-prefix "\^X" 'End-of-screen) ;(define-key Ctrl-Q-prefix "\^Y" 'Kill-to-register) ;(define-key Ctrl-Q-prefix "\e" '(lambda ()(interactive)(blink-matching-open))) ;(define-key Ctrl-Q-prefix "\^@" 'ispell-complete-word) ;;(setq search-repeat-char ?\^C) ;;(setq search-quote-char ?\^V) ;(setq search-delete-char ?\^H) ;No need by bobcat.el ;;; ;; Basic editing commands ;;; (global-set-key #\C-a 'backward-word) (global-set-key #\C-b 'repeat-complex-command) (global-set-key #\C-c 'next-page) (global-set-key #\C-d 'forward-char) (global-set-key #\C-e 'previous-line) (global-set-key #\C-f 'forward-word) (global-set-key #\C-g 'delete-char) ;(global-set-key #\C-^H" 'delete-backward-char) ;(global-set-key #\C-^I" 'indent-for-tab-command) (global-set-key #\C-j 'point-to-register) ;(global-set-key #\C-^K" 'MY-kill-line) (global-set-key #\C-l Ctrl-L-prefix) ;(global-set-key #\C-^M" 'newline) (global-set-key #\C-n #'(lambda(&optional (arg 1)) (interactive "p") (beginning-of-line) (open-line arg))) (global-set-key #\C-o Ctrl-O-prefix) (global-set-key #\C-p 'undo) (global-set-key #\C-q Ctrl-Q-prefix) (global-set-key #\C-r 'previous-page) (global-set-key #\C-s 'backward-char) (global-set-key #\C-t 'kill-word) (global-set-key #\C-u 'backward-kill-line) (global-set-key #\C-v 'quote-char) (global-set-key #\C-w 'MY-scroll-down) (global-set-key #\C-x 'next-line) (global-set-key #\C-y 'kill-region) (global-set-key #\C-z 'MY-scroll-up) (global-set-key '(#\C-[ #\C-n) "~/") (toggle-eof nil) (toggle-line-number nil)