LoginSignup
6

More than 3 years have passed since last update.

自分の .emacs.d について書くよ

Last updated at Posted at 2018-12-15

はじめに

この記事は、UUUM Advent Calendar 2018 15日目です。
JavaScriptで関数型ゲームエンジンを作るよ!part1 を7日目にも書いたのでもしよければ

UUUM ではcssエンジニアとして真面目に働いています。

ギョームでは主にcssを書いたり、cssを動的にするためのスクリプトを書いたり、cssで装飾するためのデータを出力する処理を書いたり、cssを効率よく配布するためのインフラを整えたりしています。

最近Terminalが楽しい!

terminalにこもって遊ばなくちゃ...職場にきてコード書いてる場合じゃねえ by takeounn

カイシャのインフラの強い人にterminalの楽しみ方を教わって以来、インスタ映えするterminalの追及に業務の時間の大半を割いています。

terminalを見てるだけで無限に時間が溶けますね幸せ

スクリーンショット 2018-12-15 14.21.14.png

今回は自分の .emacs.d について書くよ

emacs歴: 3ヶ月くらい
repo: takeokunn/.emacs.d

emacsの用途としては、以下の2つです

  • 設定ファイルをいじる
  • Common Lispを書く

競技用プログラミングをちょこちょこ始めていて、Common Lispで書いています。
最低限上記を快適にできる設定さえあれば良いと思っております。

カイシャでemacs使ってる人自分以外にいないので自分が強くなるしかねぇ....

設定

.emacs.d/init.el
;; ----- initialize ------ ;;

(add-to-list 'load-path (expand-file-name "~/.emacs.d/site-lisp"))

;; ----- theme ----- ;;

(load-theme 'tango-dark)

;; ----- config ------ ;;

;; initial view
(setq inhibit-startup-message t)

;; white space
(setq-default show-trailing-whitespace t)

;; editor bar
(menu-bar-mode -1)
(tool-bar-mode -1)
(global-linum-mode t)

;; auto generate file
(setq make-backup-files nil)
(setq auto-save-default nil)
(setq auto-save-list-file-prefix nil)

;; delete a line with C-k
(setq kill-whole-line t)

;; ignore ring bell
(setq ring-bell-function 'ignore)

;; highlight
(show-paren-mode t)
(setq show-paren-style 'mixed)

;; ----- keybind ----- ;;

(define-key global-map (kbd "C-z") 'undo)
(define-key global-map (kbd "C-m") 'set-mark-command)


;; ----- package ----- ;;

(package-initialize)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)

;; transpose-frame
(require 'transpose-frame)

;; auto-complete
(require 'auto-complete-config)
(ac-config-default)

;; drill-instructor
(require 'drill-instructor)
(setq drill-instructor-global t)

;; neotree
(require 'neotree)
(setq neo-theme (if (display-graphic-p) 'icons 'arrow))

;; move-text
(require 'move-text)

;; smooth-scroll
(require 'smooth-scroll)

;; ----- Lisp ----- ;;

;; slime
(load (expand-file-name "~/quicklisp/slime-helper.el"))
(setq inferior-lisp-program "sbcl")

;; ac-slime
(require 'ac-slime)
(add-hook 'slime-mode-hook 'set-up-slime-ac)
(add-hook 'slime-repl-mode-hook 'set-up-slime-ac)

;; paredit
(require 'paredit)
(autoload 'enable-paredit-mode "paredit" t)
(add-hook 'emacs-lisp-mode-hook 'enable-paredit-mode)
(add-hook 'lisp-mode-hook 'enable-paredit-mode)
(add-hook 'lisp-interaction-mode-hook 'enable-paredit-mode)
(add-hook 'scheme-mode-hook 'enable-paredit-mode)
(eval-after-load "paredit"
  #'(define-key paredit-mode-map (kbd "C-c f") 'paredit-forward-slurp-sexp))
(eval-after-load "paredit"
  #'(define-key paredit-mode-map (kbd "C-c b") 'paredit-forward-barf-sexp))

;; rainbow-delimiters
(require 'rainbow-delimiters)
(add-hook 'prog-mode-hook 'rainbow-delimiters-mode)

簡単な解説

  • 鬼軍曹.el
    Emacsの代表的なキーバインドを強制することができるツール。矢印キーを叩くと怒られます。
    [Emacs] キーバインドを強制するパッケージ 鬼軍曹.el のご紹介

  • slime
    sbclなどのcompilerに即時でコードをcompile/execできる
    <C-c><C-c> でcompileできるの最高すぎる

  • paredit
    カッコの入力を楽にしてくれるplugin
    飲み込む/吐き出す があんまり理解できいないんだよなぁ....

[余談] ChromemacsでChromeもEmacs化

Chromeでもemacs keybind使えるpluginを見つけてしまいました。
https://chrome.google.com/webstore/detail/chromemacs/kfdibhbheajeacnkkakomaliggbgndcf

Custom key mappings は以下のように設定しました。

# Insert your preferred key mappings here.
map <c-e> scrollPageUp
map <c-g><c-w> removeTab
map <c-g><left> goBack
map <c-g><right> goForward

これでネットサーフィン捗りますね。

最後に

この emacs plugin 入れると便利だよ!みたいなのあればコメントで教えてください超喜びます。まだ思考のスピードで編集できないのでもっともっとやり込みたいですね。

UUUMではオシャレなterminalを作れるエンジニアを募集してるらしいです。
詳しくはこちら →→→→→→ UUUM攻殻機動隊の紹介

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
What you can do with signing up
6