Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Vimから見たemacs

27,320 views

Published on

Published in: Health & Medicine
  • Be the first to comment

Vimから見たemacs

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

×