Last active
December 22, 2015 06:38
-
-
Save mopemope/6431981 to your computer and use it in GitHub Desktop.
auto install example
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
| ;; package | |
| (require 'package) | |
| (add-to-list 'package-archives | |
| '("marmalade" . "http://marmalade-repo.org/packages/")) | |
| (add-to-list 'package-archives | |
| '("melpa" . "http://melpa.milkbox.net/packages/") t) | |
| (package-initialize) | |
| (unless (file-exists-p package-user-dir) | |
| (package-refresh-contents)) | |
| (defun install-packages (pkgs) | |
| (dolist (p pkgs) | |
| (when (not (package-installed-p p)) | |
| (package-install p)))) | |
| ;; basic | |
| (defvar basic-packages '(auto-complete | |
| ace-jump-mode | |
| shell-pop | |
| auto-indent-mode | |
| color-theme | |
| color-theme-molokai | |
| company | |
| erlang | |
| ;;emacs-eclim | |
| fuzzy | |
| helm | |
| ;;helm-ag | |
| ;;helm-descbinds | |
| ;;helm-gtags | |
| smex | |
| magit | |
| markdown-mode | |
| org | |
| redo+ | |
| ssh | |
| starter-kit | |
| starter-kit-bindings | |
| starter-kit-eshell | |
| ;;web-mode | |
| yasnippet)) | |
| ;; html, javascript | |
| (defvar js-packages '(js2-mode | |
| ac-emmet | |
| emmet-mode | |
| )) | |
| ;; php | |
| (defvar php-packages '(php-mode | |
| php-extras | |
| )) | |
| ;; python | |
| (defvar python-packages '(python-mode | |
| python-pep8 | |
| python-pylint | |
| virtualenv | |
| tox | |
| )) | |
| ;; go | |
| (defvar go-packages '(go-mode | |
| go-snippets | |
| )) | |
| ;; clojure | |
| (defvar clojure-packages '(starter-kit-lisp | |
| ac-nrepl | |
| clojure-mode | |
| clojure-test-mode | |
| clojure-project-mode | |
| clojure-cheatsheet | |
| clojure-snippets | |
| clojurescript-mode | |
| cider | |
| cider-decompile | |
| cider-tracing | |
| paredit | |
| midje-mode | |
| rainbow-delimiters | |
| )) | |
| ;; common lisp more | |
| (defvar cl-packages '(starter-kit-lisp | |
| slime | |
| popwin | |
| ac-slime | |
| rainbow-delimiters | |
| racket-mode | |
| geiser | |
| )) | |
| ;; install packages | |
| (install-packages basic-packages) | |
| (install-packages python-packages) | |
| (install-packages php-packages) | |
| (install-packages go-packages) | |
| (install-packages js-packages) | |
| (install-packages clojure-packages) | |
| (install-packages cl-packages) | |
| ;; global settings | |
| ;; (global-unset-key [mouse-1]) | |
| ;; (global-unset-key [down-mouse-1]) | |
| ;; (global-unset-key [drag-mouse-1]) | |
| ;; (global-unset-key [double-mouse-1]) | |
| ;; (global-unset-key [double-drag-Mouse-1]) | |
| ;; (global-unset-key [triple-mouse-1]) | |
| ;; (global-unset-key [triple-drag-mouse-1]) | |
| ;; (global-unset-key [\S-down-mouse-1]) | |
| ;; (global-unset-key [\C-down-mouse-1]) | |
| ;; (global-unset-key [\M-mouse-1]) | |
| ;; (global-unset-key [\M-down-mouse-1]) | |
| ;; (global-unset-key [\M-drag-mouse-1]) | |
| ;; (global-unset-key [mouse-2]) | |
| ;; (global-unset-key [mouse-3]) | |
| ;; (global-unset-key [\S-mouse-3]) | |
| ;; (global-unset-key [\S-down-mouse-3]) | |
| ;; (global-unset-key [\C-down-mouse-3]) | |
| ;; (global-unset-key [\M-mouse-3]) | |
| (if window-system (server-start)) | |
| (set-default-font "Inconsolata 11") | |
| (setq linum-format "%4d ") | |
| (global-linum-mode t) | |
| (set-language-environment "Japanese") | |
| (prefer-coding-system 'utf-8) | |
| (set-default-coding-systems 'utf-8) | |
| (set-terminal-coding-system 'utf-8) | |
| ;; load mozc | |
| (load-file "~/.emacs.d/elpa/mozc.el") | |
| (setq default-input-method "japanese-mozc") | |
| (column-number-mode 1) | |
| (global-set-key "\C-x\C-b" 'bs-show) | |
| (cua-mode t) | |
| (setq cua-enable-cua-keys nil) | |
| ;; Tabの代わりにスペースでインデント | |
| (setq-default indent-tabs-mode nil) | |
| (setq-default tab-width 4 indent-tabs-mode nil) | |
| ;;; シンボリックリンクの読み込みを許可 | |
| (setq vc-follow-symlinks t) | |
| ;;; シンボリックリンク先のVCS内で更新が入った場合にバッファを自動更新 | |
| (setq auto-revert-check-vc-info t) | |
| ;;; スタートアップスクリーンを表示しない | |
| (setq inhibit-splash-screen t) | |
| ;;; iswitchb-mode | |
| (setq iswitchb-mode t) | |
| ;;; バックアップファイルの設定 | |
| (setq make-backup-files t) | |
| (setq backup-directory-alist | |
| (cons (cons "\\.*$" (expand-file-name "~/.emacs_backup")) | |
| backup-directory-alist)) | |
| (defvar my-auto-save-folder "~/.emacs.d/auto-save") | |
| (setq auto-save-list-file-prefix "~/.emacs.d/auto-save/.saves-") | |
| (setq auto-save-file-name-transforms `((".*" ,my-auto-save-folder t))) | |
| (setq tramp-auto-save-directory my-auto-save-folder) | |
| (setq backup-directory-alist | |
| (cons (cons "\\.*$" (expand-file-name "~/.emacs_backup")) | |
| backup-directory-alist)) | |
| (setq kept-new-versions 5) | |
| (setq kept-old-versions 5) | |
| (setq delete-old-versions t) | |
| ;;リージョンに色をつける | |
| (transient-mark-mode t) | |
| ;;リージョンを[delete][BS]で削除 | |
| (delete-selection-mode t) | |
| (setq redisplay-dont-pause t) | |
| ;; linum delay | |
| (setq linum-delay t) | |
| (defadvice linum-schedule (around my-linum-schedule () activate) | |
| (run-with-idle-timer 0.2 nil #'linum-update-current)) | |
| ;; 全角スペース タブ trailing-spacesを目立たせる | |
| (require 'whitespace) | |
| ;; space-markとtab-mark、それからspacesとtrailingを対象とする | |
| (setq whitespace-style '(space-mark tab-mark face spaces trailing)) | |
| (setq whitespace-display-mappings | |
| '( | |
| ;; (space-mark ?\ [?\u00B7] [?.]) ; space - centered dot | |
| (space-mark ?\xA0 [?\u00A4] [?_]) ; hard space - currency | |
| (space-mark ?\x8A0 [?\x8A4] [?_]) ; hard space - currency | |
| (space-mark ?\x920 [?\x924] [?_]) ; hard space - currency | |
| (space-mark ?\xE20 [?\xE24] [?_]) ; hard space - currency | |
| (space-mark ?\xF20 [?\xF24] [?_]) ; hard space - currency | |
| (space-mark ?\u3000 [?\u25a1] [?_ ?_]) ; full-width-space - square | |
| ;; NEWLINE is displayed using the face `whitespace-newline' | |
| ;; (newline-mark ?\n [?$ ?\n]) ; eol - dollar sign | |
| ;; (newline-mark ?\n [?\u21B5 ?\n] [?$ ?\n]) ; eol - downwards arrow | |
| ;; (newline-mark ?\n [?\u00B6 ?\n] [?$ ?\n]) ; eol - pilcrow | |
| ;; (newline-mark ?\n [?\x8AF ?\n] [?$ ?\n]) ; eol - overscore | |
| ;; (newline-mark ?\n [?\x8AC ?\n] [?$ ?\n]) ; eol - negation | |
| ;; (newline-mark ?\n [?\x8B0 ?\n] [?$ ?\n]) ; eol - grade | |
| ;; | |
| ;; WARNING: the mapping below has a problem. | |
| ;; When a TAB occupies exactly one column, it will display the | |
| ;; character ?\xBB at that column followed by a TAB which goes to | |
| ;; the next TAB column. | |
| ;; If this is a problem for you, please, comment the line below. | |
| (tab-mark ?\t [?\u00BB ?\t] [?\\ ?\t]) ; tab - left quote mark | |
| )) | |
| ;; whitespace-spaceの定義を全角スペースにし、色をつけて目立たせる | |
| (setq whitespace-space-regexp "\\(\u3000+\\)") | |
| (set-face-foreground 'whitespace-space "cyan") | |
| (set-face-background 'whitespace-space 'nil) | |
| ;; whitespace-trailingを色つきアンダーラインで目立たせる | |
| (set-face-underline 'whitespace-trailing t) | |
| (set-face-foreground 'whitespace-trailing "cyan") | |
| (set-face-background 'whitespace-trailing 'nil) | |
| (global-whitespace-mode t) | |
| ;;対応する括弧に@で移動 | |
| ;; (global-set-key "@" 'match-paren) | |
| ;; (defun match-paren (arg) | |
| ;; "Go to the matching paren if on a paren; otherwise insert %." | |
| ;; (interactive "p") | |
| ;; (cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1)) | |
| ;; ((looking-at "\\s\)") (forward-char 1) (backward-list 1)) | |
| ;; (t (self-insert-command (or arg 1))))) | |
| ;;;タイトルバーの表示 | |
| (setq frame-title-format "%b") | |
| (menu-bar-mode -1) | |
| ;;;右端で折り返さない | |
| (setq truncate-lines t) | |
| (setq truncate-partial-width-windows nil) | |
| ;;;1行丸ごとカット | |
| (setq kill-whole-line t) | |
| (defun beginning-of-indented-line (current-point) | |
| "インデント文字を飛ばした行頭に戻る。ただし、ポイントから行頭までの間にインデント文字しかない場合は、行頭に戻る。" | |
| (interactive "d") | |
| (if (string-match | |
| "^[ \t]+$" | |
| (save-excursion | |
| (buffer-substring-no-properties | |
| (progn (beginning-of-line) (point)) | |
| current-point))) | |
| (beginning-of-line) | |
| (back-to-indentation))) | |
| (defun beginning-of-visual-indented-line (current-point) | |
| "インデント文字を飛ばした行頭に戻る。ただし、ポイントから行頭までの間にインデント文 字しかない場合は、行頭に戻る。" | |
| (interactive "d") | |
| (let ((vhead-pos (save-excursion (progn (beginning-of-visual-line) (point)))) | |
| (head-pos (save-excursion (progn (beginning-of-line) (point))))) | |
| (cond | |
| ;; 物理行の1行目にいる場合 | |
| ((eq vhead-pos head-pos) | |
| (if (string-match | |
| "^[ \t]+$" | |
| (buffer-substring-no-properties vhead-pos current-point)) | |
| (beginning-of-visual-line) | |
| (back-to-indentation))) | |
| ;; 物理行の2行目以降の先頭にいる場合 | |
| ((eq vhead-pos current-point) | |
| (backward-char) | |
| (beginning-of-visual-indented-line (point))) | |
| ;; 物理行の2行目以降の途中にいる場合 | |
| (t (beginning-of-visual-line))))) | |
| (global-set-key "\C-a" 'beginning-of-visual-indented-line) | |
| (global-set-key "\C-e" 'end-of-visual-line) | |
| ;; | |
| ;; package settings | |
| ;; | |
| ;; yasnippet | |
| (require 'yasnippet) | |
| ;; (setq yas-snippet-dirs | |
| ;; '("~/.emacs.d/snippets" | |
| ;; "~/.emacs.d/elpa/yasnippet-20130907.1855/snippets/" | |
| ;; "~/.emacs.d/elpa/emacs-eclim-20130810.116/snippets/java-mode" | |
| ;; )) | |
| (yas-global-mode 1) | |
| ;; helm-mode | |
| (require 'helm-config) | |
| ;;(helm-descbinds-mode) | |
| (helm-mode t) | |
| ;; C-x b で helm-for-files | |
| (define-key global-map (kbd "C-x C-f") 'helm-find-files) | |
| (define-key global-map (kbd "C-x b") 'helm-for-files) | |
| ;; eclim | |
| ;;(require 'eclim) | |
| ;; (require 'eclimd) | |
| ;; (global-eclim-mode) | |
| ;; (custom-set-variables | |
| ;; '(eclim-eclipse-dirs '("~/opt/eclipse"))) | |
| ;; regular auto-complete initialization | |
| (require 'auto-complete-config) | |
| (ac-config-default) | |
| ;; add the emacs-eclim source | |
| ;; (require 'ac-emacs-eclim-source) | |
| ;; (ac-emacs-eclim-config) | |
| ;; (require 'company) | |
| ;; (require 'company-emacs-eclim) | |
| ;; (company-emacs-eclim-setup) | |
| ;; (global-company-mode t) | |
| ;; boot j2ee server | |
| ;; (defvar jdk-home "/usr/lib/jvm/java-7-openjdk-amd64") | |
| ;; (defvar catalina-home "/home/ma2/opt/server/tomcat6") | |
| ;; (defun create-tomcat-param (tomcat-home) | |
| ;; (mapconcat (lambda (x) | |
| ;; (format x tomcat-home)) | |
| ;; '("-Dcatalina.home=%s" "-Djava.endorsed.dirs=%s/endorsed") | |
| ;; " ")) | |
| ;; (defun create-tomcat-classpath (tomcat-home java-home) | |
| ;; (concat "-classpath " | |
| ;; (mapconcat (lambda (x) | |
| ;; (format x tomcat-home)) | |
| ;; (list | |
| ;; "%s/bin/bootstrap.jar" | |
| ;; "%s/bin/tomcat-juli.jar" | |
| ;; (format "%s/lib/tools.jar" java-home)) | |
| ;; ":" ))) | |
| ;; (defun create-wst-param (workspace) | |
| ;; (mapconcat (lambda (x) | |
| ;; (format x workspace)) | |
| ;; '("-Dcatalina.base=%s/.metadata/.plugins/org.eclipse.wst.server.core/tmp0" | |
| ;; "-Dwtp.deploy=%s/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps") | |
| ;; " ")) | |
| ;; (defun create-tomcat-start-cmd (workspace tomcat-home java-home) | |
| ;; (mapconcat #'identity | |
| ;; (list | |
| ;; (create-tomcat-param tomcat-home) | |
| ;; (create-wst-param workspace) | |
| ;; (create-tomcat-classpath tomcat-home java-home) | |
| ;; "org.apache.catalina.startup.Bootstrap" | |
| ;; "start") | |
| ;; " ")) | |
| ;; (defun start-j2ee-server () | |
| ;; (interactive) | |
| ;; (setq w (selected-window)) | |
| ;; (setq w2 (split-window w (- (window-height w) 20))) | |
| ;; (select-window w2) | |
| ;; (start-process-shell-command | |
| ;; "j2ee-server" | |
| ;; "*server-console*" | |
| ;; "java" | |
| ;; (create-tomcat-start-cmd (eclim/workspace-dir) catalina-home jdk-home)) | |
| ;; (switch-to-buffer "*server-console*")) | |
| ;; (defun stop-j2ee-server () | |
| ;; (interactive) | |
| ;; (interrupt-process "j2ee-server")) | |
| ;; (defun eclim-run-junit () | |
| ;; (interactive) | |
| ;; (if (not (string= major-mode "java-mode")) | |
| ;; (message "Sorry cannot run current buffer.")) | |
| ;; (compile (concat eclim-executable " -command java_junit -p " eclim--project-name " -t " (eclim-package-and-class)))) | |
| (setq ispell-program-name "aspell") | |
| ;; use ace-jump-mode | |
| (require 'ace-jump-mode) | |
| (global-set-key (kbd "C-c SPC") 'ace-jump-mode) | |
| (require 'color-theme) | |
| ;;(color-theme-initialize) | |
| (color-theme-molokai) | |
| (require 'auto-complete-config) | |
| (global-auto-complete-mode t) | |
| (ac-config-default) | |
| (setq ac-auto-start 2) ;; n文字以上の単語の時に補完を開始 | |
| (setq ac-delay 0.05) ;; n秒後に補完開始 | |
| (setq ac-use-fuzzy t) ;; 曖昧マッチ有効 | |
| (setq ac-use-comphist t) ;; 補完推測機能有効 | |
| (setq ac-auto-show-menu 0.05) ;; n秒後に補完メニューを表示 | |
| (setq ac-quick-help-delay 0.5) ;; n秒後にクイックヘルプを表示 | |
| (setq ac-ignore-case nil) ;; 大文字・小文字を区別する | |
| (setq ac-use-menu-map t) | |
| ;; shell-pop | |
| (require 'shell-pop) | |
| (setq shell-pop-set-internal-mode "ansi-term") | |
| (setq shell-pop-set-internal-mode-shell "/bin/zsh") | |
| (defvar ansi-term-after-hook nil) | |
| (add-hook 'ansi-term-after-hook | |
| (function | |
| (lambda () | |
| (define-key term-raw-map "\C-t" 'shell-pop)))) | |
| (defadvice ansi-term (after ansi-term-after-advice (arg)) | |
| "run hook as after advice" | |
| (run-hooks 'ansi-term-after-hook)) | |
| (ad-activate 'ansi-term) | |
| (global-set-key "\C-t" 'shell-pop) | |
| (require 'rainbow-delimiters) | |
| (defun clojure-hook () | |
| (paredit-mode t) | |
| (rainbow-delimiters-mode t)) | |
| (add-hook 'clojure-mode-hook 'clojure-hook) | |
| (add-hook 'nrepl-mode-hook 'clojure-hook) | |
| (add-hook 'prog-mode-hook 'rainbow-delimiters-mode) | |
| ;; slime | |
| (require 'slime) | |
| (setq inferior-lisp-program "sbcl") | |
| (require 'slime-autoloads) | |
| (slime-setup '(slime-repl)) | |
| (require 'popwin) | |
| (popwin-mode 1) | |
| ;; Apropos | |
| (push '("*slime-apropos*") popwin:special-display-config) | |
| ;; Macroexpand | |
| (push '("*slime-macroexpansion*") popwin:special-display-config) | |
| ;; Help | |
| (push '("*slime-description*") popwin:special-display-config) | |
| ;; Compilation | |
| (push '("*slime-compilation*" :noselect t) popwin:special-display-config) | |
| ;; Cross-reference | |
| (push '("*slime-xref*") popwin:special-display-config) | |
| ;; Debugger | |
| (push '(sldb-mode :stick t) popwin:special-display-config) | |
| ;; REPL | |
| (push '(slime-repl-mode) popwin:special-display-config) | |
| ;; Connections | |
| (push '(slime-connection-list-mode) popwin:special-display-config) | |
| (defun cl-hook () | |
| (slime-mode t) | |
| (paredit-mode t) | |
| (inferior-slime-mode t) | |
| (auto-complete-mode t)) | |
| (add-hook 'lisp-mode-hook 'cl-hook) | |
| (add-hook 'inferior-lisp-mode-hook 'cl-hook) | |
| (require 'ac-slime) | |
| (add-hook 'slime-mode-hook 'set-up-slime-ac) | |
| (add-hook 'slime-repl-mode-hook 'set-up-slime-ac) | |
| (eval-after-load "auto-complete" | |
| '(add-to-list 'ac-modes 'slime-repl-mode)) | |
| ;; malabar-mode | |
| (add-to-list 'load-path "~/.emacs.d/malabar") | |
| (setq semantic-default-submodes '(global-semantic-idle-scheduler-mode | |
| global-semanticdb-minor-mode | |
| global-semantic-idle-summary-mode | |
| global-semantic-mru-bookmark-mode)) | |
| (semantic-mode 1) | |
| (require 'malabar-mode) | |
| (setq malabar-groovy-lib-dir "~/.emacs.d/malabar-lib") | |
| (add-to-list 'auto-mode-alist '("\\.java\\'" . malabar-mode)) | |
| (setq malabar-groovy-java-options '("-Duser.language=en")) | |
| (setq malabar-import-excluded-classes-regexp-list | |
| (append | |
| '( | |
| "^java\\.awt\\..*$" | |
| "^com\\.sun\\..*$" | |
| "^org\\.omg\\..*$" | |
| ) malabar-import-excluded-classes-regexp-list)) | |
| (add-hook 'malabar-mode-hook | |
| (lambda () | |
| (add-hook 'after-save-hook 'malabar-compile-file-silently | |
| nil t))) | |
| ;; org | |
| (setq org-src-fontify-natively t) | |
| (setq org-directory "~/Dropbox/org") | |
| (setq org-agenda-files (list org-directory)) | |
| (setq org-log-done 'time) | |
| (add-hook 'org-agenda-mode-hook '(lambda () (hl-line-mode 1))) | |
| (setq hl-line-face 'underline) | |
| (setq calendar-holidays nil) | |
| ;; redo+ | |
| (require 'redo+) | |
| (global-set-key (kbd "C-M-/") 'redo) | |
| (setq undo-no-redo t) ; 過去のundoがredoされないようにする | |
| (setq undo-limit 600000) | |
| (setq undo-strong-limit 900000) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment