SlideShare a Scribd company logo
暗黒美夢王とEmacs 
〜なぜ暗黒美夢王はVimを 
選んだのか〜
自己紹介だ、フハハハハハ 
● 我が名は Shougo、いや暗黒美夢王(ダークビム 
マスター) 
● Vim を闇の力で魔改造する活動を日々行っている 
● 今回は久しぶりの Emacs 勉強会だということ 
で、盛り上げに参上した 
● Emacs の知識はそれなりにある
注意だ、フハハハハハ 
● この発表には Vim の話が多いかもしれない 
● Emacs を馬鹿にする意図はないので勘違いしな 
いで欲しい 
● 我は Emacs のことを尊敬しており、よきライバ 
ルだと思っている 
● Emacs 界隈が元気になってほしいため、発表す 
ることにした
さて…… 
● 闇の活動を続けていると、よくこのような質問 
を受ける 
● 「なんで暗黒美夢王はEmacsを使わないんです 
か」 
● 今回は我が Vim を選んだ理由を解説する 
● Emacs 勉強会でな!
Emacs との出会い 
● 自分がテキストエディタに興味を持ったのは 
Windows 環境で 
● Emacs は非常に使いにくく、情報がなかった 
● 下手に他のエディタと操作性が近いので、その利 
点をあまり認識できなかった 
● xyzzy も試したが慣れない……
Linux を使うようになり…… 
● Linux では Emacs が使いやすかったので 
認識を改める 
● しかし、もう Vim に慣れた後では乗り換える 
気にならず
Windows での使いやすさ 
● 宗教上の理由により Windows で開発しなければいけない 
ことがある 
● Vim は Windows でもまともに動く 
● 日本の Vim パッチ職人にはなぜか(?) Windows メイ 
ンの人が多い 
● Emacs は昔よりはマシになったとはいえ、Windows で 
使うには苦労が多い 
● Emacs を Mac で使うのも辛いと風のうわさで……
機能がなければ追加すれば? 
● Vim plugin で大抵の機能は実現できる 
● もしものときはソースコードを変更すればよい 
● Vim のソースコードをいじるのは大変だが、 
慣れは怖いものである 
● Vim script を書くのは苦痛? 
● 我は毎日 Vim script を書いているが……
情報の豊富さ 
● チュートリアルを覚えた後が問題 
● Vim は豊富な情報があるので書籍に頼らずと 
も自分で勉強できる 
● Emacs は情報が分散しており、書籍に頼ら 
ない独学は難しい(個人の感想)
優れた組み込み機能 
● 補完ウインドウ 
● タブ 
● スペルチェック 
● Quick Fix 
● シンタックスハイライト 
● など…… 
● 組み込み機能は Vim plugin からいじりづらいのが欠点 
● Emacs は組み込み機能よりも Emacs Lisp による拡張を重視
プラグインを失うのが辛い 
● Vim に足りないプラグインはほとんど自分で 
書いてしまった 
● Emacs に移行すると、これを失うのがつら 
すぎる 
● Emacs 環境での代替物は不完全
優れた互換性 
● 10 年前のプラグインが動作する 
● Vim の互換性に対する安心感は異常 
● レガシーを抱え込む欠点もある
おまけ 
Emacsがこの先 
生き残るには
時はエディタ戦国時代 
● IDE や他のテキストエディタとの競争は激しさを増す 
● これまで生き残ってきたEmacs や Vim といえども、戦わな 
ければ生き残れない 
● 「オープンソースだから」、「これまで生き残ってきたから」楽 
観視するのは甘い 
● しかし日本の Emacs 界には元気がない…… 
● Emacs の新規参入者は Vim から 
● evil-mode がなぜか重宝される
そこで…… 
● 本当に Emacs に元気がないのか、具体的な 
データを用いて検証しよう
例:Google での検索数
例:Google での検索トレンド
例:日本での検索トレンド
例:IDEの脅威
例:IDEの脅威(2)
例:エディタ戦争(日本)
例:Emacsバリアントの現状(日本)
例:vim-jpとemacs-jp
例:Issues
例:lingr
例:reddit でのユーザー数
Emacs界に足りないものとは 
● モード? 
● RPC? 
● 互換性? 
● タブ? 
● 否!
Emacs界に足りないものとは 
愛
愛に満ち溢れた行動例 
● 我が Emacs だ! 
● Twitter でつぶやくのは常に Emacs のこと 
● 脳内で Emacs を実行できる 
● 日常を Emacs に変換する 
● 周囲から Emacs 扱いされる 
● 勉強会では Emacs の歌を歌い出す 
● Ask.fm での質問を Emacs に関する質問に変換する
愛に満ち溢れた行動例 
● Kernel/VM 勉強会で「EmacsはVMだ」 
と主張する 
● Emacs で動作するバイナリエディタを作成 
し、x86 勉強会に殴りこみをかける
愛、そして…… 
● 「そうか、私は Emacs を愛していたのか」 
● 「おれは人間をやめるぞーー!!」 
● キミは暗黒威魔苦素王(ダークイーマックスマ 
スター)として覚醒する
おわりに 
● 暗黒威魔苦素王(ダークイーマックスマス 
ター)の登場を我は待ち望んでいる 
● 闇の力で Emacs を変えるのだ

More Related Content

What's hot (20)

エラーハンドリング
エラーハンドリングエラーハンドリング
エラーハンドリング
道化師 堂華
 
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
Life Robotics
 
20221226_TITECH_lecture_ishizaki_public.pdf
20221226_TITECH_lecture_ishizaki_public.pdf20221226_TITECH_lecture_ishizaki_public.pdf
20221226_TITECH_lecture_ishizaki_public.pdf
Kazuaki Ishizaki
 
ACRiウェビナー:小野様ご講演資料
ACRiウェビナー:小野様ご講演資料ACRiウェビナー:小野様ご講演資料
ACRiウェビナー:小野様ご講演資料
直久 住川
 
C++ マルチスレッド 入門
C++ マルチスレッド 入門C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
 
GLSLによるシェーダーアートことはじめ
GLSLによるシェーダーアートことはじめGLSLによるシェーダーアートことはじめ
GLSLによるシェーダーアートことはじめ
Yoichi Hirata
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
 
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
MITSUNARI Shigeo
 
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
 
【DL輪読会】Unpaired Image Super-Resolution Using Pseudo-Supervision
【DL輪読会】Unpaired Image Super-Resolution Using Pseudo-Supervision【DL輪読会】Unpaired Image Super-Resolution Using Pseudo-Supervision
【DL輪読会】Unpaired Image Super-Resolution Using Pseudo-Supervision
Deep Learning JP
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
 
最近のディープラーニングのトレンド紹介_20200925
最近のディープラーニングのトレンド紹介_20200925最近のディープラーニングのトレンド紹介_20200925
最近のディープラーニングのトレンド紹介_20200925
小川 雄太郎
 
TDD のこころ @ OSH2014
TDD のこころ @ OSH2014TDD のこころ @ OSH2014
TDD のこころ @ OSH2014
Takuto Wada
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
Takami Sato
 
NVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 LinuxNVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 Linux
Tomoki SHISHIKURA
 
条件分岐とcmovとmaxps
条件分岐とcmovとmaxps条件分岐とcmovとmaxps
条件分岐とcmovとmaxps
MITSUNARI Shigeo
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)
AtCoder Inc.
 
エラーハンドリング
エラーハンドリングエラーハンドリング
エラーハンドリング
道化師 堂華
 
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
協働ロボットCOROの開発における形式的仕様記述KMLの開発と適用
Life Robotics
 
20221226_TITECH_lecture_ishizaki_public.pdf
20221226_TITECH_lecture_ishizaki_public.pdf20221226_TITECH_lecture_ishizaki_public.pdf
20221226_TITECH_lecture_ishizaki_public.pdf
Kazuaki Ishizaki
 
ACRiウェビナー:小野様ご講演資料
ACRiウェビナー:小野様ご講演資料ACRiウェビナー:小野様ご講演資料
ACRiウェビナー:小野様ご講演資料
直久 住川
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
 
GLSLによるシェーダーアートことはじめ
GLSLによるシェーダーアートことはじめGLSLによるシェーダーアートことはじめ
GLSLによるシェーダーアートことはじめ
Yoichi Hirata
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
 
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
MITSUNARI Shigeo
 
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
 
【DL輪読会】Unpaired Image Super-Resolution Using Pseudo-Supervision
【DL輪読会】Unpaired Image Super-Resolution Using Pseudo-Supervision【DL輪読会】Unpaired Image Super-Resolution Using Pseudo-Supervision
【DL輪読会】Unpaired Image Super-Resolution Using Pseudo-Supervision
Deep Learning JP
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
 
最近のディープラーニングのトレンド紹介_20200925
最近のディープラーニングのトレンド紹介_20200925最近のディープラーニングのトレンド紹介_20200925
最近のディープラーニングのトレンド紹介_20200925
小川 雄太郎
 
TDD のこころ @ OSH2014
TDD のこころ @ OSH2014TDD のこころ @ OSH2014
TDD のこころ @ OSH2014
Takuto Wada
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
Takami Sato
 
NVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 LinuxNVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 Linux
Tomoki SHISHIKURA
 
条件分岐とcmovとmaxps
条件分岐とcmovとmaxps条件分岐とcmovとmaxps
条件分岐とcmovとmaxps
MITSUNARI Shigeo
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)
AtCoder Inc.
 

More from Shougo (12)

Vim conf2019
Vim conf2019Vim conf2019
Vim conf2019
Shougo
 
Neosnippet.vim + Deoppet.nvim in Vim conf 2017
Neosnippet.vim + Deoppet.nvim in Vim conf 2017Neosnippet.vim + Deoppet.nvim in Vim conf 2017
Neosnippet.vim + Deoppet.nvim in Vim conf 2017
Shougo
 
カードゲームで学ぶテキストエディタ
カードゲームで学ぶテキストエディタカードゲームで学ぶテキストエディタ
カードゲームで学ぶテキストエディタ
Shougo
 
deoplete: The dark powered auto completion plugin for neovim
deoplete: The dark powered auto completion plugin for neovimdeoplete: The dark powered auto completion plugin for neovim
deoplete: The dark powered auto completion plugin for neovim
Shougo
 
Let's talk about neovim
Let's talk about neovimLet's talk about neovim
Let's talk about neovim
Shougo
 
neovim = VM
neovim = VMneovim = VM
neovim = VM
Shougo
 
An introduction to neocomplete
An introduction to neocompleteAn introduction to neocomplete
An introduction to neocomplete
Shougo
 
neobundle.vimについて+おまけ
neobundle.vimについて+おまけneobundle.vimについて+おまけ
neobundle.vimについて+おまけ
Shougo
 
Vimから見たemacs
Vimから見たemacsVimから見たemacs
Vimから見たemacs
Shougo
 
Vim = VM
Vim = VMVim = VM
Vim = VM
Shougo
 
modern X86 environment
modern X86 environmentmodern X86 environment
modern X86 environment
Shougo
 
Ultimate completion environment with neocomplcache in vim
Ultimate completion environment with neocomplcache in vimUltimate completion environment with neocomplcache in vim
Ultimate completion environment with neocomplcache in vim
Shougo
 
Vim conf2019
Vim conf2019Vim conf2019
Vim conf2019
Shougo
 
Neosnippet.vim + Deoppet.nvim in Vim conf 2017
Neosnippet.vim + Deoppet.nvim in Vim conf 2017Neosnippet.vim + Deoppet.nvim in Vim conf 2017
Neosnippet.vim + Deoppet.nvim in Vim conf 2017
Shougo
 
カードゲームで学ぶテキストエディタ
カードゲームで学ぶテキストエディタカードゲームで学ぶテキストエディタ
カードゲームで学ぶテキストエディタ
Shougo
 
deoplete: The dark powered auto completion plugin for neovim
deoplete: The dark powered auto completion plugin for neovimdeoplete: The dark powered auto completion plugin for neovim
deoplete: The dark powered auto completion plugin for neovim
Shougo
 
Let's talk about neovim
Let's talk about neovimLet's talk about neovim
Let's talk about neovim
Shougo
 
neovim = VM
neovim = VMneovim = VM
neovim = VM
Shougo
 
An introduction to neocomplete
An introduction to neocompleteAn introduction to neocomplete
An introduction to neocomplete
Shougo
 
neobundle.vimについて+おまけ
neobundle.vimについて+おまけneobundle.vimについて+おまけ
neobundle.vimについて+おまけ
Shougo
 
Vimから見たemacs
Vimから見たemacsVimから見たemacs
Vimから見たemacs
Shougo
 
Vim = VM
Vim = VMVim = VM
Vim = VM
Shougo
 
modern X86 environment
modern X86 environmentmodern X86 environment
modern X86 environment
Shougo
 
Ultimate completion environment with neocomplcache in vim
Ultimate completion environment with neocomplcache in vimUltimate completion environment with neocomplcache in vim
Ultimate completion environment with neocomplcache in vim
Shougo
 

Recently uploaded (6)

(2025/03/03/10:07)Saleshub用アスエネサービス資料.pdf
(2025/03/03/10:07)Saleshub用アスエネサービス資料.pdf(2025/03/03/10:07)Saleshub用アスエネサービス資料.pdf
(2025/03/03/10:07)Saleshub用アスエネサービス資料.pdf
leesubin14
 
株式会社STORYにおけるMagicPod導入事例。開発・テスト環境でMagicPodを有効活用する
株式会社STORYにおけるMagicPod導入事例。開発・テスト環境でMagicPodを有効活用する株式会社STORYにおけるMagicPod導入事例。開発・テスト環境でMagicPodを有効活用する
株式会社STORYにおけるMagicPod導入事例。開発・テスト環境でMagicPodを有効活用する
ssuserd2c5cd
 
XPJUGの運営について、2022年のAWS DEV DAYで発表した内容です。
XPJUGの運営について、2022年のAWS DEV DAYで発表した内容です。XPJUGの運営について、2022年のAWS DEV DAYで発表した内容です。
XPJUGの運営について、2022年のAWS DEV DAYで発表した内容です。
Toru Koido
 
What is RWA x DePIN - #Solana Developer Hub 14 #SolDevHub
What is RWA x DePIN - #Solana Developer Hub 14 #SolDevHubWhat is RWA x DePIN - #Solana Developer Hub 14 #SolDevHub
What is RWA x DePIN - #Solana Developer Hub 14 #SolDevHub
K Kinzal
 
分析モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第44回】
分析モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第44回】分析モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第44回】
分析モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第44回】
Tomoharu ASAMI
 
ChatGPT先生から学ぶPYTHONプログラミング入門 - FUSIONDRIVER, INC.
ChatGPT先生から学ぶPYTHONプログラミング入門 - FUSIONDRIVER, INC.ChatGPT先生から学ぶPYTHONプログラミング入門 - FUSIONDRIVER, INC.
ChatGPT先生から学ぶPYTHONプログラミング入門 - FUSIONDRIVER, INC.
FUSIONDRIVER, INC.
 
(2025/03/03/10:07)Saleshub用アスエネサービス資料.pdf
(2025/03/03/10:07)Saleshub用アスエネサービス資料.pdf(2025/03/03/10:07)Saleshub用アスエネサービス資料.pdf
(2025/03/03/10:07)Saleshub用アスエネサービス資料.pdf
leesubin14
 
株式会社STORYにおけるMagicPod導入事例。開発・テスト環境でMagicPodを有効活用する
株式会社STORYにおけるMagicPod導入事例。開発・テスト環境でMagicPodを有効活用する株式会社STORYにおけるMagicPod導入事例。開発・テスト環境でMagicPodを有効活用する
株式会社STORYにおけるMagicPod導入事例。開発・テスト環境でMagicPodを有効活用する
ssuserd2c5cd
 
XPJUGの運営について、2022年のAWS DEV DAYで発表した内容です。
XPJUGの運営について、2022年のAWS DEV DAYで発表した内容です。XPJUGの運営について、2022年のAWS DEV DAYで発表した内容です。
XPJUGの運営について、2022年のAWS DEV DAYで発表した内容です。
Toru Koido
 
What is RWA x DePIN - #Solana Developer Hub 14 #SolDevHub
What is RWA x DePIN - #Solana Developer Hub 14 #SolDevHubWhat is RWA x DePIN - #Solana Developer Hub 14 #SolDevHub
What is RWA x DePIN - #Solana Developer Hub 14 #SolDevHub
K Kinzal
 
分析モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第44回】
分析モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第44回】分析モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第44回】
分析モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第44回】
Tomoharu ASAMI
 
ChatGPT先生から学ぶPYTHONプログラミング入門 - FUSIONDRIVER, INC.
ChatGPT先生から学ぶPYTHONプログラミング入門 - FUSIONDRIVER, INC.ChatGPT先生から学ぶPYTHONプログラミング入門 - FUSIONDRIVER, INC.
ChatGPT先生から学ぶPYTHONプログラミング入門 - FUSIONDRIVER, INC.
FUSIONDRIVER, INC.
 

暗黒美夢王とEmacs