Skip to content

Instantly share code, notes, and snippets.

@k4200
Last active December 20, 2015 17:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save k4200/6170519 to your computer and use it in GitHub Desktop.
Save k4200/6170519 to your computer and use it in GitHub Desktop.
.emacs PHP関連の設定もうちょっと充実させて、ちゃんとバージョン管理する。
(put 'upcase-region 'disabled nil)
(add-to-list 'load-path (expand-file-name "~/.emacs.d/elisp"))
(add-to-list 'load-path (expand-file-name "~/.emacs.d/auto-install"))
;; key bindings
(global-set-key "\C-c\C-c" 'comment-or-uncomment-region)
(global-set-key (kbd "C-x <up>") 'windmove-up)
(global-set-key (kbd "C-x <down>") 'windmove-down)
(global-set-key (kbd "C-x <right>") 'windmove-right)
(global-set-key (kbd "C-x <left>") 'windmove-left)
;; Language
(set-language-environment "Japanese")
(set-default-coding-systems 'utf-8)
;; auto-install
(require 'auto-install)
(setq auto-install-directory "~/.emacs.d/auto-install/") ;Emacs Lispをインストールするディレクトリの指定
(auto-install-update-emacswiki-package-name t)
(auto-install-compatibility-setup) ;install-elisp.elとコマンド名を同期
;; grep-a-lot
(require 'grep-a-lot)
(grep-a-lot-setup-keys)
(grep-a-lot-advise igrep)
;; package.el
(require 'package)
(add-to-list 'package-archives
'("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)
;; anything
(global-set-key (kbd "C-x a") 'anything)
;; auto-complete
(require 'auto-complete)
(require 'auto-complete-config)
(global-auto-complete-mode t)
(setq ac-auto-start t)
;; use clipboard
(setq x-select-enable-clipboard t)
;; auto indentation when yanking
(dolist (command '(yank yank-pop))
(eval `(defadvice ,command (after indent-region activate)
(and (not current-prefix-arg)
(member major-mode '(emacs-lisp-mode lisp-mode scala-mode
php-mode html-mode
javascript-mode))
(let ((mark-even-if-inactive transient-mark-mode))
(indent-region (region-beginning) (region-end) nil))))))
;; ;;;;;;;; scala ;;;;;;;;;
;; scala-mode2
(unless (package-installed-p 'scala-mode2)
(package-refresh-contents) (package-install 'scala-mode2))
;; sbt-mode
(unless (package-installed-p 'sbt-mode)
(package-refresh-contents) (package-install 'sbt-mode))
;; load the ensime lisp code...
(add-to-list 'load-path "~/bin/ensime/elisp/")
(require 'ensime)
;; This step causes the ensime-mode to be started whenever
;; scala-mode is started for a buffer. You may have to customize this step
;; if you're not using the standard scala mode.
(add-hook 'scala-mode-hook 'ensime-scala-mode-hook)
;; ;;;;;;;; PHP ;;;;;;;;;
;; php-mode
(require 'php-mode)
(add-hook 'php-mode-hook
(lambda()
(setq comment-start "// "
comment-end ""
comment-start-skip "// *")
(setq comment-use-syntax t)))
; indentation for array and switch-case
(add-hook 'php-mode-hook (lambda ()
(defun ywb-php-lineup-arglist-intro (langelem)
(save-excursion
(goto-char (cdr langelem))
(vector (+ (current-column) c-basic-offset))))
(defun ywb-php-lineup-arglist-close (langelem)
(save-excursion
(goto-char (cdr langelem))
(vector (current-column))))
(c-set-offset 'case-label' 4)
(c-set-offset 'arglist-intro 'ywb-php-lineup-arglist-intro)
(c-set-offset 'arglist-close 'ywb-php-lineup-arglist-close)))
(setq php-mode-force-pear t) ;PEAR規約のインデント設定にする
(add-to-list 'auto-mode-alist '("\\.php$" . php-mode)) ;*.phpのファイルのときにphp-modeを自動起動する
;; ;;;;;; JavaScript ;;;;;;;
(setq js-indent-level 2)
(add-hook 'js-mode-hook (lambda ()
(setq indent-tabs-mode nil)))
;; ;;;;;; HTML ;;;;;;;
(add-hook 'html-mode-hook (lambda ()
(setq indent-tabs-mode nil)))
;; text-mode
(add-hook 'text-mode-hook
'(lambda ()
; (setq indent-tabs-mode nil)
(electric-indent-local-mode -1)
(setq tab-width 4)
(setq indent-line-function (quote insert-tab))))
; (setq tab-stop-list (number-sequence 4 120 4))
; (setq indent-line-function 'tab-to-tab-stop)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment