Created
March 21, 2009 10:24
-
-
Save hitode909/82805 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
;; ~/.emacs.d/site-lisp/以下をload-pathに追加 | |
(if (fboundp 'normal-top-level-add-subdirs-to-load-path) | |
(let* ((my-lisp-dir "~/.emacs.d/site-lisp/") | |
(default-directory my-lisp-dir)) | |
(setq load-path (cons my-lisp-dir load-path)) | |
(normal-top-level-add-subdirs-to-load-path))) | |
;; localな設定ファイルがあるときロードする | |
(if (file-exists-p "~/.emacs.el.local") | |
(load-file "~/.emacs.el.local")) | |
;; default encodingをutf-8に変更 | |
(set-default-coding-systems 'utf-8) | |
;; status-barにカーソルのcolumn表示(4,29とか) | |
(column-number-mode t) | |
;; ファイル名補完で大文字小文字を区別しない | |
(setq completion-ignore-case t) | |
;; バックアップファイルを作らない | |
(setq make-backup-files nil) | |
;; ソースコードに色を付ける | |
(global-font-lock-mode t) | |
;; 起動時のメッセージを表示しない | |
(setq inhibit-startup-message t) | |
;; C-hでBSする | |
(global-set-key "\C-h" 'delete-backward-char) | |
;; ファイルを開くときにa.jでa.jsにマッチ | |
; (partial-completion-mode t) | |
;; カーソルの点滅を抑制 | |
(blink-cursor-mode 0) | |
;; リージョンをC-hで削除 | |
(delete-selection-mode 1) | |
;; kill-lineで行末の改行文字も削除 | |
(setq kill-whole-line t) | |
;; M-xでコマンドを入力するときに候補を表示する | |
(icomplete-mode nil) | |
;; M-x補完,高機能なやつ | |
(require 'mcomplete) | |
(turn-on-mcomplete-mode) | |
;; regionに色を付ける | |
(transient-mark-mode t) | |
;; C-x C-bでelectric-buffer-list | |
(define-key global-map "\C-x\C-b" 'electric-buffer-list) | |
(eval-after-load "ebuff-menu" | |
'(progn | |
(define-key | |
electric-buffer-menu-mode-map | |
"x" 'Buffer-menu-execute))) | |
;;カーソルを前回編集していた位置に戻す | |
(load "saveplace") | |
(setq-default save-place t) | |
;; find-fileするときにファイル名をハイライトして補完 | |
(setq hc-ctrl-x-c-is-completion t) | |
(require 'highlight-completion) | |
(highlight-completion-mode 1) | |
(global-set-key "\C-\\" 'toggle-input-method) | |
;; 補完してbuffer切替 | |
(iswitchb-mode 1) | |
;; 対応する括弧を光らせる | |
(show-paren-mode 1) | |
;; 画面チカチカさせない | |
(setq visible-bell nil) | |
(setq ring-bell-function 'ignore) | |
;;; status-barに時間表示 | |
(setq display-time-24hr-format t) | |
(setq display-time-day-and-date t) | |
(setq display-time-string-forms | |
'(month "/" day " " 24-hours ":" minutes " ")) | |
(display-time) | |
;;; カーソルがある行にアンダーラインを表示 | |
;;(global-hl-line-mode) | |
;;(setq hl-line-face 'underline) | |
;;(hl-line-mode 1) | |
;;; yes-noをy-nに置き換え | |
(fset 'yes-or-no-p 'y-or-n-p) | |
;; 画面外の文字は折り返しして表示 | |
(setq truncate-lines t) | |
(setq truncate-partial-width-windows nil) | |
;; Shebangがあるとき自動的にchmod +xする | |
(add-hook 'after-save-hook | |
'executable-make-buffer-file-executable-if-script-p) | |
;; スクロールバーを隠す | |
(scroll-bar-mode -1) | |
;; ツールバーを隠す | |
(tool-bar-mode 0) | |
;; 左右の余白消す | |
(fringe-mode 0) | |
;; C-mで改行してインデント | |
(global-set-key "\C-m" 'newline-and-indent) | |
;; yaml-mode | |
;; http://yaml-mode.clouder.jp/ | |
(autoload 'yaml-mode "yaml-mode" | |
"Mode for editing ruby source files" t) | |
(setq auto-mode-alist | |
(append '(("\\.yaml$" . yaml-mode)) auto-mode-alist)) | |
;; ruby-mode | |
;; http://www.ruby-lang.org/ja/ | |
(autoload 'ruby-mode "ruby-mode" | |
"Mode for editing ruby source files" t) | |
(setq auto-mode-alist | |
(append '(("\\.rb$" . ruby-mode)) auto-mode-alist)) | |
(setq interpreter-mode-alist (append '(("ruby" . ruby-mode)) | |
interpreter-mode-alist)) | |
(autoload 'run-ruby "inf-ruby" | |
"Run an inferior Ruby process") | |
(autoload 'inf-ruby-keys "inf-ruby" | |
"Set local key defs for inf-ruby in ruby-mode") | |
(add-hook 'ruby-mode-hook | |
'(lambda () | |
(inf-ruby-keys) | |
)) | |
(add-hook 'ruby-mode-hook | |
(lambda() | |
(require 'ruby-electric) | |
(ruby-electric-mode t) | |
)) | |
(autoload 'rubydb "rubydb3x" | |
"run rubydb on program file in buffer *gud-file*. | |
the directory containing file becomes the initial working directory | |
and source-file directory for your debugger." t) | |
(defun ruby-insert-magic-comment-if-needed () | |
"バッファのcoding-systemをもとにmagic commentをつける。" | |
(when (and (eq major-mode 'ruby-mode) | |
(find-multibyte-characters (point-min) (point-max) 1)) | |
(save-excursion | |
(goto-char 1) | |
(when (looking-at "^#!") | |
(forward-line 1)) | |
(if (re-search-forward "^#.+coding" (point-at-eol) t) | |
(delete-region (point-at-bol) (point-at-eol)) | |
(open-line 1)) | |
(let* ((coding-system (symbol-name buffer-file-coding-system)) | |
(encoding (cond ((string-match "japanese-iso-8bit\\|euc-j" coding-system) | |
"euc-jp") | |
((string-match "shift.jis\\|sjis\\|cp932" coding-system) | |
"shift_jis") | |
((string-match "utf-8" coding-system) | |
"utf-8")))) | |
(insert (format "# -*- coding: %s -*-" encoding)))))) | |
(add-hook 'before-save-hook 'ruby-insert-magic-comment-if-needed) | |
;; インデントをtermtter標準に | |
(setq ruby-deep-indent-paren-style nil) | |
;; auto-complete-mode | |
;; http://dev.ariel-networks.com/Members/matsuyama/auto-complete | |
(require 'auto-complete) | |
(global-auto-complete-mode t) | |
(define-key ac-complete-mode-map "\C-n" 'ac-next) | |
(define-key ac-complete-mode-map "\C-p" 'ac-previous) | |
(require 'ac-anything) | |
(define-key ac-complete-mode-map (kbd "C-;") 'ac-complete-with-anything) | |
(require 'anything-grep) | |
(require 'anything-project) | |
;; drill-instructor | |
;; (require 'drill-instructor) | |
;; (drill-instructor t) | |
(autoload 'save-current-configuration "revive" "Save status" t) | |
(autoload 'resume "revive" "Resume Emacs" t) | |
(autoload 'wipe "revive" "Wipe emacs" t) | |
(define-key ctl-x-map "R" 'resume) ;; C-x R で復元 | |
(define-key ctl-x-map "K" 'wipe) ;; C-x K で kill-emacs | |
;; (add-hook 'kill-emacs-hook 'save-current-configuration) ;; 終了時に保存 | |
;; set-perl5lib | |
;; 開いたスクリプトのパスに応じて、@INCにlibを追加してくれる | |
;; 以下からダウンロードする必要あり | |
;; http://svn.coderepos.org/share/lang/elisp/set-perl5lib/set-perl5lib.el | |
(require 'set-perl5lib) | |
(when nil | |
;; browse-kill-ring | |
(require 'browse-kill-ring) | |
(global-set-key (kbd "C-c k") 'browse-kill-ring) | |
) | |
;; Carbon Emacs用の設定 | |
(when t;;(featurep 'carbon-emacs-package) | |
(setq grep-find-use-xargs 'bsd) | |
(require 'carbon-font) | |
(defun font-size(size) | |
(fixed-width-set-fontset "osaka" size)) | |
(defun font-very-small() | |
(interactive) | |
(font-size 7)) | |
(defun font-small() | |
(interactive) | |
(font-size 10)) | |
(defun font-normal() | |
(interactive) | |
(font-size 12)) | |
(defun font-big() | |
(interactive) | |
(font-size 18)) | |
(defun font-very-big() | |
(interactive) | |
(font-size 24)) | |
;; フルスクリーン化 | |
;; (mac-toggle-max-window) | |
;; フルスクリーン時にメニューバーを表示する | |
;;(setq mac-autohide-menubar-on-maximize nil) | |
;; OSXの日本語入力メソッドを有効にする | |
;; (setq default-input-method "MacOSX") | |
;; optionキーをMetaキーとして利用 | |
(setq mac-option-modifier 'meta) | |
(setq mac-command-key-is-meta t) | |
(setq mac-command-modifier-meta t) | |
(setq grep-find-use-xargs 'bsd) | |
;; fullscreenのときメニューバー隠す | |
(setq mac-autohide-menubar-on-maximize t) | |
;; fullscreenの設定ここで | |
(add-hook 'window-setup-hook | |
(lambda () | |
(progn | |
;; (set-frame-parameter nil 'alpha 70) | |
;; (set-frame-parameter nil 'fullscreen nil) | |
;; (set-frame-parameter nil 'fullscreen 'fullboth) | |
;; (set-frame-parameter nil 'fullscreen 'fullwidth) | |
;; (set-frame-parameter nil 'fullscreen 'fullheight) | |
) | |
)) | |
;; moccur | |
;; elscreen | |
(load "elscreen" "ElScreen" t) | |
(require 'elscreen-server) | |
;; toggle | |
(defun my-toggle-frame-size () | |
(interactive) | |
(if (frame-parameter nil 'fullscreen) | |
(set-frame-parameter nil 'fullscreen nil) | |
(set-frame-parameter nil 'fullscreen 'fullboth) | |
(message "Full-screen changed") | |
)) | |
(global-set-key "\C-cm" 'my-toggle-frame-size) | |
;; migemo | |
(load "migemo.el") | |
(setq migemo-command "cmigemo") | |
(setq migemo-options '("-q" "--emacs" "-i" "¥a")) | |
(setq migemo-dictionary "/usr/local/share/migemo/euc-jp/migemo-dict") | |
(setq migemo-user-dictionary nil) | |
(setq migemo-regex-dictionary nil) | |
;; 複数の検索語や、特定のフェイスのみマッチ等の機能を有効にする | |
;; 詳細は http://www.bookshelf.jp/soft/meadow_50.html#SEC751 | |
(require 'color-moccur) | |
(setq dmoccur-exclusion-mask | |
(append '("\\~$" "\\.svn\\/\*" "\\.git\\/\*" "\\.pdf$") dmoccur-exclusion-mask)) | |
(setq moccur-split-word t) | |
;; migemoがrequireできる環境ならmigemoを使う | |
(when (require 'migemo nil t) ;第三引数がnon-nilだとloadできなかった場合にエラーではなくnilを返す | |
(setq moccur-use-migemo t)) | |
;;; skk用の設定 | |
(require 'skk-autoloads nil t) | |
(setq default-input-method "japanese-skk") | |
;;(require 'skk-autoloads) | |
(global-set-key "\C-j" 'skk-mode) | |
(global-set-key "\C-x\C-j" 'skk-mode) | |
;; 辞書ファイルから読む | |
;; (setq skk-large-jisyo "~/.emacs.d/etc/skk/SKK-JISYO.L") | |
;; 辞書サーバー | |
(setq skk-server-host "localhost") | |
(setq skk-server-portnum 1178) | |
(setq skk-jisyo-code 'utf-8-unix) | |
;; isearch時にSKKをオフ | |
(setq skk-isearch-start-mode 'latin) | |
;; 勝手に括弧閉じる | |
(setq-default skk-auto-insert-paren t) | |
;; 送り仮名の何か | |
(setq-default skk-process-okuri-early t) | |
;; 自動的に確定する | |
(setq-default skk-kakutei-when-unique-candidate t) | |
;; デフォルトで,と.を出す | |
(setq-default skk-kutouten-type 'en) | |
;; lookup | |
(setq-default skk-use-look t) | |
(setq-default skk-look-use-ispell t) | |
;; 変換候補インライン | |
(setq skk-show-inline t) | |
;; 日本語補完 | |
;; (setq skk-dcomp-activate t) | |
;; 変換候補インライン | |
(setq skk-show-inline t) | |
;;; コントロールキーをシステムに取られないようにする | |
(setq mac-pass-control-to-system nil) | |
(setq mac-pass-command-to-system nil) | |
(setq mac-pass-option-to-system nil) | |
;; emacs-serverを起動 | |
(server-start) | |
(setq server-use-tcp t) | |
;; C-x kで終了 | |
(add-hook 'server-switch-hook | |
(lambda () | |
(when (current-local-map) | |
(use-local-map (copy-keymap (current-local-map)))) | |
(local-set-key (kbd "C-x k") 'server-edit))) | |
;; Carbon Emacs用の設定終了 | |
) | |
(require 'cperl-mode) | |
;; cperl-modeを適用する | |
(setq auto-mode-alist | |
(append '(("\\.\\([pP][Llm]\\|t\\)$" . cperl-mode)) auto-mode-alist )) | |
;; インデントにタブを使わない | |
(add-hook 'cperl-mode-hook | |
'(lambda () | |
(setq indent-tabs-mode nil) | |
(setq cperl-close-paren-offset -4) | |
(setq cperl-continued-statement-offset 4) | |
(setq cperl-indent-level 4) | |
(setq cperl-indent-parens-as-block t) | |
(setq cperl-tab-always-indent t) | |
) | |
) | |
(setq-default indent-tabs-mode nil) | |
;; develock | |
(require 'develock nil t) | |
(plist-put develock-max-column-plist 'cperl-mode nil) | |
(setq develock-max-column-plist nil) | |
;; emacs終了時に確認メッセージを出す。 | |
;; 誤って終了してしまわないようにするため | |
;; ref: http://blog.livedoor.jp/techblog/archives/64599359.html | |
(defadvice save-buffers-kill-emacs | |
(before safe-save-buffers-kill-emacs activate) | |
"safe-save-buffers-kill-emacs" | |
(unless (y-or-n-p "Really exit emacs? ") | |
(keyboard-quit))) | |
(require 'anything-config) | |
;;; anything-c-moccurの設定 | |
(require 'anything-c-moccur) | |
(load "~/.emacs.d/site-lisp/find-file-anything.el") | |
;; カスタマイズ可能変数の設定(M-x customize-group anything-c-moccur でも設定可能) | |
(setq anything-c-moccur-anything-idle-delay 0.1 ;`anything-idle-delay' | |
anything-c-moccur-higligt-info-line-flag t ; `anything-c-moccur-dmoccur'などのコマンドでバッファの情報をハイライトする | |
anything-c-moccur-enable-auto-look-flag t ; 現在選択中の候補の位置を他のwindowに表示する | |
anything-c-moccur-enable-initial-pattern t | |
anything-c-moccur-enable-auto-look-flag t ; 選択中の候補を他のバッファにリアルタイムに表示する | |
) ; `anything-c-moccur-occur-by-moccur'の起動時にポイントの位置の単語を初期パターンにする | |
(setq anything-idle-delay 0) | |
(setq anything-quick-update t) | |
;;; キーバインドの割当(好みに合わせて設定してください) | |
(global-set-key (kbd "C-o") 'anything-c-moccur-occur-by-moccur) ;バッファ内検索 | |
(global-set-key (kbd "M-o") 'anything-c-moccur-buffer-list) ;moccur | |
(global-set-key (kbd "C-M-o") 'anything-c-moccur-dmoccur) ;ディレクトリ | |
(add-hook 'dired-mode-hook ;dired | |
'(lambda () | |
(local-set-key (kbd "O") 'anything-c-moccur-dired-do-moccur-by-moccur))) | |
;; rcodetools | |
(setq ri-ruby-script "/opt/local/bin/ri-emacs") | |
(require 'rcodetools) | |
(setq rct-find-tag-if-available nil) | |
(defun make-ruby-scratch-buffer () | |
(with-current-buffer (get-buffer-create "*ruby scratch*") | |
(ruby-mode) | |
(current-buffer))) | |
(defun ruby-scratch () | |
(interactive) | |
(pop-to-buffer (make-ruby-scratch-buffer))) | |
(defun ruby-mode-hook-rcodetools () | |
(define-key ruby-mode-map "\M-\C-i" 'rct-complete-symbol) | |
(define-key ruby-mode-map "\C-c\C-t" 'ruby-toggle-buffer) | |
(define-key ruby-mode-map "\C-c\C-d" 'xmp) | |
;(define-key ruby-mode-map "\C-c\C-f" 'rct-ri) | |
) | |
(add-hook 'ruby-mode-hook 'ruby-mode-hook-rcodetools) | |
(require 'anything-rcodetools) | |
;; Command to get all RI entries. | |
; (setq rct-get-all-methods-command "PAGER=cat fri -l") | |
(setq rct-get-all-methods-command "refe -l") | |
;; See docs | |
;(define-key anything-map "\C-e" 'anything-execute-persistent-action) | |
(global-set-key (kbd "C-;") 'anything) | |
(setq anything-sources (list anything-c-source-buffers | |
;anything-c-source-project | |
;anything-c-source-imenu | |
anything-c-source-bookmarks | |
;; anything-c-source-file-name-history | |
anything-c-source-files-in-current-dir | |
anything-c-source-projects-history | |
;; anything-c-source-mac-spotlight | |
nym:anything-find-file ;; cool!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
;;anything-c-source-complete-ruby-all | |
;;anything-c-source-occur-by-moccur | |
anything-c-source-recentf | |
;; anything-c-source-emacs-functions | |
;; anything-c-source-google-suggest | |
anything-c-source-emacs-commands | |
anything-c-source-locate | |
)) | |
(define-key anything-map "\C-p" 'anything-previous-line) | |
(define-key anything-map "\C-n" 'anything-next-line) | |
(define-key anything-map "\C-v" 'anything-next-page) | |
(define-key anything-map "\M-v" 'anything-previous-page) | |
(global-set-key (kbd "M-y") 'anything-show-kill-ring) | |
(setq anything-candidate-number-limit 100) ; 表示する最大候補数。デフォルトで 50 | |
(global-set-key (kbd "M-i") 'anything-imenu) | |
(require 'anything-dabbrev-expand) | |
(global-set-key "\M-/" 'anything-dabbrev-expand) | |
(define-key anything-dabbrev-map "\M-/" 'anything-dabbrev-find-all-buffers) | |
;; dabbrev時に、大文字・小文字を区別しない。 | |
(setq dabbrev-case-fold-search nil) | |
(require 'flymake) | |
;;;; flymake for ruby | |
(require 'flymake) | |
;; I don't like the default colors :) | |
(set-face-background 'flymake-errline "red4") | |
(set-face-background 'flymake-warnline "dark slate blue") | |
;; Invoke ruby with '-c' to get syntax checking | |
(defun flymake-ruby-init () | |
(let* ((temp-file (flymake-init-create-temp-buffer-copy | |
'flymake-create-temp-inplace)) | |
(local-file (file-relative-name | |
temp-file | |
(file-name-directory buffer-file-name)))) | |
(list "ruby" (list "-c" local-file)))) | |
(push '(".+\\.rb$" flymake-ruby-init) flymake-allowed-file-name-masks) | |
(push '("Rakefile$" flymake-ruby-init) flymake-allowed-file-name-masks) | |
(push '("^\\(.*\\):\\([0-9]+\\): \\(.*\\)$" 1 2 nil 3) flymake-err-line-patterns) | |
(add-hook | |
'ruby-mode-hook | |
'(lambda () | |
;; Don't want flymake mode for ruby regions in rhtml files | |
(if (not (null buffer-file-name)) (flymake-mode)))) | |
(when nil | |
(defun anything-execute-persistent-action () | |
"If a candidate was selected then perform the associated action without quitting anything." | |
(interactive) | |
(save-selected-window | |
(select-window (get-buffer-window anything-buffer)) | |
(select-window (setq minibuffer-scroll-window | |
(if (one-window-p t) (split-window) (next-window (selected-window) 1)))) | |
(let* ((anything-window (get-buffer-window anything-buffer)) | |
(selection (if anything-saved-sources | |
;; the action list is shown | |
anything-saved-selection | |
(anything-get-selection))) | |
(default-action (anything-get-action)) | |
(action (assoc-default 'persistent-action (anything-get-current-source)))) | |
(setq action (or action default-action)) | |
(if (and (listp action) | |
(not (functionp action))) ; lambda | |
;; select the default action | |
(setq action (cdar action))) | |
(set-window-dedicated-p anything-window t) | |
(unwind-protect | |
(and action selection (funcall action selection)) | |
(set-window-dedicated-p anything-window nil))))) | |
(define-key anything-map "\C-z" 'anything-execute-persistent-action) | |
) | |
(add-hook 'cperl-mode-hook (lambda () | |
(require 'perl-completion) | |
(perl-completion-mode t))) | |
(add-hook 'txt-mode-hook | |
'(lambda () | |
; 変更した箇所を目立たせる | |
(global-highlight-changes 'active) | |
; 保存時にローテート | |
(add-hook 'write-file-hooks 'highlight-changes-rotate-faces) | |
) | |
) | |
;; ignore C-z | |
;; (global-unset-key "\C-z") | |
;;; メモを取る | |
(defun my-autonamed-txt() | |
(interactive) | |
(find-file | |
(concat "~/co/dev/memo/" (format-time-string "%Y%m%d") (system-name) ".txt")) | |
) | |
(global-set-key (kbd "\C-cf") 'my-autonamed-txt) | |
;; recentf | |
(setq recentf-auto-cleanup 'never) | |
(recentf-mode 1) | |
(setq recentf-max-saved-items 100000) | |
;; which-func | |
(require 'which-func) | |
(which-func-mode t) | |
(setq which-func-modes (append which-func-modes '(ruby-mode javascript-mode))) | |
;; view-mode hjkl | |
(add-hook 'view-mode-hook | |
'(lambda() | |
(progn | |
(define-key view-mode-map "h" 'backward-char) | |
(define-key view-mode-map "j" 'next-line) | |
(define-key view-mode-map "k" 'previous-line) | |
(define-key view-mode-map "l" 'forward-char) | |
))) | |
;; jkでview-mode | |
(require 'key-chord) | |
(setq key-chord-two-keys-delay 0.04) | |
(key-chord-mode 1) | |
(key-chord-define-global "jk" 'view-mode) | |
;;battery | |
(display-battery-mode t) | |
;;setting reloader | |
(defun reload-el() | |
(interactive) | |
(load-file "~/.emacs.el")) | |
(setq auto-mode-alist | |
(append '(("\\.xhtml$" . html-mode)) auto-mode-alist)) | |
(setq auto-mode-alist | |
(append '(("\\.tt$" . html-mode)) auto-mode-alist)) | |
;; yank した文字列をハイライト表示 | |
(when window-system | |
(defadvice yank (after ys:highlight-string activate) | |
(let ((ol (make-overlay (mark t) (point)))) | |
(overlay-put ol 'face 'highlight) | |
(sit-for 0.5) | |
(delete-overlay ol))) | |
(defadvice yank-pop (after ys:highlight-string activate) | |
(when (eq last-command 'yank) | |
(let ((ol (make-overlay (mark t) (point)))) | |
(overlay-put ol 'face 'highlight) | |
(sit-for 0.5) | |
(delete-overlay ol))))) | |
(setq auto-mode-alist | |
(append '(("\\.tex$" . yatex-mode)) auto-mode-alist)) | |
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t) | |
(setq dvi2-command "open -a Preview" | |
tex-command "~/Library/TeXShop/bin/platex2pdf-utf8" | |
YaTeX-kanji-code 4) | |
(add-hook 'yatex-mode-hook'(lambda ()(setq auto-fill-function nil))) | |
(auto-compression-mode t) | |
;;outputz | |
(require 'outputz) | |
(setq outputz-key "XXXXXXXXXXXXXXXX") ;; 復活の呪文 | |
(setq outputz-uri "http://emacs.com/%s") ;; 適当なURL。%sにmajor-modeの名前が入るので、major-modeごとのURLで投稿できます。 | |
(global-outputz-mode t) | |
(defun outputz-buffers () | |
(dolist (buf (buffer-list)) | |
(with-current-buffer buf | |
(outputz)))) | |
(run-with-idle-timer 3 t 'outputz-buffers) | |
(remove-hook 'after-save-hook 'outputz) | |
(require 'egg) | |
;;カーソル位置にverb出す | |
(defun my-insert-verb() | |
(interactive) | |
(insert "\\verb||") | |
(backward-char) | |
) | |
(global-set-key "\C-c\C-v" 'my-insert-verb) | |
;;カーソル位置にref出す | |
(defun my-insert-ref() | |
(interactive) | |
(insert "\\ref{}") | |
(backward-char) | |
) | |
(global-set-key "\C-c\C-r" 'my-insert-ref) | |
;;カーソル位置にoverline出す | |
(defun my-insert-overline() | |
(interactive) | |
(insert "\\overline{}") | |
(backward-char) | |
) | |
(global-set-key "\C-c\C-o" 'my-insert-overline) | |
(require 'auto-save-buffers-enhanced) | |
(auto-save-buffers-enhanced-include-only-checkout-path nil) | |
(auto-save-buffers-enhanced t) | |
(require 'install-elisp) | |
(setq install-elisp-repository-directory "~/.emacs.d/site-lisp/") | |
(global-set-key "\C-x\C-r" 'revert-buffer) | |
;;js2-mode | |
(setq-default c-basic-offset 4) | |
(autoload 'js2-mode "js2" nil t) | |
(add-to-list 'auto-mode-alist '("\\.js$" . js2-mode)) | |
(add-hook 'js2-mode-hook | |
'(lambda () | |
(setq js2-cleanup-whitespace nil | |
js2-mirror-mode nil | |
js2-bounce-indent-flag t) | |
(defun indent-and-back-to-indentation () | |
(interactive) | |
(indent-for-tab-command) | |
(let ((point-of-indentation | |
(save-excursion | |
(back-to-indentation) | |
(point)))) | |
(skip-chars-forward "\s " point-of-indentation))) | |
(define-key js2-mode-map "\C-i" 'indent-and-back-to-indentation) | |
(define-key js2-mode-map "\C-m" nil) | |
)) | |
;; 深夜に古いbuffer消す | |
(require 'midnight) | |
;; tramp | |
(require 'tramp) | |
(setq tramp-default-method "ssh") | |
;; scala-mode | |
(add-hook 'scala-mode-hook | |
'(lambda () | |
(yas/minor-mode-on) | |
)) | |
;==================================== | |
; セッション | |
;==================================== | |
; なんか動いてない気がする | |
;Emacsを終了してもファイルを編集してた位置や | |
;minibuffer への入力内容を覚えててくれます。 | |
(when (require 'session nil t) | |
(setq session-initialize '(de-saveplace session keys menus places) | |
session-globals-include '((kill-ring 50) | |
(session-file-alist 500 t) | |
(file-name-history 10000))) | |
;; これがないと file-name-history に500個保存する前に max-string に達する | |
(setq session-globals-max-string 100000000) | |
) | |
(require 'actionscript-mode) | |
(setq auto-mode-alist | |
(append '(("\\.as$" . actionscript-mode)) | |
auto-mode-alist)) | |
(autoload 'wl "wl" "Wanderlust" t) | |
(autoload 'wl-other-frame "wl" "Wanderlust on new frame." t) | |
(autoload 'wl-draft "wl-draft" "Write draft with Wanderlust." t) | |
;;moz-plus | |
(autoload 'run-mozilla "moz" "run inferior moz" t) | |
(add-hook 'inferior-moz-mode-hook (lambda () | |
(require 'moz-plus) | |
(moz-plus 1) | |
)) | |
(defun anything-find-file () | |
(interactive) | |
(anything-other-buffer 'nym:anything-find-file "*anything find-file*")) | |
(global-set-key (kbd "M-p") 'anything-project) | |
;; 勝手にrevertする | |
(global-auto-revert-mode t) | |
;; ↓こいつをnon-nilにしておくと、vcsによる変更もチェックしてくれる | |
(setq auto-revert-check-vc-info t) | |
;; こちらは変更する必要ないけど、早いほうがいいので1とかしてみた | |
(setq auto-revert-interval 1) | |
(add-hook 'find-file-hook | |
'(lambda () | |
(when | |
(and buffer-file-name | |
(vc-backend buffer-file-name)) | |
(auto-revert-mode)))) | |
;; smartchr | |
(require 'smartchr) | |
(global-set-key (kbd "=") (smartchr '(" = " "=" " == " " \!= " " <= " " < " " >= " " > " "="))) | |
(global-set-key (kbd "{") (smartchr '("{ `!!' }" "{"))) | |
(global-set-key (kbd ">") (smartchr '(">" " => " " => '`!!''" " => \"`!!'\""))) | |
(global-set-key (kbd "F") (smartchr '("F" "$" "$_" "$_->" "@$"))) | |
(define-key cperl-mode-map (kbd "M") (smartchr '("M" "my $`!!' = " "my ($self, $`!!') = @_;" "my @`!!' = "))) | |
(define-key cperl-mode-map (kbd "D") (smartchr '("D" "use Data::Dumper; warn Dumper `!!';"))) | |
(add-hook 'ruby-mode-hook | |
'(lambda () | |
(define-key ruby-mode-map (kbd "P") (smartchr '("P" "require pp; pp "))) | |
)) | |
;;; マイ.emacs探訪 - I am Cruby! http://d.hatena.ne.jp/authorNari/20091225/1261667956 | |
(defadvice iswitchb-exhibit | |
(after | |
iswitchb-exhibit-with-display-buffer | |
activate) | |
"選択している buffer を window に表示してみる。" | |
(when (and | |
(eq iswitchb-method iswitchb-default-method) | |
iswitchb-matches) | |
(select-window | |
(get-buffer-window (cadr (buffer-list)))) | |
(let ((iswitchb-method 'samewindow)) | |
(iswitchb-visit-buffer | |
(get-buffer (car iswitchb-matches)))) | |
(select-window (minibuffer-window)))) | |
;;<1>をディレクトリ名にする | |
(require 'uniquify) | |
(setq uniquify-buffer-name-style 'post-forward-angle-brackets) | |
(setq uniquify-min-dir-content 1) | |
;;C-Fで右のバッファ | |
(setq windmove-wrap-around t) | |
(define-key global-map [(C shift n)] 'windmove-down) | |
(define-key global-map [(C shift p)] 'windmove-up) | |
(define-key global-map [(C shift b)] 'windmove-left) | |
(define-key global-map [(C shift f)] 'windmove-right) | |
;; dmacro | |
;; http://pitecan.com/DynamicMacro/ | |
(defconst *dmacro-key* "\C-t" "dmacro-key") | |
(global-set-key *dmacro-key* 'dmacro-exec) | |
(autoload 'dmacro-exec "dmacro" nil t) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment