Contenu connexe Similaire à Vimから見たemacs (20) Vimから見たemacs2. 自己紹介
● Vimmer 枠の ShougoMatsu です
● 職業:普通のサラリーマン
● Vim/Emacs 勉強会と聞いてやって来ました
● 日本では珍しい重度の Vim 病患者なので、
「Vim」とつぶやいていないと調子が悪くなります
3. 作ってきたプラグイン
● auto-complete.el → neocomplcache
● Dired.el, direx.el → vimfiler
● anything.el(helm.el) → unite.vim
● eshell → vimshell
● package.el, el-get → neobundle.vim
● hexl-mode (?) → vinarise
4. このスライドの目的
● Vim と Emacs にはそれぞれ良いところと悪いとこ
ろがある
● Vim と Emacs の文化を知り、相互理解を深めたい
● スライドの内容は @ShougoMatsu の独断と偏見
に満ちています。これが Vimmer の総意だと勘違
いしないでください。
5. O Vim キーマッピング
● Emacs はモードが無いのでキーバインドが複雑
● 私には、<C-c> <C-x> … とか押せない
● Emacs だとカーソル移動時にコントロールを押し
忘れて泣けることがある
● ただし、Vim もインサートモードのキーマッピングは
Emacs 並に足りない
● つまり、 Vim はインサートモードで Emacs と戦うと
圧倒的に不利
6. O Emacs スクリプト言語
● Vim script はよく批判される
● 例: 無名関数がない、オブジェクト指向がやりづら
い、ライブラリの欠如、コマンドと関数の混
在、eval(:execute) の多用、組み込み機能をカスタ
マイズしづらい etc...
● とはいえ、Emacs Lisp が Vim script よりも圧倒的
に優れているわけではない
7. O Vim ファイル編集能力
● Vim のモードは高速にファイルを編集するため
● Vim のファイル編集能力は圧倒的
● 気分は人間フィルタ
● 自分もそれほど使いこなせているわけではない
● 「詰め Vi(Vim)」 はあるが、「詰め Emacs」は見た
ことがない
● おそらく思想の違い
8. O Emacs 拡張性
● テキストエディタの枠を超えた圧倒的な拡張性
● 最初から拡張することを考えられている
● Vim の場合はスクリプト言語が後付け
● 組み込み機能の自由自在なカスタマイズ
● 本体の機能が Emacs Lisp で記述されている
● ただし、パフォーマンスが犠牲になっている
9. O Vim コミュニティ
● Vim の方がコミュニティの力がある(日本での話)
● Vim-users.jp, vim-jp
● Vim 本体で貢献する日本人の存在
● Emacs の場合、個人で活動している人はいるが、あ
まりまとまっていない印象
● ただ、これから Emacs のコミュニティも活性化する
かも?
10. O Emacs 非同期通信
● Emacs は標準で非同期通信が可能
● 標準添付されている Emacs でも非同期通信は多
用されている
● エディタ内で引きこもるには必須の機能
● Deferred.el, concurrent.el 等の補助ライブラリ
● Vim の場合、Python 等の外部インタフェースや
vimproc を使用しないといけない
11. O Vim 正規表現
● Emacs の正規表現はエスケープが多い
● Vim の正規表現は '' を用いるとエスケープがいら
ない
● ただし、(, ), ?, + はなれない人は戸惑うらし
い
● 更に、先読みや後読みが書きやすい
12. O Emacs 標準添付プラグイン
● Emacs は標準添付プラグインが豊富
● Eshell, org-mode, tramp, dired, ...
● 節操がない、とも言える
● Vim の場合、標準添付プラグインは殆ど無い
● ほとんどの場合、組み込み機能でやってしまうため
13. O Vim ユーザ数
● Vim の方がユーザ数が多い
● ただし、普通のエディタの代わりに使う人も相当数
いる
● Emacs の方が全体的なレベルは高い印象
● Vim はあまり設定しなくても動くから?
14. O Emacs 日本語入力
● 日本語入力はモードとの相性が悪い
● Emacs は日本語入力用のフロントエンドも充実し
ている
● Emacs は日本語入力中にカーソル移動ができる
● Emacs には Org-mode もある
15. O Vim シンタックスハイライト
● Vim のシンタックスハイライトは 300 種類を超える
● シンタックスハイライトの文法もやたらと高機能
● 自分が Vim を使い始めたのはシンタックスハイラ
イトの充実があったから
16. O Emacs 開発安定性
● 一時期リリースが不定期だったが、最近のEmacs
は開発がコミュニティベースで安定している
● Vim もコミュニティベースだが、パッチを当ててリ
リースするのは原作者の Bram Moolenaar 氏
● いつリリースされるかはBram氏にしかわからない
● Vim のソースコードを読める人・パッチを書く人が
少ない
● ただし、Vim には日本人の貢献も数多い(多言語
対応・オムニ補完)
17. O Vim インデント
● Vim はなぜかインデントの設定がやたらと多い
● 標準のインデントプラグインも充実している
● 自作するのも難しくはない
● Emacs はインデント設定で苦労している人が多い
印象がある
18. O Emacs フォント
● Emacs は任意の位置でフォントを自由自在に変更
できる
● もはやワープロのようである
● Vim は等幅フォントのみ。一部フォントを変更できる
が制限が多い
● Web ブラウザやプレゼンテーションツールを実現す
るには必須の機能
● プログラマ用のエディタとして考えると必須機能で
はない
19. O Vim パフォーマンス
● Vim が(ある程度)拡張性を犠牲にしても、組み込
み機能を重視する理由
● ほとんどの機能が組み込みなので組み込み機能は
圧倒的なパフォーマンスを誇る
● 単純なエディタとしてみた場合、速度はとても重要
● ただし、 Vim script の実行速度が高速なわけでは
ない
20. O Emacs 画像表示
● 個人的に、Emacs の羨ましい機能で 1, 2を争う
● エディタとして考えるといらない
● エディタとして考えないとほしい
● まずは誰かパッチを書いてくれる人がいないかと
思っている
21. O Vim 互換性
● Vim は上位互換性をとても重視している
● 10 年以上前の Vim スクリプトが動作
● 基本的に機能は削られない(非推奨になることは
ある)
● Emacs はバージョンアップ時に関数が消えている
……
● Vimでは、新機能を使う時くらいしかバージョン
チェックすることはない
22. O Emacs シェル連携
● 標準で、shell-mode, eshell, term とやたらとたく
さんある
● Emacs から出ない生活の実現
● Vim でもプラグインを導入すれば可能。しかし標準
では無理
23. まとめ
● Vim は開発用の機能、Emacs は開発以外の機能
に優れている
● Emacs はバージョンアップ時に PDF を見れるよう
になったりするので、もはや訳分からないことになっ
ている
● どっちがよいかはもはや個人の好み
● 個人的には Emacs の機能も羨ましい
● 不満があったら Vim script を書いたほうが速いの
で Emacs に移る気はない
24. 終わりに
● 最近 Sublime なんとか、や Eclipse などが現れて
きていますが……
● 「IDEとどう戦うのか」
● Vim と Emacs はこれからも良きライバルになって
行きましょう
● そして Emacs の良い所は Vim にも取り込んでい
きたい