LoginSignup
11
6

More than 5 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攻殻機動隊の紹介

11
6
1

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
11
6