• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Vim = VM
 

Vim = VM

on

  • 5,022 views

 

Statistics

Views

Total Views
5,022
Views on SlideShare
4,974
Embed Views
48

Actions

Likes
6
Downloads
8
Comments
0

7 Embeds 48

http://paper.li 24
http://s.deeeki.com 6
http://a0.twimg.com 6
https://si0.twimg.com 5
https://twitter.com 4
https://twimg0-a.akamaihd.net 2
http://slideclip.b-prep.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Vim = VM Vim = VM Presentation Transcript

    • Vim = VM
    • 自己紹介  ハンドルネーム:Shougo  Vim大好き  CPUやOSの話も好きです  職業:学生  Vim歴:4年  私の.vimrcは1576行あるぞ!(コメントを除く)
    • 今日はVimの話をします。
    • なぜVimなのか? カーネル / VM探検隊 ↓ カーネル / VIM探検隊 ↓ Vim 自然な発想!
    • まじめな解説 アプリケーション アプリケーション アプリ アプリ ケーション VMM ケーション ホストOS ホストOS ハードウェア ハードウェア Type II VMM Vimmer's Environment
    • 「Vimは環境」  Vimはマルチプラットフォーム  Vimさえあれば、その上で様々なアプリケーション が動作する 例: テトリス,  Twitterクライアント, シェル,  端末 辞書ビューワ, ファイラー  よって、Vim = VMの式がなりたつ
    • Vimの低レベルレイヤー  VimはVim Scriptで拡張が可能  Vim ScriptはOS用語でいえばDevice Driver  それでも実現不能な場合は外部ライブラリを用い るか、ソース本体にパッチを当てる  ソースにパッチ = カーネルそのものを書き換え  外部ライブラリ = カーネルモジュール  各々で読み換えてください
    • Vimの通信機能  全てをVimだけでやることは不可能なので、外部と の通信機能が必要  Vmでいうところの、VM RPC (Remote Procedure  Call)  VimはRuby, Tcl, Python, Perl等、外部言語のイン タフェースが充実している  さらに、共有ライブラリも呼び出せる! これはEmacs では不可能  ただし外部プログラムとの通信機能は弱い
    • Emacsとの比較  Emacsはシェルと通信するための機能が充実して いる 例: shell­mode, term­mode, eshell­mode, comint­ mode...  かたくなにエディタであろうとするVimには入る予 定なし
    • vimproc  なければ作ってしまえばいいじゃない! ということ で、Yukihiro Nakadairaさんの通信ライブラリを改 造して使っています。  pipe, pty, socketを用いた通信が可能  vimshellと連携してコマンドのパースが可能  github上で公開中
    • vimshell  100 % Vim Scriptで書かれたシェル  EmacsでいうところのEshell  内部の通信ではvimprocを使っている  neocomplcacheで自動補完  将来的にはシェルスクリプトを書けるようにしたい ……  github上で公開中
    • vimshell 今からデモをやります
    • おまけ  そろそろVim Scriptに足りない機能が見えてきた。 パッチを書くべきなのか……  ちなみに、以前Vim Scriptでバイナリエディタを作ろ うとしたことがあります →途中で挫折  時間があったら再挑戦したいです。目指せVimの hexl­mode!