Movatterモバイル変換


[0]ホーム

URL:


Shougo, profile picture
Uploaded byShougo
PDF, PPTX21,897 views

Vimから見たemacs

Embed presentation

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

Recommended

PDF
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
 
PDF
Docker Compose 徹底解説
PPTX
BoostAsioで可読性を求めるのは間違っているだろうか
PPTX
冬のLock free祭り safe
PDF
いまさら聞けないPostgreSQL運用管理
PDF
SFUの話
 
PPTX
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
PPTX
本当は恐ろしい分散システムの話
PDF
暗黒美夢王とEmacs
 
PPTX
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
 
PDF
シリコンバレーの「何が」凄いのか
PDF
Ml system in_python
PDF
ABEMA を次のフェーズへ進化させる技術への取り組み
PDF
強化学習と逆強化学習を組み合わせた模倣学習
PPTX
Map
PDF
コンピュータビジョンの最新ソフトウェア開発環境 SSII2015 チュートリアル hayashi
PDF
レコメンドアルゴリズムの基本と周辺知識と実装方法
PDF
こわくない Git
PDF
暗号技術の実装と数学
PDF
ゲーム開発者のための C++11/C++14
PPTX
Linuxのsemaphoreとmutexを見る 
PDF
Smalltalkだめ自慢
PPTX
イベント駆動プログラミングとI/O多重化
PPTX
DockerコンテナでGitを使う
PPT
Lockfree Queue
PDF
UniRx完全に理解した
PPT
Glibc malloc internal
PDF
Shougoの開発環境
 
PDF
「とても小さいVim」vim tiny
bygu4
 

More Related Content

PDF
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
 
PDF
Docker Compose 徹底解説
PPTX
BoostAsioで可読性を求めるのは間違っているだろうか
PPTX
冬のLock free祭り safe
PDF
いまさら聞けないPostgreSQL運用管理
PDF
SFUの話
 
PPTX
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
PPTX
本当は恐ろしい分散システムの話
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
 
Docker Compose 徹底解説
BoostAsioで可読性を求めるのは間違っているだろうか
冬のLock free祭り safe
いまさら聞けないPostgreSQL運用管理
SFUの話
 
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
本当は恐ろしい分散システムの話

What's hot

PDF
暗黒美夢王とEmacs
 
PPTX
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
 
PDF
シリコンバレーの「何が」凄いのか
PDF
Ml system in_python
PDF
ABEMA を次のフェーズへ進化させる技術への取り組み
PDF
強化学習と逆強化学習を組み合わせた模倣学習
PPTX
Map
PDF
コンピュータビジョンの最新ソフトウェア開発環境 SSII2015 チュートリアル hayashi
PDF
レコメンドアルゴリズムの基本と周辺知識と実装方法
PDF
こわくない Git
PDF
暗号技術の実装と数学
PDF
ゲーム開発者のための C++11/C++14
PPTX
Linuxのsemaphoreとmutexを見る 
PDF
Smalltalkだめ自慢
PPTX
イベント駆動プログラミングとI/O多重化
PPTX
DockerコンテナでGitを使う
PPT
Lockfree Queue
PDF
UniRx完全に理解した
PPT
Glibc malloc internal
暗黒美夢王とEmacs
 
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
 
シリコンバレーの「何が」凄いのか
Ml system in_python
ABEMA を次のフェーズへ進化させる技術への取り組み
強化学習と逆強化学習を組み合わせた模倣学習
Map
コンピュータビジョンの最新ソフトウェア開発環境 SSII2015 チュートリアル hayashi
レコメンドアルゴリズムの基本と周辺知識と実装方法
こわくない Git
暗号技術の実装と数学
ゲーム開発者のための C++11/C++14
Linuxのsemaphoreとmutexを見る 
Smalltalkだめ自慢
イベント駆動プログラミングとI/O多重化
DockerコンテナでGitを使う
Lockfree Queue
UniRx完全に理解した
Glibc malloc internal

Similar to Vimから見たemacs

PDF
Shougoの開発環境
 
PDF
「とても小さいVim」vim tiny
bygu4
 
PDF
Vim script と vimrc の正しい書き方@nagoya.vim #1
 
PDF
Vim = VM
 
PDF
うわ…私のEmacs力、低すぎ...?
PDF
neobundle.vimについて+おまけ
 
PDF
10分で作るScala開発環境 using vim
PDF
速習Vim
PDF
Vi(m)を教えた話
bygu4
 
PDF
Vim入門 20130210
 
PDF
易しいVim
KEY
Emacs 使いが Vim を使ってみた(ちょっとだけGit)
PDF
DevEnv Tryit.vim Phrase.vim
 
PDF
Unite vim
 
PDF
「Vim初心者によるVim入門@haman29」
PDF
Vimはこわくない
PDF
Nagoya vim #1 about plugins
 
PDF
Vim の話
 
PPT
Linuxにおける開発環境
PDF
最低限の開発環境を整えるには
 
Shougoの開発環境
 
「とても小さいVim」vim tiny
bygu4
 
Vim script と vimrc の正しい書き方@nagoya.vim #1
 
Vim = VM
 
うわ…私のEmacs力、低すぎ...?
neobundle.vimについて+おまけ
 
10分で作るScala開発環境 using vim
速習Vim
Vi(m)を教えた話
bygu4
 
Vim入門 20130210
 
易しいVim
Emacs 使いが Vim を使ってみた(ちょっとだけGit)
DevEnv Tryit.vim Phrase.vim
 
Unite vim
 
「Vim初心者によるVim入門@haman29」
Vimはこわくない
Nagoya vim #1 about plugins
 
Vim の話
 
Linuxにおける開発環境
最低限の開発環境を整えるには
 

More from Shougo

PDF
Let's talk about neovim
 
ODP
Neosnippet.vim + Deoppet.nvim in Vim conf 2017
 
PDF
Vim conf2019
 
PDF
deoplete: The dark powered auto completion plugin for neovim
 
PDF
neovim = VM
 
ODP
カードゲームで学ぶテキストエディタ
 
ODP
Ultimate completion environment with neocomplcache in vim
 
ODP
modern X86 environment
 
PDF
An introduction to neocomplete
 
Let's talk about neovim
 
Neosnippet.vim + Deoppet.nvim in Vim conf 2017
 
Vim conf2019
 
deoplete: The dark powered auto completion plugin for neovim
 
neovim = VM
 
カードゲームで学ぶテキストエディタ
 
Ultimate completion environment with neocomplcache in vim
 
modern X86 environment
 
An introduction to neocomplete
 

Vimから見たemacs

  • 1.
  • 2.
    自己紹介●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 にも取り込んでい きたい

[8]ページ先頭

©2009-2025 Movatter.jp