読者です 読者をやめる 読者になる 読者になる

理系学生日記

おまえはいつまで学生気分なのか

忍者TOOLS

emacs.d のモダン化への取り組み

emacs environment

Emacs、ぼくの知識は 2010 年くらいから止まってて完全に老害と化してたんだけど、この間ふと思い付きで MBP をクリーンインストールしたったのに合わせて、Emacs のモダン化に取り組みはじめました。

Emacsテクニックバイブル ?作業効率をカイゼンする200の技?

Emacsテクニックバイブル ?作業効率をカイゼンする200の技?

前までは普通に Anything のままだったんだけど今回は元から Helm にするつもりだったし、expand-region とか multiple-cursors とか、便利系の elisp がドッサリ出てきてたのもあったから、丸っと .emacs.d 以下が変わってきたかんじになってます。とりあえず、今は以下でホストしてる。

細かな tips だったりは今後のネタになるんだろうと思うんですが、もう今回は git clone して立ち上げたら今の環境にすぐにできるようにってことで、しっかり管理していきたい!!! と思ってます。が、elisp のパッケージ管理は、package.el ではなく Cask の時代なんでしょうか。
elisp で書くとこんな感じなんですが、パッケージ名をダラダラと書くのがちょっとダサいかんじなので、やっぱり Cask 化すべきなんだろうなというのをこのエントリを書きながら思いました。

;;; 関数定義
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun create-lock-file (filename)
  "指定されたファイルを空ファイルとして作成する"
  (with-temp-buffer
    (write-region 1 1 filename t)))

;;; ELPA 設定
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(require 'package)

; user-dir の設定
(setq package-user-dir "~/.emacs.d/elisp/elpa")

; MELPA を登録
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/"))

(package-initialize)

;; 初回設定時のみ実行される
(let ((lockfile "~/.emacs.d/installed"))
  (unless (file-exists-p lockfile)
    ;; パッケージをリフレッシュ
    (package-refresh-contents)
    ;; user-dir を作成
    (make-directory package-user-dir t)
    ;; ロックファイルを作成
    (create-lock-file lockfile)))


; インストールするパッケージ群を定義
(setq my/install-packages
  '(
    init-loader
    powerline
    exec-path-from-shell
    helm
    helm-descbinds

    ;; snip
    
    git-gutter
    helm-perldoc
    ))


; 未インストールのパッケージをインストールする
(dolist (package my/install-packages)
  (unless (package-installed-p package)
    (package-install package)))

;;; init-loader 設定
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(require 'init-loader)

(setq init-loader-show-log-after-init "error-only")
(init-loader-load "~/.emacs.d/inits")