Skip to content

Instantly share code, notes, and snippets.

@nna774
Created June 14, 2013 16:58
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nna774/5783541 to your computer and use it in GitHub Desktop.
Save nna774/5783541 to your computer and use it in GitHub Desktop.
(setq load-path (cons "~/.emacs.d/elisp" load-path))
(setq load-path (cons "~/.emacs.d/vendor" load-path))
(setq load-path (cons "~/.emacs.d/config" load-path))
(setq load-path (cons "~/.emacs.d/vendor/slime" load-path))
(require 'cl)
;;; フォントサイズ変更 いいのかなこれ
(set-face-font 'default "-unknown-Ubuntu Mono-normal-normal-normal-*-16-*-*-*-m-0-iso10646-1")
;;; No tool-bar
(tool-bar-mode -1)
;;; No menu-bar
(menu-bar-mode -1)
;;; No backup
(setq make-backup-files nil)
;;; 行間ぜろ
(setq-default line-spacing 0)
;;; No scroll-bar
(set-scroll-bar-mode nil)
;;; タイトルバーにファイルのフルパス表示
(setq frame-title-format
(format "%%f - Emacs@%s" (system-name)))
;;; 行番号表示
(global-linum-mode t)
(set-face-attribute 'linum nil
:foreground "#800"
:height 0.9)
;; ; 行番号フォーマット
(setq linum-format "%4d")
;;; スタートページ無し
(setq inhibit-startup-message t)
;;; use tab
(setq-default indent-tabs-mode t)
;;; yes no -> y,no
(fset 'yes-or-no-p 'y-or-n-p)
;;; 最近使ったファイルをメニューに表示
(recentf-mode t)
;; ; 最近使ったファイルの表示数
(setq recentf-max-menu-items 10)
;; ; 最近開いたファイルの保存数を増やす
(setq recentf-max-saved-items 3000)
;;; ミニバッファの履歴を保存する
(savehist-mode 1)
;; ; ミニバッファの履歴の保存数を増やす
(setq history-length 3000)
;;; show column-number
(column-number-mode t)
;;; scratchの初期メッセージ消去
;(setq initial-scratch-message "")
;;; C-Ret で矩形選択
;; 詳しいキーバインド操作:http://dev.ariel-networks.com/articles/emacs/part5/
(cua-mode t)
(setq cua-enable-cua-keys nil)
;;; スクラッチバッファを安心して利用できるようにする拡張をつくった [http://d.hatena.ne.jp/kitokitoki/20100612/p1]
(require 'scratch-log)
;; (setq sl-scratch-log-file "~/.emacs.d/.scratch-log")
;; (setq sl-prev-scratch-string-file "~/.emacs.d/.scratch-log-prev")
;; nil なら emacs 起動時に,最後に終了したときの スクラッチバッファの内容を復元しない。初期値は t です。
;; (setq sl-restore-scratch-p nil)
;; nil なら スクラッチバッファを削除できるままにする。初期値は t です。
;; (setq sl-prohibit-kill-scratch-buffer-p nil)
;;;
;;; C-hでバックスペース
(keyboard-translate ?\C-h ?\C-?)
;;; 画像ファイルを表示
(auto-image-file-mode t)
;;; 対応する括弧を光らせる
(show-paren-mode t)
(setq show-paren-style 'mixed)
;;; 現在行を目立たせる
(global-hl-line-mode)
;;; カーソルの場所を保存する
(require 'saveplace)
(setq-default save-place t)
;;; 行の先頭でC-kを一回押すだけで行全体を消去する
(setq kill-whole-line t)
;;; 補完可能なものを随時表示
;;; 少しうるさい
(icomplete-mode 1)
;;; gzファイルも編集できるようにする
(auto-compression-mode t)
;;; auto spell check
(setq-default flyspell-mode t)
(setq ispell-dictionary "american")
;; shell-modeでpasswordを隠す
(add-hook 'comint-output-filter-functions 'comint-watch-for-password-prompt)
;;; auto-insert
;; ファイル形式に応じて自動でテンプレート挿入
(add-hook 'find-file-hooks 'auto-insert)
(setq auto-insert-directory "~/.emacs.d/templates")
;; (setq auto-insert-alist
;; '((perl-mode . "perl-template.pl")
;; (html-mode . "html-template.html")
;; ("base.css" . "base.css")
;; (css-mode . "css-template.css")))
;;; バッファ一覧をまともに
(global-set-key "\C-x\C-b" 'bs-show)
;;; ファイル名が重複していたらディレクトリ名を追加する。
(require 'uniquify)
(setq uniquify-buffer-name-style 'post-forward-angle-brackets)
;;; ファイルの先頭に#!...があるファイルを保存すると実行権をつけます。
(add-hook 'after-save-hook
'executable-make-buffer-file-executable-if-script-p)
;;; ウィンドウの上部に現在の関数名を表示します。
(which-function-mode t)
;;; 自動でスペルチェックを実行します。
(setq-default flyspell-mode t)
(setq ispell-dictionary "american")
;;; Tab でインデントする
(setq indent-tabs-mode t)
;;; redo [by redo+.el]
(require 'redo+)
(define-key global-map (kbd "M-_") 'redo)
;;; elファイルをいじって保存したときに自動でバイトコンパイル [by auto-async-byte-compile.el]
(require 'auto-async-byte-compile)
;;(setq auto-async-byte-compile-exclude-files-regexp "init.el")
(add-hook 'emacs-lisp-mode-hook 'enable-auto-async-byte-compile-mode)
;;; 対応する括弧の自動補完
(global-set-key (kbd "(") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "{") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "[") 'skeleton-pair-insert-maybe)
(global-set-key (kbd "\"") 'skeleton-pair-insert-maybe)
;;(global-set-key (kbd "'") 'skeleton-pair-insert-maybe)
(setq skeleton-pair t)
;;; 一発で終了するのやめよう
(defun my-save-buffers-kill-emacs ()
(interactive)
(if (y-or-n-p "quit emacs? ")
(save-buffers-kill-emacs)))
(global-set-key "\C-x\C-c" 'my-save-buffers-kill-emacs)
;; ;;; 入れ替える
;; (defun swap-screen()
;; "Swap two screen,leaving cursor at current window."
;; (interactive)
;; (let ((thiswin (selected-window))
;; (nextbuf (window-buffer (next-window))))
;; (set-window-buffer (next-window) (window-buffer))
;; (set-window-buffer thiswin nextbuf)))
;; (defun swap-screen-with-cursor()
;; "Swap two screen,with cursor in same buffer."
;; (interactive)
;; (let ((thiswin (selected-window))
;; (thisbuf (window-buffer)))
;; (other-window 1)
;; (set-window-buffer thiswin (window-buffer))
;; (set-window-buffer (selected-window) thisbuf)))
;; (global-set-key [f2] 'swap-screen-with-cursor)
;; ;(global-set-key [S-f2] 'swap-screen)
;;; C-> で -> を挿入
(global-set-key (kbd "C->") '(lambda () (interactive)(insert " -> ")))
(global-set-key (kbd "C-<") '(lambda () (interactive)(insert " <- ")))
;;; post-region
(defun post-on-region ()
(interactive)
(let ((str (buffer-substring (region-beginning) (region-end))))
(keyboard-escape-quit)
(if (y-or-n-p "Post?")
(start-process "ttytter" "*post*" "ttytter" "-silent" "-autosplit=cut" (concat "-status=" str))
nil
)
)
)
;(defalias 'p2t 'post-on-region)
(global-set-key (kbd "M-p") 'post-on-region)
;;; ---------------------------------------;;;
;;; ProofGeneral
(setq load-path (cons "~/.emacs.d/vendor/ProofGeneral-4.2/generic/" load-path))
(require 'proof-site)
;(load-file "~/.emacs.d/vendor/ProofGeneral-4.2/generic/proof-site.el")
;;; magit
(setq load-path (cons "~/.emacs.d/vendor/magit/share/emacs/site-lisp/" load-path))
(require 'magit)
;;; w3m
(require 'w3m-load)
(setq browse-url-browser-function 'w3m-browse-url)
;;; shell-command
(define-key global-map "\M-s" 'shell-command)
;;; 最終行に改行
(setq require-final-newline t)
;(partial-completion-mode t)
;; M-x shell での ls 等の color での表示のための設定
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
(add-hook 'lisp-mode-hook (lambda () (auto-complete-mode t)))
;;; install-elisp
;; まず、install-elisp のコマンドを使える様にします。
(require 'install-elisp)
;; 次に、Elisp ファイルをインストールする場所を指定します。
(setq install-elisp-repository-directory "~/.emacs.d/elisp/")
;;; auto-complete
;(require 'auto-complete)
;(global-auto-complete-mode t)
(add-to-list 'load-path "/home/nona/.emacs.d/elisp/auto-complete/")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "/home/nona/.emacs.d/elisp/auto-complete/ac-dict")
(setq ac-ignore-case t)
(ac-config-default)
(define-key ac-complete-mode-map "\C-n" 'ac-next)
(define-key ac-complete-mode-map "\C-p" 'ac-previous)
;(el-get 'sync '(auto-complete))
;;; windmove // Alt+上下キーwindow移動
(windmove-default-keybindings 'meta)
;; その際循環して動く
(setq windmove-wrap-around t)
;; ;;; commentout
;; (global-set-key (kbd "C-c ;") 'comment-or-uncomment-region)
;;; comment
(setq comment-style 'multi-line)
;;;
(require 'hiwin)
(hiwin-mode)
(setq hiwin-readonly-color "#eeeeaa")
(setq hiwin-deactive-color "#aaaa99") ;#330099
(set-face-background 'hiwin-face hiwin-deactive-color)
;;; スペースと改行の強調表示 --
(global-whitespace-mode 1)
;; スペースの定義は全角スペースとする。
(setq whitespace-space-regexp "\x3000+")
;; 改行の色を変更
(set-face-foreground 'whitespace-newline "gray40")
;; 半角スペースと改行を除外
(dolist (d '((space-mark ?\ ) (newline-mark ?\n)))
;(dolist (d '((space-mark ?\ )))
(setq whitespace-display-mappings
(delete-if
'(lambda (e) (and (eq (car d) (car e))
(eq (cadr d) (cadr e))))
whitespace-display-mappings)))
;; 全角スペースと改行を追加
(dolist (e '((space-mark ?\x3000 [?\□])
(newline-mark ?\n [?\u21B5 ?\n] [?$ ?\n])))
(add-to-list 'whitespace-display-mappings e))
;; 強調したくない要素を削除
(dolist (d '(face lines space-before-tab
indentation empty space-after-tab tab-mark))
(setq whitespace-style (delq d whitespace-style)))
;; スペースと改行の強調表示 -- ここまで
;; バイトコンパイル用
(defun byte-compile-this-file ()
"Compile current-buffer-file of Lisp into a file of byte code."
(interactive)
(byte-compile-file buffer-file-name t))
;;; install-elisp
(require 'auto-install)
(setq auto-install-directory "~/.emacs.d/elisp/")
(auto-install-update-emacswiki-package-name t)
(auto-install-compatibility-setup)
;;; Anything
(require 'anything)
(require 'anything-config)
(add-to-list 'anything-sources 'anything-c-source-emacs-commands)
(define-key global-map (kbd "C-;") 'anything)
(add-to-list 'anything-sources 'anything-c-source-google-suggest)
;;; Auto-save
(require 'auto-save-buffers)
(run-with-idle-timer 0.5 t 'auto-save-buffers)
;;; >> 突然の死 <<
(require 'sudden-death)
;;; c++-mode
(add-hook 'c-mode-common-hook
'(lambda ()
(c-set-style "bsd")
;; (local-set-key "\t" 'self-insert-command)
(setq c-basic-offset 4)
(setq indent-tabs-mode t)
(subword-mode 1)
(setq tab-stop-list '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60))
;; (local-set-key (kbd "(") 'skeleton-pair-insert-maybe)
;; (local-set-key (kbd "{") 'skeleton-pair-insert-maybe)
;; (local-set-key (kbd "[") 'skeleton-pair-insert-maybe)
;; (local-set-key (kbd "\"") 'skeleton-pair-insert-maybe)
;; (local-set-key (kbd "'") 'skeleton-pair-insert-maybe)
(setq skeleton-pair t)
(setq comment-style 'multi-line)
)
)
;;; markdown-mode
(require 'markdown-mode)
(add-hook
'emacs-lisp-mode-hook
'(lambda ()
(setq indent-tabs-mode t)
(setq skeleton-pair t)
)
)
(setq tab-stop-list '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60))
(setq auto-mode-alist
(cons '("\\.mk?d$" . markdown-mode) auto-mode-alist)
)
(add-hook 'markdown-mode-hook 'flyspell-mode)
;;;SLIME
;;UbuntuでSLIMEをインストールした場合、ここにインストールされる「/usr/share/emacs/site-lisp/slime」
;(setq load-path (cons (expand-file-name "/usr/share/emacs/site-lisp/slime") load-path))
(setq inferior-lisp-program "sbcl") ; sbcl用
(require 'slime)
(slime-setup)
;;; LaTeX mode
(add-hook 'latex-mode-hook '(lambda () (auto-complete-mode t)))
(require 'auto-complete-latex)
;; ghc-mod
;; cabal でインストールしたライブラリのコマンドが格納されている bin ディレクトリへのパスを exec-path に追加する
(add-to-list 'exec-path (concat (getenv "HOME") "/.cabal/bin"))
;; ghc-flymake.el などがあるディレクトリ ghc-mod を ~/.emacs.d 以下で管理することにした
(add-to-list 'load-path "~/.emacs.d/elisp/ghc-mod")
(require 'auto-complete-haskell)
;;; haskell-mode
(add-to-list 'load-path "~/.emacs.d/elisp/haskell-mode-2.8.0")
(require 'haskell-mode)
(require 'haskell-cabal)
(add-to-list 'auto-mode-alist '("\\.hs$" . haskell-mode))
(add-to-list 'auto-mode-alist '("\\.lhs$" . literate-haskell-mode))
(add-to-list 'auto-mode-alist '("\\.cabal$" . haskell-cabal-mode))
(add-hook 'haskell-mode-hook 'turn-on-haskell-indent)
(load "haskell-site-file")
;(require 'haskell-site-file)
(add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode)
(add-hook 'haskell-mode-hook 'turn-on-haskell-indent)
(add-hook 'haskell-mode-hook 'font-lock-mode)
(add-hook 'haskell-mode-hook 'imenu-add-menubar-index)
(add-hook 'haskell-mode-hook '(lambda () (defvar haskell-ghci-command "main")))
(autoload 'ghc-init "ghc" nil t)
(add-hook 'haskell-mode-hook
(lambda ()
(ghc-init)
(flymake-mode)
(local-set-key "\C-j" (lambda () (interactive)(insert " -> ")))
(local-set-key "\M-j" (lambda () (interactive)(insert " => ")))
(local-set-key "\M-l" (lambda ()(interactive)(insert " <- ")))
(defun ghc-flymake-display-errors-to-minibuffer ()
(if (not (ghc-flymake-have-errs-p))
(message "No errors or warnings")
(let ((title (ghc-flymake-err-title))
(errs (ghc-flymake-err-list)))
(message "%s\n\n%s\n\n" title
(mapconcat (lambda (x) (replace-regexp-in-string "\0" "\n" x)) errs "\n")))))
;; M-nで次のエラーに飛ぶと同時にミニバッファにエラー内容を表示
(define-key haskell-mode-map ghc-next-key
'(lambda ()
(interactive)
(flymake-goto-next-error)
(ghc-flymake-display-errors-to-minibuffer)))
;; M-pで前のエラーに飛ぶと同時にミニバッファにエラー内容を表示
(define-key haskell-mode-map ghc-previous-key
'(lambda ()
(interactive)
(flymake-goto-prev-error)
(ghc-flymake-display-errors-to-minibuffer)))
))
;;; twittering-mode
(require 'twittering-mode)
;(setq twittering-use-master-password t)
;; パスワード暗号ファイル保存先変更 (デフォはホームディレクトリ)
(setq twittering-private-info-file "~/.emacs.d/twittering-mode.gpg")
;; 表示する書式 区切り線いれたら見やすい
(setq twittering-status-format "%i @%s %S %p: %T [%@]%r %R %f%Ln -------------------------------------------")
;(setq twittering-status-format "%i @%s %S %p: n %T [%@]%r %R %f%Ln -------------------------------------------")
;; アイコンを表示する
(setq twittering-icon-mode t)
;; アイコンサイズを変更する *48以外を希望する場合 要 imagemagickコマンド
;(setq twittering-convert-fix-size 40)
;; 更新の頻度(秒)
(setq twittering-timer-interval 40)
;; ツイート取得数
(setq twittering-number-of-tweets-on-retrieval 200)
;; o で次のURLをブラウザでオープン
(add-hook 'twittering-mode-hook
(lambda ()
(local-set-key (kbd "o")
(lambda ()
(interactive)
(twittering-goto-next-uri)
(execute-kbd-macro (kbd "C-m"))
))))
(setq twittering-account-authorization 'authorized)
(setq twittering-oauth-access-token-alist
'(("oauth_token" . "122305557-ctbORH1IDu8vzosSaU49gaixfFhigNcwShXf2UNU")
("oauth_token_secret" . "E2NHUeIghZ6K3zebvwThE8xqmX5zmpbODzwCpyPFU")
("user_id" . "122305557")
("screen_name" . "nonamea774"))
)
;;; print
(require 'ps-mule)
(setq ps-paper-type 'a4 ;paper size
ps-lpr-command "lpr"
ps-lpr-switches '("-o Duplex=DuplexNoTumble")
ps-printer-name "hogehoge" ; your printer name
ps-multibyte-buffer 'non-latin-printer ;for printing Japanese
ps-n-up-printing 2 ;print n-page per 1 paper
;; Margin
ps-left-margin 20
ps-right-margin 20
ps-top-margin 20
ps-bottom-margin 20
ps-n-up-margin 20
;; Header/Footer setup
ps-print-header t ;buffer name, page number, etc.
ps-print-footer nil ;page number
;; font
ps-font-size '(9 . 10)
ps-header-font-size '(10 . 12)
ps-header-title-font-size '(12 . 14)
ps-header-font-family 'Helvetica ;default
ps-line-number-font "Times-Italic" ;default
ps-line-number-font-size 6
;; line-number
ps-line-number t ; t:print line number
ps-line-number-start 1
ps-line-number-step 1
)
;;; Server-mode
(require 'server)
(unless (server-running-p)
(server-start))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment