【emacs】初期設定メモ

emacs再入門
環境メモ
github.com

~/.emacs.d/init.elの記述

日本語入力環境構築
;;環境を日本語にする
(require 'mozc)
(set-language-environment "Japanese")
(setq default-input-method "japanese-mozc")
(prefer-coding-system 'utf-8)
Load path設定
;;load-pathの追加関数
(defun add-to-load-path (&rest paths)
  (let (path)
    (dolist (path paths paths)
      (let ((default-directory (expand-file-name (concat user-emacs-directory path))))
	(add-to-list 'load-path default-directory)
	(if (fboundp 'normal-top-level-add-subdirs-to-load-path)
	        (normal-top-level-add-subdirs-to-load-path))))))

;;load-pathに追加するフォルダ
(add-to-load-path "elisp" "elpa")
package-install 設定
(require 'package)
;; MELPAを追加
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
;; MELPA-stableを追加
(add-to-list 'package-archives '("melpa-stable" . "http://stable.melpa.org/packages/") t)
;; Marmaladeを追加
(add-to-list 'package-archives  '("marmalade" . "http://marmalade-repo.org/packages/") t)
;; Orgを追加
(add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t)
;; 初期化
(package-initialize)
C-tでウィンドウ切り替え
;; "C-t"でウィンドウ切り替える。初期値はtranspose-chars
(defun other-window-or-split ()
  (interactive)
  (when (one-window-p)
    (split-window-horizontally))
  (other-window 1))

(global-set-key (kbd "C-t") 'other-window-or-split)
その他
;;C-hでBackspaceに
(keyboard-translate ?\C-h ?\C-?)

;;スタートアップメッセージを表示させない
(setq inhibit-startup-message t)

;;バックアップファイルを作成させない
(setq make-backup-files nil)

;;yes or noをy or n
(fset 'yes-or-no-p 'y-or-n-p)

;; unvisualize menubar, toolbar, scrollbar
(menu-bar-mode 0)
(tool-bar-mode 0)
(scroll-bar-mode 0)

;; 行末の空白を強調表示
(setq-default show-trailing-whitespace t)
(set-face-background 'trailing-whitespace "#b14770")

;; ;;対応する()を光らせる
(show-paren-mode 1)

;;Clipboardを他のアプリケーションと共通に
(cond (window-system
       (setq x-select-enable-clipboard t)
       ))

;; 起動時にスクリーン最大化
(set-frame-parameter nil 'fullscreen 'maximized)

追加したpackage

コード補完 auto-complete

package-installからauto-completeをインストール
init.elに以下を記述

;; Auto Complete
(require 'auto-complete-config)
(ac-config-default)
(setq ac-use-menu-map t)       ;; 補完メニュー表示時にC-n/C-pで補完候補選択
(setq ac-use-fuzzy t)          ;; 曖昧マッチ

quickrun

emacs内でコードを実行.
結果をbufferに表示.

M-x package-install
quickrun
でインストール.

M-x quickrun
で実行

flycheck

emacs内での文法チェックを可能に.

M-x package-install RET flycheck
でインストール

init.elに以下を記述

(global-flycheck-mode)

C-c ! nで次のエラーへジャンプ
C-c ! pで前のエラー箇所へジャンプ
C-c ! lでエラーをリスト表示
エラー箇所にカーソルを合わせると,エラーメッセージがポップアップする

color-theme

sublime-textのテーマが気に入ってたので,
同じテーマを使う.

package-installから,sublime-themesをインストール
その中のspolskyを使う
init.elに以下を記述.

(load-theme 'spolsky t)

helm

emacsでなにか探すときに便利なhelmを入れる.
anythingの代替.
https://github.com/emacs-helm/helm
手順は↑の通り.

git clone https://github.com/emacs-helm/helm.git /path/to/helm/directory
git clone https://github.com/jwiegley/emacs-async.git /path/to/async/directory

して,helmをcloneしたディレクトリでmakeする.
init.eに

(require 'helm-config)

or
ubuntu 16.04以上の場合は,

apt-get install elpa-helm

で押し通せる

minimap

sublimeemacsを目指しているので導入.

(require 'minimap)

普段は切っておいて,
minimap使いたい時には,M-x minimap-mode RET

設定を変えるときは,
M-x customize-group RET minimap RETで,
Minimap Window Locationだけいじって右端によせる.

markdown-mode

markdownの記述とプレビューを素早く行う。
M-x package-install
markdown-mode
でインストール...しようとしたがMelpaにないと言われる。

代わりに直接markdown-mode.elをダウンロードしてload pathの通っているフォルダに入れる。
(elはこちらから.http://jblevins.org/projects/markdown-mode/

init.elに

(autoload 'markdown-mode "markdown-mode"
   "Major mode for editing Markdown files" t)
(add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-mode))
(add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode))

(autoload 'gfm-mode "gfm-mode"
   "Major mode for editing GitHub Flavored Markdown files" t)
(add-to-list 'auto-mode-alist '("README\\.md\\'" . gfm-mode))

markdownプレビューを利用するために、apt-getでinstallする

apt-get install markdown

C-c C-c mでHTMLプレビュー
C-c C-c pでブラウザプレビュー

(参考)
http://jblevins.org/projects/markdown-mode/

ctags

brewを利用してctags-exuberantを導入する.

brew install ctags-exuberant

ctags.elの導入

M-x package-install RET ctags RET

init.elに追記

;;;; for ctags.el
(require 'ctags nil t)
(setq tags-revert-without-query t)
(setq ctags-command "ctags -R --fields=\"+afikKlmnsSzt\" ")
(global-set-key (kbd "<f5>") 'ctags-create-or-update-tags-table)
(global-set-key (kbd "M-.") 'ctags-search)

ファイルをEmacsで開いている状態で、F5キーを押下することで、
Ctagsファイルの更新および存在しない場合は新規作成される