Skip to content

Instantly share code, notes, and snippets.

@brtriver
Last active August 29, 2015 14:27
Show Gist options
  • Save brtriver/48b2cb65a314221f1216 to your computer and use it in GitHub Desktop.
Save brtriver/48b2cb65a314221f1216 to your computer and use it in GitHub Desktop.
;; 日本語IM用の設定
(setq default-input-method "MacOSX")
;; 日本語の設定(UTF-8)
(set-language-environment 'Japanese)
(prefer-coding-system 'utf-8)
;; load path
(setq load-path
(append
(list
(expand-file-name "~/.emacs.d/elisp")
)
load-path))
;; package management
(require 'package)
;; Add package-archives
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
;; Initialize
(package-initialize)
;; CommandとOptionを入れ替える
(setq ns-command-modifier (quote meta))
(setq ns-alternate-modifier (quote super))
;; ミニバッファ履歴リストの最大長:tなら無限
(setq history-length t)
;; session.el
;; kill-ringやミニバッファで過去に開いたファイルなどの履歴を保存する
(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)))
(add-hook 'after-init-hook 'session-initialize)
;; 前回閉じたときの位置にカーソルを復帰
(setq session-undo-check -1))
;; minibuf-isearch
;; minibufでisearchを使えるようにする
(require 'minibuf-isearch nil t)
;; php-mode
(require 'php-mode)
(require 'php-extras)
(add-to-list 'auto-mode-alist '("\\.php$" . php-mode))
(setq php-mode-force-pear t) ;PEAR規約のインデント設定にする
(add-hook 'php-mode-hook 'php-enable-psr2-coding-style)
;;mode
(add-to-list 'auto-mode-alist '("\\.js\\'" . js3-mode))
(add-to-list 'auto-mode-alist '("\\.[sj]?html?\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.twig\\'" . twig-mode))
;; 日本語IM用の設定
(setq default-input-method "MacOSX")
;; 日本語の設定(UTF-8)
(set-language-environment 'Japanese)
(prefer-coding-system 'utf-8)
;; load path
(setq load-path
(append
(list
(expand-file-name "~/.emacs.d/elisp")
)
load-path))
;; add path for brew install
(let ((default-directory "/usr/local/share/emacs/site-lisp/"))
(normal-top-level-add-subdirs-to-load-path))
;; package management
(require 'package)
;; Add package-archives
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
;; Initialize
(package-initialize)
;; anything
(require 'anything)
(require 'anything-config)
(setq anything-sources (list anything-c-source-buffers
anything-c-source-bookmarks
anything-c-source-recentf
anything-c-source-file-name-history
anything-c-source-locate))
(define-key anything-map (kbd "C-p") 'anything-previous-line)
(define-key anything-map (kbd "C-n") 'anything-next-line)
(define-key anything-map (kbd "C-v") 'anything-next-source)
(define-key anything-map (kbd "M-v") 'anything-previous-source)
(global-set-key (kbd "C-;") 'anything)
;; coffee
(require 'coffee-mode)
;; for window system
(if window-system
    (progn
      (set-frame-parameter nil 'alpha 80)))
(tool-bar-mode -1)
(setq inhibit-startup-message t)
(keyboard-translate ?\C-h ?\C-?)
(global-set-key "\C-h" nil)
(setq mac-command-key-is-meta t)
(setq ns-command-modifier (quote meta))
(setq ns-alternate-modifier (quote super))
;;画面最大化
(setq ns-use-native-fullscreen nil)
;; バックアップフィアルを作らないようにする
;; for backup files
(setq backup-inhibited t)
(setq delete-auto-save-files t)
(setq auto-save-default nil)
(setq auto-save-list-file-name nil)
(setq auto-save-list-file-prefix nil)
(setq make-backup-files nil)
(global-set-key "\C-x\C-b" 'buffer-menu)
(setq-default transient-mark-mode t)
;; php-mode
(require 'php-mode)
(require 'php-extras)
(add-to-list 'auto-mode-alist '("\\.php$" . php-mode))
;; C-p で PHPのsyntax error チェック
(global-set-key "\C-xp" 'flymake-php-load)
;; php-mode-hook
(setq php-mode-force-pear t) ;PEAR規約のインデント設定にする
(add-hook 'php-mode-hook 'php-enable-psr2-coding-style)
;; for javascript
(autoload 'js-mode "js")
(autoload 'ansi-color-for-comint-mode-on "ansi-color"
          "Set `ansi-color-for-comint-mode' to t." t)
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
;; toggle tab-shift
(defun change-shift-tab (tw)
"toggle shift tab format."
(interactive "P")
(message "Change Shift-Tab: width is %d" tw)
(if indent-tabs-mode
      (setq indent-tabs-mode nil)
    (setq indent-tabs-mode t))
(setq tab-width (prefix-numeric-value tw))
(setq c-basic-offset (prefix-numeric-value tw)))
;; C-u 4 C-c o
(global-set-key "\C-co" 'change-shift-tab)
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
;; '(session-use-package t nil (session))
'(tab-width 4))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)
;;   kill-ringやミニバッファで過去に開いたファイルなどの履歴を保存する
(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)))
(add-hook 'after-init-hook 'session-initialize)
(setq session-undo-check -1))
;; minibuf-isearch
;;   minibufでisearchを使えるようにする
(setq minibuf-isearch-use-migemo nil)
;;(require 'minibuf-isearch nil t)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 編集行を目立たせる(現在行をハイライト表示する)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defface hlline-face
'((((class color)
(background dark))
(:background "gray15" :underline "gray34"))
(((class color)
(background light))
(:background "ForestGreen"))
(t
()))
"*Face used by hl-line.")
(setq hl-line-face 'hlline-face)
;; (setq hl-line-face 'underline) ; 下線
(global-hl-line-mode)
;; title display
(setq frame-title-format (format "%%f - Emacs@%s" (system-name)))
;; folding
;;(autoload 'folding-mode "folding" "folding-mode" t)
;; C-@ C-f : 選択範囲にfoldingのためのコメントを追加
;; C-@ C-q : toggle folding
;; C-@ C-o : open all folding
;; C-@ C-w : cloase all folding
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; moccur
;;(load "moccur")
(load "color-moccur")
;; M-x moccur-grep-find => ファイル指定 => rで編集 => C-x C-sで保存
;; 検索結果でC-c C-cすれば別画面にファイルを表示
;; for mmm
;;;(require 'mmm-mode)
(setq mmm-global-mode 'maybe)
;;(set-face-background 'mmm-default-submode-face nil)
;; set up an mmm group for fancy html editing
;; (mmm-add-group
;;  'fancy-html
;;  '(
;;          (html-php-tagged
;;                 :submode php-mode
;;                 :face mmm-code-submode-face
;;                 :front "<[?]php"
;;                 :back "[?]>")
;;          (html-css-attribute
;;                 :submode css-mode
;;                 :face mmm-declaration-submode-face
;;                 :front "styleREMOVEME=\""
;;                 :back "\"")))
;; What files to invoke the new html-mode for?
(add-to-list 'auto-mode-alist '("\\.inc\\'" . html-mode))
(add-to-list 'auto-mode-alist '("\\.phtml\\'" . html-mode))
(add-to-list 'auto-mode-alist '("\\.php[34]?\\'" . php-mode))
(add-to-list 'auto-mode-alist '("\\.[sj]?html?\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.jsp\\'" . html-mode))
(add-to-list 'auto-mode-alist '("\\.js\\'" . js3-mode))
(add-to-list 'auto-mode-alist '("\\.twig\\'" . twig-mode))
;; What features should be turned on in this html-mode?
;; (add-to-list 'mmm-mode-ext-classes-alist '(html-mode nil html-js))
;; (add-to-list 'mmm-mode-ext-classes-alist '(html-mode nil embedded-css))
;; (add-to-list 'mmm-mode-ext-classes-alist '(html-mode nil fancy-html))
;; font
;; フォントセットを作る
(let* ((fontset-name "myfonts") ; フォントセットの名前
;;       (size 10) ; ASCIIフォントのサイズ [9/10/12/14/15/17/19/20/...]
       (size 12)
;;       (size 13.5)
;;       (size 17)
;;       (size 20)
(asciifont "ricty") ; ASCIIフォント
(jpfont "ricty") ; 日本語フォント
(font (format "%s-%d:weight=normal:slant=normal" asciifont size))
(fontspec (font-spec :family asciifont))
(jp-fontspec (font-spec :family jpfont))
(fsn (create-fontset-from-ascii-font font nil fontset-name)))
(set-fontset-font fsn 'japanese-jisx0213.2004-1 jp-fontspec)
(set-fontset-font fsn 'japanese-jisx0213-2 jp-fontspec)
(set-fontset-font fsn 'katakana-jisx0201 jp-fontspec) ; 半角カナ
(set-fontset-font fsn '(#x0080 . #x024F) fontspec) ; 分音符付きラテン
(set-fontset-font fsn '(#x0370 . #x03FF) fontspec) ; ギリシャ文字
)
;; デフォルトのフレームパラメータでフォントセットを指定
(add-to-list 'default-frame-alist '(font . "fontset-myfonts"))
;; フォントサイズの比を設定
(dolist (elt '(("^-apple-hiragino.*" . 1.2)
(".*osaka-bold.*" . 1.2)
(".*osaka-medium.*" . 1.2)
(".*courier-bold-.*-mac-roman" . 1.0)
(".*monaco cy-bold-.*-mac-cyrillic" . 0.9)
(".*monaco-bold-.*-mac-roman" . 0.9)))
(add-to-list 'face-font-rescale-alist elt))
;; デフォルトフェイスにフォントセットを設定
;; # これは起動時に default-frame-alist に従ったフレームが
;; # 作成されない現象への対処
(set-face-font 'default "fontset-myfonts")
;; デフォルトのフレームパラメータでフォントセットを指定
;; # これは起動時に default-frame-alist に従ったフレームが
;; # 作成されない現象への対処
(set-face-font 'default "fontset-myfonts")
;; framse-alist
(setq default-frame-alist
(append (list '(foreground-color . "white")
'(background-color . "black")
'(width . 100)
;; '(height . 40)
;; '(left . 100)
'(top . 0))
default-frame-alist))
;; window move by Shift + [right|left|up|down]cursor
(windmove-default-keybindings)
;; バックスラッシュが¥になる問題
(define-key global-map [165] nil)
(define-key global-map [67109029] nil)
(define-key global-map [134217893] nil)
(define-key global-map [201326757] nil)
(define-key function-key-map [165] [?\\])
(define-key function-key-map [67109029] [?\C-\\])
(define-key function-key-map [134217893] [?\M-\\])
(define-key function-key-map [201326757] [?\C-\M-\\])
;; gosh設定
(setq scheme-program-name "/usr/local/bin/gosh -i")
(autoload 'scheme-mode "cmuscheme" "Major mode for Scheme." t)
(autoload 'run-scheme "cmuscheme" "Run an inferior Scheme process." t)
;; mac <-> emacs clip borad
(setq x-select-enable-clipboard nil)
(setq x-select-enable-primary t)
(setq select-active-regions t)
(setq mouse-drag-copy-region t)
(global-set-key [mouse-2] 'mouse-yank-at-click)
;; ファイルに更新があったら自動的に読み込み直す
(global-auto-revert-mode 1)
;;;; eww
;; enter: クリック
;; l: 戻る
;; r: 進む
;; o: link にhint
;; &: ブラウザで開く
;; w: 現在のurlをコピー
;; b: ブックマークする、B: ブックマーク一覧
;; w: ソースを見る
;; r: リロード
;; color 調整
(defvar eww-disable-colorize t)
(defun shr-colorize-region--disable (orig start end fg &optional bg &rest _)
(unless eww-disable-colorize
(funcall orig start end fg)))
(advice-add 'shr-colorize-region :around 'shr-colorize-region--disable)
(advice-add 'eww-colorize-region :around 'shr-colorize-region--disable)
(defun eww-disable-color ()
"eww で文字色を反映させない"
(interactive)
(setq-local eww-disable-colorize t)
(eww-reload))
(defun eww-enable-color ()
"eww で文字色を反映させる"
(interactive)
(setq-local eww-disable-colorize nil)
(eww-reload))
;; googleに
(setq eww-search-prefix "http://www.google.co.jp/search?q=")
;; 検索結果にハイライト
(defun eww-search (term)
(interactive "sSearch terms: ")
(setq eww-hl-search-word term)
(eww-browse-url (concat eww-search-prefix term)))
(add-hook 'eww-after-render-hook (lambda ()
(highlight-regexp eww-hl-search-word)
(setq eww-hl-search-word nil)))
(define-key global-map (kbd "C-c s") 'eww-search)
;; 画像を表示しない
(defun eww-disable-images ()
"eww で画像表示させない"
(interactive)
(setq-local shr-put-image-function 'shr-put-image-alt)
(eww-reload))
(defun eww-enable-images ()
"eww で画像表示させる"
(interactive)
(setq-local shr-put-image-function 'shr-put-image)
(eww-reload))
(defun shr-put-image-alt (spec alt &optional flags)
(insert alt))
;; はじめから非表示
(defun eww-mode-hook--disable-image ()
(setq-local shr-put-image-function 'shr-put-image-alt))
(add-hook 'eww-mode-hook 'eww-mode-hook--disable-image)
;; リンク先番号表示 shortcut "o"
;; ace-isearch
;; ace-jump-mode
;; ace-link
(ace-link-setup-default)
(require 'org)
(define-key org-mode-map (kbd "C-c M-o") 'ace-link-org)
(defun ali--eww-collect-references ()
"Collect the positions of visible links in the current `eww' buffer."
(save-excursion
(save-restriction
(narrow-to-region
(window-start)
(window-end))
(goto-char (point-min))
(let ((skip (next-single-property-change (point) 'help-echo))
candidates)
(while (setq skip (text-property-not-all
skip (point-max) 'help-echo nil))
(goto-char skip)
(push skip candidates)
(setq skip (next-single-property-change (point) 'help-echo)))
(nreverse candidates)))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment