LoginSignup
12
8

More than 5 years have passed since last update.

Windows での Emacs の設定覚書

Last updated at Posted at 2015-03-13

Emacs の設定

取り敢えず %HOME% にディレクトリ(フォルダ) .emacs.d を作成して,その下にconf,elisp,etc などを作成する.

init.elconf 以下の個別の設定を呼び出すことにする.オールドタイプなので package.elinit-loader.el は使わないです.:expressionless:

また,Emacs のインストール先を D:\Programs\emacs にしています.

~/.emacs.d/init.el に下記内容で作成する.個別の設定は,~/.emacs.d/conf/init-xxx.el に記述して,load で呼び出す.

設定はいろいろな所を参考にさせて貰いましたが,出典が分からないのが多数です. >_<;

init.el
;; -*- Mode: Emacs-Lisp ;  Coding: utf-8 -*-

;; 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" "conf")

;; use-package を require の代わりに使う
(if (require 'use-package nil t)
    (setq use-package-verbose t)
  (message "Use-package is unavailable!")
  (defmacro use-package (&rest _args)))

;; 個別設定をロードする
(load "init-global")
(load "init-utility")
(load "init-xxx")

共通の設定

共通の設定を init-global.el に記述する.忘れそうなのだけメモします.

init-global.el
;; 日本語環境
(set-language-environment "Japanese")
(prefer-coding-system 'utf-8)
(set-file-name-coding-system 'cp932)
(set-keyboard-coding-system 'cp932)
(set-terminal-coding-system 'cp932)

;; Proxy の設定
(setq url-proxy-services '(("http" . "Proxy:Port")))

;; 起動時のディレクトリの変更
(setq default-directory "~/")

;; C-h を Backspace に
(keyboard-translate ?\C-h ?\C-?)

;; *scratch* バッファを削除しない
(defadvice kill-buffer (around kill-buffer-around-advice activate)
  (let ((buffer-to-kill (ad-get-arg 0)))
    (if (equal buffer-to-kill "*scratch*")
        (bury-buffer)
      ad-do-it)))

;; server start for emacs-client
(use-package server
  :if window-system
  :init
  (unless (server-running-p)
    (server-start)))

C/Migemo

KaoriYa さんから,「C/Migemo for Windows 64bit」をダウンロードする.

解凍して出てきて cmigemo.dll,cmigemo.exeD:\Programs\emacs\libexec\emacs\24.4\x86_64-pc-mingw32 にコピーする. 辞書ファイルを ~/.emacs.d/etc/dict/migemo にコピーする.

init-migemo.el
;; -*- Mode: Emacs-Lisp ;  Coding: utf-8 -*-

(use-package migemo
  :config
  (setq migemo-command "cmigemo")
  (setq migemo-options '("-q" "--emacs" "-i" "\a"))
  (setq migemo-dictionary (expand-file-name "~/.emacs.d/etc/dict/migemo/utf-8/migemo-dict"))
  (setq migemo-user-dictionary nil)
  (setq migemo-regex-dictionary nil)
  (setq migemo-use-pattern-alist t)
  (setq migemo-use-frequent-pattern-alist t)
  (setq migemo-pattern-alist-length 1000)
  (setq migemo-coding-system 'utf-8-unix)
  (migemo-init))

The Silver Searcher(ag)

Msys2 Shell から Pacman -S mingw-w64-x86_64-ag でインストールする.

ag.exe,libwinpthread-1.dll,libpcre-1.dll,liblzma-5.dllD:\Programs\emacs\libexec\emacs\24.4\x86_64-pc-mingw32 にコピーする.

helm-ag~/.emacs.d/elisp/helm にインストールする.(helm のインストール先を~/.emacs.d/elisp/helm にしています)

init-helm.el
;; -*- Mode: Emacs-Lisp ;  Coding: utf-8 -*-

(use-package helm-config
  :bind
  ("C-;" . helm-mini)
  ("C-x C-b" .  helm-buffers-list)
  :config
  (use-package helm-files
    :config
    (define-key helm-find-files-map (kbd "TAB") 'helm-execute-persistent-action))
  )

(use-package helm-ag
   :bind
   ("M-s" . helm-ag)
   )

Aspell

Msys2 Shell から Pacman -S mingw-w64-x86_64-aspell でインストールする.

aspell.exe,word-list-compress.exe,libaspell-15.dll,libstdc++-6.dll,libintl-8.dll,libgcc_s_seh-1.dll,libiconv-2.dllD:\Programs\emacs\libexec\emacs\24.4\x86_64-pc-mingw32にコピーする.

辞書ファイルがないので,GNU Aspell からインストールする.
MinGW-w64 Win64 Shell から実行する.

$ curl -O ftp://ftp.gnu.org/gnu/aspell/dict/en/aspell6-en-2015.02.15-0.tar.bz2
$ tar jxvf aspell6-en-2015.02.15-0.tar.bz2
$ cd aspell6-en-2015.02.15-0
$ ./configure
$ vi Makefile
---
dictdir = D:\msys64\mingw64/lib/aspell-0.60
datadir = D:\msys64\mingw64/lib/aspell-0.60
↓
dictdir = D:\\msys64\\mingw64/lib/aspell-0.60
datadir = D:\\msys64\\mingw64/lib/aspell-0.60
---
$ make
$ make isntall

D:\msys64\mingw64\lib\aspell-0.60D:\Programs\emacs\libexec\emacs\24.4\x86_64-pc-mingw32\lib\aspell-0.60にコピーする.

ispell-complete-word が動作しないので,wordsgrep.exe がないので調達する.UNIX 系の OS にある words ファイル(/usr/local/share/dict,/usr/share/dict にある?) を ~/.emacs.d/etc/dict/ にコピーする.

MSYS2grep.exe を使うと必要な DLL が増えるのでコンパイルしたものを使用する.
MinGW-w64 Win64 Shell から実行する.

$ curl -O http://ftp.gnu.org/gnu/grep/grep-2.21.tar.xz
$ tar Jxvf grep-2.21.tar.xz
$ cd grep-2.21
$ ./configure
$ make

src にできた grep.exeD:\Programs\emacs\libexec\emacs\24.4\x86_64-pc-mingw32 にコピーする.

init-utility.el
;; -*- Mode: Emacs-Lisp ;  Coding: utf-8 -*-

(use-package ispell
  :init
  (setq ispell-program-name "aspell")
  :config
  (setq ispell-alternate-dictionary (expand-file-name "~/.emacs.d/etc/dict/words"))
  (add-to-list 'ispell-skip-region-alist '("[^\000-\377]+")))

~/.aspell.conf

aspell.conf
lang en_US

を追加する.

Markdown

Pandoc

(2015/4/14 Font Awesome の設定追加)
Pandoc から最新のバージョンをダウンロードしてインストールする.ここでは,pandoc-1.13.2-windows.msi をインストールししました.

Markdown-mode

markdown-mode~/.emacs.d/elisp にインストールする.

スタイルシートを適用する場合は,適当な CSS を用意する.ここでは,github.css を使うことにする.

init-markdown.el
;; -*- Mode: Emacs-Lisp ;  Coding: utf-8 -*-

(use-package markdown-mode
  :mode
  ("\\.md\\'" . gfm-mode)
  :config
  (setq markdown-command "pandoc --smart -f markdown_github -t html5")
  (setq markdown-css-path "path\\to\\github.css")
  (setq markdown-xhtml-header-content "<link href=\"http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css\" rel=\"stylesheet\" />")
  )
  • C-c C-c m : ソースの表示(buffer に表示される)
  • C-c C-c p : ブラウザで表示(temporary file で表示:CSSが適用されない)
  • C-c C-c v : ブラウザで表示(basename.htmlを生成して表示: CSSが適用される)
12
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
8