電算部老人会 #1 (2021.09.05)で発表したスライド。
Meta = Altである話をすっぽかしてたことに気がついたorz……。
いまさら始める(vimmerのための)Emacs電算部老人会 #1 2021/09/05Nakaya
View Slide
近況● 大学合格しました● デザイン実験で4bitCPUを作っています● 卒研の進捗は……。● 日記を書いています→eniehack.hatenablog.com● 工華祭でFM放送局をやる……かも……?● phpでblogサービスを作っています● NimとLuaでノベルゲームエンジン開発中
卒研● アウトラインプロセッサの制作– 箇条書きで文章の概形を書いてから、細部の書いてゆく– 文章を階層構造で
ところで
Q. 使っているエディタは?● メモ帳● (Neo)Vim● Emacs● VSCode● Atom● Sublime Text
私はEmacsを使っています
org-mode● 著名なMinor modeの1つ● プレインテキストで– TODOリスト– Read it laterリスト(like Pocket)– 文章を書く● アウトラインプロセッサ– 表計算(?!アイコン: https://simple-icon.org
org-modeの機能● 文書のエクスポート先が豊富– HTML、ODT、Markdown、PDF、LaTeX、Beamer……● LaTeX埋め込み可● 文書内のソースコードを実行可● 文芸的プログラミングができる
emacs用語● Buffer: ソースファイルを編集する場所● Window: frameのペイン● Frame: ウインドウ● Minibuffer: 一番下のコマンドを入力する場所
MinibufferModelinewindow bufferWindowbufferModeline
modeMinor modeMajor mode Major mode Major mode………アイコン: https://simple-icon.org
mode● Major mode– 言語、拡張子、バッファ(タブ相当?)ごと– バッファ1つに対し1つのみ– Cpp-mode、org-mode、ruby-mode……● Minor mode– 1つのバッファに複数使用可– ddskk(入力メソッド)、ivy/helm(minibuffer補完)、company(補完)……
Emacsを使いたいでも、キーバインドはvimがいい
Evilがある● Extensible VI Layer● Emacsにはvi/vim派を受け入れられる心の広さがある– vimにはない画像はGitHubから(https://github.com/emacs-evil/evil)
Q. Emacsは遅い?● daemonを起動しておくと、すぐ起動する– daemonなし(doom emacs): 4s– daemonあり: 1s以下● Emacs Lispをバイトコンパイルしておく
Emacsだって近代的だもん!● LSP● イカすテーマ
LSP● Language Server Protocol● 補完とかLintとかエラーとか● lspmode● Eglot
Q.設定が面倒?● スターターキットがある– Spacemacs– Doom Emacs– Scimax
Spacemacs● 元祖vimmerのためのEmacsフレーバー● layerごとに有効無効の設定する● 拡張性はいまいち……
Doom Emacs● ~/.emacs.dにインストール~/.doom.dに設定を記述● spacemacsより拡張性がある● Emacs Lispのバイトコンパイルを念頭に置いている● DSLで必要な機能を直感的に選択可
Emacsにあるもの● ゲーム● Eliza● Twitter Client
Emacsはゲームセンターだった?!● Tetris● Gomoku