Created
February 26, 2010 15:31
-
-
Save peccu/315801 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; 以下のファイルに,自分なりの解釈をコメントしてみた by peccu | |
;; http://www.unixuser.org/~ysjj/emacs/lisp/keybind-config.el | |
;;; keybind-config --- keybind file | |
;; Copyright (C) 1999-2001 YAMASHITA Junji | |
;; Author: YAMASHITA Junji <ysjj@unixuser.org> | |
;; Keywords: config, keybind | |
;; Version: $Id: keybind-config.el,v 1.21 2002/02/04 08:18:42 ysjj Exp $ | |
;;; Commentary: | |
;;; Code: | |
;; C-zから次のキーを呼び出すために変数として宣言 | |
(defvar my-prefix "\C-z" "*Prefix key for my favorite.") | |
;; create new keymap for custom key-binding | |
;; これら全ての*-mapに,(keymap)という(空の?)リストを設定する | |
;; cf.http://www.math.s.chiba-u.ac.jp/~matsu/emacs/mode/key.html#make-sparse-keymap | |
;; C-z用 | |
(defvar my-map (make-sparse-keymap) | |
"*Keymap for `my-prefix' commands.") | |
;; C-c用 | |
(defvar my-ctl-c-map (make-sparse-keymap) | |
"*Keymap for \\<my-map> C-c commands.") | |
;; C-x用 | |
(defvar my-ctl-x-map (make-sparse-keymap) | |
"*Keymap for \\<my-map> C-x commands.") | |
;; 次の関数の引数に,バインドしたいキーと割り当てる関数を渡すと, | |
;; キーマップに登録する. | |
;; たとえば(my-set-key "\C-b." 'browse-url-at-point) | |
;; は,C-zC-b.にbrowse-url-at-pointを割り当てている | |
;; (my-c-set-key "\C-l" 'toggle-truncate-lines) | |
;; は,C-cC-lにtoggle-truncate-linesを割り当てている | |
;; C-z用 | |
(defsubst my-set-key (key command) | |
"Give KEY a `my-map' binding as COMMAND." | |
(define-key my-map key command)) | |
;; C-c用 | |
(defsubst my-c-set-key (key command) | |
"Give KEY a `my-ctl-c-map' binding as COMMAND." | |
(define-key my-ctl-c-map key command)) | |
;; C-x用 | |
(defsubst my-x-set-key (key command) | |
"Give KEY a `my-ctl-x-map' binding as COMMAND." | |
(define-key my-ctl-x-map key command)) | |
;; modify global keymap | |
;; グローバルキーを設定する | |
;; (なんでもっと下に書いていないかはわからん) | |
;; C-xC-pはprefixというよりも,ctl-x-ctl-p-prefixという関数を呼び出してるんだろうな | |
(global-set-key [?\C-.] 'other-window) | |
(global-set-key "\C-x\C-p" 'ctl-x-ctl-p-prefix) | |
(global-set-key "\C-xb" 'iswitchb-buffer) | |
(global-set-key "\C-x\C-b" 'ibuffer) | |
;; define-key the prefixes | |
;; global-mapにmy-prefixがmy-mapを呼び出すように設定 | |
;; つまりグローバルキーマップでmy-prefix(C-z)がプレフィックスキーとして働くようにして | |
;; my-mapに登録されているキーバインドがC-zのあとに参照されるようにしている | |
(define-key global-map my-prefix my-map) | |
;; C-zC-cでmy-ctl-c-mapを呼び出す(すなわちなんもなしのC-cと同じ) | |
(my-set-key "\C-c" my-ctl-c-map) | |
;; C-zC-xでmy-ctl-x-mapを呼び出す(すなわちなんもなしのC-xと同じ) | |
(my-set-key "\C-x" my-ctl-x-map) | |
;; C-zC-b.でbrowse-url-at-pointを呼び出す | |
(my-set-key "\C-b." 'browse-url-at-point) | |
(my-set-key "\C-bb" 'browse-url-of-buffer) | |
(my-set-key "\C-bf" 'browse-url-of-file) | |
(my-set-key "\C-br" 'browse-url-of-region) | |
(my-set-key "\C-d" 'dired-at-point) | |
(my-set-key "\C-f" 'find-file-at-point) | |
(my-set-key "\C-ha" 'apropos-variable) | |
(my-set-key "\C-he" 'eelll) | |
(my-set-key "\C-hf" 'find-function) | |
(my-set-key "\C-hl" 'my-show-message-log) | |
(my-set-key "\C-hm" 'man) | |
(my-set-key "\C-hn" 'namazu) | |
(my-set-key "\C-hs" 'apropos) | |
(my-set-key "\C-hv" 'find-variable) | |
(my-set-key "\C-l" 'load-library) | |
(my-set-key "\C-ma" 'abbrev-mode) | |
(my-set-key "\C-mb" 'blank-mode) | |
(my-set-key "\C-mc" 'highlight-changes-mode) | |
(my-set-key "\C-me" 'enriched-mode) | |
(my-set-key "\C-mf" 'free-cursor-mode) | |
(my-set-key "\C-mg" 'glasses-mode) | |
(my-set-key "\C-m\C-f" 'follow-mode) | |
(my-set-key "\C-mh" 'hs-minor-mode) | |
(my-set-key "\C-mi" 'hide-ifdef-mode) | |
(my-set-key "\C-ml" 'hl-line-mode) | |
(my-set-key "\C-mm" 'mmm-mode) | |
(my-set-key "\C-mn" 'setnu-mode) | |
(my-set-key "\C-mo" 'overwrite-mode) | |
(my-set-key "\C-m\C-o" 'outline-minor-mode) | |
(my-set-key "\C-mp" 'picture-mode) | |
(my-set-key "\C-mr" 'toggle-rot13-mode) | |
(my-set-key "\C-ms" 'screen-lines-mode) | |
(my-set-key "\C-mv" 'auto-revert-mode) | |
;;(my-set-key "\C-m\C-v" 'toggle-viper-mode) | |
(my-set-key "\C-mw" 'hi-lock-mode) | |
(my-set-key "\C-m\C-w" 'which-func-mode) | |
;;(my-set-key "\C-m\M-w" 'wordstar-mode) | |
;;(my-set-key "\C-o" 'oo-browser) ; also 'outline-minor-mode-prefix | |
(my-set-key "\C-pb" 'lpr-buffer) | |
(my-set-key "\C-pr" 'lpr-region) | |
(my-set-key "\C-p\C-b" 'ps-print-buffer-with-faces) | |
(my-set-key "\C-p\C-r" 'ps-print-region-with-faces) | |
(my-set-key "\C-q" 'rename-uniquely) | |
(my-set-key "\C-r" 'my-isearch-backward-other-window) | |
(my-set-key "\C-s" 'my-isearch-forward-other-window) | |
(my-set-key "\C-w" 'delete-region) | |
(my-set-key "\C-y" 'lookup) | |
(my-set-key "\C-z" 'repeat) | |
(my-set-key "[" 'previous-page) | |
(my-set-key "]" 'next-page) | |
(my-set-key "\M-*" 'select-tags-table) | |
(my-set-key "\M-," 'tags-search) | |
(my-set-key "\M-." 'visit-tags-table) | |
(my-set-key "\M-/" 'hippie-expand) | |
(my-set-key "\M-;" 'comment-region) | |
(my-set-key "\M-g" 'goto-char) | |
(my-set-key "\M-l" 'ffap-next) | |
(my-set-key "\M-m" 'ffap-menu) | |
(my-set-key "\M-s" 'center-line) | |
(my-set-key [?\M-\C-.] 'tags-apropos) | |
(my-set-key "\M-\C-r" 'my-isearch-backward-regexp-other-window) | |
(my-set-key "\M-\C-s" 'my-isearch-forward-regexp-other-window) | |
(my-set-key "b" 'speedbar-get-focus) | |
(my-set-key "e" 'toggle-debug-on-error) | |
(my-set-key "d" 'find-dired) | |
(my-set-key "g" 'goto-line) | |
(my-set-key "i" 'imenu) | |
(my-set-key "k" 'browse-kill-ring) | |
(my-set-key "l" 'lookup-pattern) | |
;;(my-set-key "m" 'mmm-mode-map) ; (setq mmm-mode-prefix-key "\C-zm") | |
(my-set-key "o" 'occur) | |
(my-set-key "rc" 'compile) | |
(my-set-key "rg" 'gdb) | |
(my-set-key "rl" 'run-lisp) | |
;;(my-set-key "rp" 'run-prolog) | |
;;(my-set-key "rp" 'run-ps) | |
(my-set-key "rr" 'run-ruby) | |
(my-set-key "rs" 'shell) | |
(my-set-key "rt" 'term) | |
(my-set-key "sc" 'sort-columns) | |
(my-set-key "sf" 'sort-fields) | |
(my-set-key "sj" 'skk-reread-private-jisyo) | |
(my-set-key "sl" 'sort-lines) | |
(my-set-key "sn" 'sort-numeric-fields) | |
(my-set-key "sp" 'sort-paragraphs) | |
(my-set-key "sr" 'sort-regexp-fields) | |
(my-set-key "ss" 'skk-save-jisyo) | |
(my-set-key "sv" 'set-variable) | |
(my-set-key "t" 'toggle-tab-width) | |
;; ここはwindow-setup-hook(なにそれ?)を呼び出してる時のキーバインド | |
;; C-zwhでset-current-frame-heightなど | |
(add-hook 'window-setup-hook | |
#'(lambda () | |
(when (featurep 'windows) | |
(my-set-key "wh" 'set-current-frame-height) | |
(my-set-key "ww" 'set-current-frame-width) | |
(my-set-key "wc" 'see-you-again) | |
(my-set-key "wo" 'win:other-frame) | |
(my-set-key "wr" 'resume-windows)))) | |
(my-set-key "y" 'honyaku-prefix) ; or 'lookup-region | |
;; ここからは,C-cにつづくキーの設定 | |
(my-c-set-key "\C-c" 'toggle-case-fold-search) | |
(my-c-set-key "\C-f" 'hexl-find-file) | |
(my-c-set-key "\C-l" 'toggle-truncate-lines) | |
(my-c-set-key "\C-n" 'hnf) | |
(my-c-set-key "\C-r" 'mule-caesar-region) | |
(my-c-set-key "\C-s" 'toggle-gnuserv) ; or 'server-start | |
(my-c-set-key "b" 'browse-url) | |
(my-c-set-key "c" 'liece) | |
(my-c-set-key "m" 'wl) | |
(my-c-set-key "n" 'gnus) | |
(my-c-set-key "p" 'ping) | |
(my-c-set-key "r" 'rlogin) | |
(my-c-set-key "t" 'telnet) | |
(my-c-set-key "w" 'w3m-goto-url) | |
;; ここからは,C-xにつづくキーの設定 | |
(my-x-set-key "\C-b" 'list-processes) | |
(my-x-set-key "\C-d" 'find-grep-dired) | |
(my-x-set-key "\C-f" 'find-file-literally) | |
(my-x-set-key "\C-t" 'transpose-paragraphs) | |
(my-x-set-key "\C-w" 'write-region) | |
(my-x-set-key "'" 'expand-region-abbrevs) | |
(my-x-set-key "a'" 'list-abbrevs) | |
(my-x-set-key "ae" 'edit-abbrevs) | |
(my-x-set-key "ag" 'define-global-abbrev) | |
(my-x-set-key "ak" 'kill-all-abbrevs) | |
(my-x-set-key "al" 'define-mode-abbrev) | |
(my-x-set-key "ar" 'read-abbrev-file) | |
(my-x-set-key "au" 'unexpand-abbrev) | |
(my-x-set-key "aw" 'write-abbrev-file) | |
(my-x-set-key "c" 'calendar) | |
(my-x-set-key "d" 'find-name-dired) | |
(my-x-set-key "i" 'insert-buffer) | |
(my-x-set-key "m" 'wl-draft) | |
(my-x-set-key "n" 'gnus-post-news) | |
(my-x-set-key "o" 'cyclic-windows) | |
;; あとは特殊なキーの設定 | |
;; use keysym, if running on X Window System | |
(when (eq window-system 'x) | |
(global-set-key [henkan] 'toggle-input-method) | |
(global-set-key [pause] 'keyboard-quit) | |
(global-set-key [print] 'print-buffer) | |
(global-set-key [(shift mouse-2)] 'browse-url-at-mouse) | |
(global-set-key [(mouse-6)] | |
#'(lamba () (message "mouse 6 is not bound"))) | |
(unless my-xemacs-p ; Emacs-20 | |
(global-set-key [backspace] nil) | |
(global-set-key [delete] 'delete-char))) | |
;;; keybind-config.el ends here |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment