20090622 Vimm4
Transcript of 20090622 Vimm4
![Page 1: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/1.jpg)
VimM#42009.06.22 at Akihabara
Vim on Emacs
![Page 3: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/3.jpg)
自己紹介
http://d.hatena.ne.jp/Ubuntu/http://b.hatena.ne.jp/Ubuntu/
![Page 4: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/4.jpg)
自己紹介
http://twitter.com/twitthttp://twitter.com/twitt_http://twitter.com/twitt__http://twitter.com/twitt33http://twitter.com/その他
![Page 5: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/5.jpg)
今日のテーマ
Vim とはなにか
![Page 6: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/6.jpg)
Vim とは
人はなぜ Vim を使うのか
![Page 7: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/7.jpg)
なぜ Vim
1. ホームポジションから手を離したくない
![Page 8: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/8.jpg)
なぜ Vim
1. ホームポジションから手を離したくない2. 自分で機能を拡張したい
![Page 9: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/9.jpg)
なぜ Vim
1. ホームポジションから手を離したくない2. 自分で機能を拡張したい3. そこに Vim があるから ( 氏久 達博 1984 ~ )
![Page 10: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/10.jpg)
なぜ Vim
1. ホームポジションから手を離したくない2. 自分で機能を拡張したい3. そこに Vim があるから ( 氏久 達博 1984 ~ )4. その他
![Page 11: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/11.jpg)
なぜ Vim
1. ホームポジションから手を離したくない2. 自分で機能を拡張したい3. そこに Vim があるから ( 氏久 達博 1984 ~ )4. その他
![Page 12: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/12.jpg)
ホームポジション死守
1. Vim を使う
![Page 13: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/13.jpg)
ホームポジション死守
1. Vim を使う2. Emacs を使う
![Page 14: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/14.jpg)
ホームポジション死守
1. Vim を使う2. Emacs を使う3. Os 自体のキーバインドを変更する ( 窓使いの憂鬱、 XKeymacs 等 )
![Page 15: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/15.jpg)
ホームポジション死守
3. Os 自体のキーバインドを変更する ( 窓使いの憂鬱、 XKeymacs 等 )
どうみてもバッドノウハウです。本当にありがとうございました。( 他の環境で困る、別のソフトに影響等等… )
![Page 16: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/16.jpg)
ホームポジション死守
1. Vim を使う2. Emacs を使う3. Os 自体のキーバインドを変更する ( 窓使いの憂鬱、 XKeymacs 等 )
![Page 17: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/17.jpg)
自分で拡張したい
1. Vim を使う2. Emacs を使う
![Page 18: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/18.jpg)
Vim と Emacs
Vim と Emacs の違いってナニ?
![Page 19: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/19.jpg)
Vim と Emacs の違い
Vim とはデスクトップ環境である
![Page 20: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/20.jpg)
Vim と Emacs の違い
Emacs とはデスクトップ環境である
![Page 21: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/21.jpg)
Vim と Emacs
Vim = Lisp の動かない VimEmacs = Lisp の動く Vim
![Page 22: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/22.jpg)
Emacs
Lisp インタプリタ + elisp(Emacs Lisp)= Emacs
![Page 23: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/23.jpg)
Emacs
Emacs is not “editor”.
![Page 24: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/24.jpg)
Emacs
Emacs is not “editor”.(※ エディタとして使用することもできる )
![Page 25: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/25.jpg)
Emacs
Emacs is not “editor”.(※ エディタとして使用することもできる )Lisp で自由自在にプログラムを動かせる
![Page 26: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/26.jpg)
プログラミング環境
Vim is not “editor”.それ Vim でもできるよ
![Page 27: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/27.jpg)
プログラミング環境
すなわちVim か Emacs か問題 = 言語の違い
この 1 点に集約される
![Page 28: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/28.jpg)
プログラミング環境
Emacs = LispVim = VimScript
![Page 29: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/29.jpg)
vi っぽく
Vim の良さファイルを開くと参照 / 移動モード
文字入力時にモード切替
![Page 30: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/30.jpg)
vi っぽく
コマンド→入力→コマンド→入力メリハリ
![Page 31: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/31.jpg)
vi っぽく
ファイルを開くと View モード
(add-hook 'find-file-hooks (lambda () (cond (view-mode) (t (view-mode)))))
![Page 32: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/32.jpg)
vi っぽく
参照と編集の切り替え(defun toggle-view-mode () (interactive) (cond (view-mode (view-mode nil) (setq hl-line-mode nil)) (t (view-mode))))(define-key global-map "\C-x\C-j" 'toggle-view-mode)(define-key global-map "\C-x\ j" 'toggle-view-mode)(define-key global-map [C-backspace] 'toggle-view-mode)
![Page 33: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/33.jpg)
view モードを好みの感じに(setq view-read-only t)(defvar pager-keybind `( ;; vi-like ("h" . backward-word) ("l" . forward-word) ("j" . next-line) ("k" . previous-line) ("J" . next-window-line) ("K" . previous-window-line) ("b" . scroll-down) ("f" . scroll-up) (" " . scroll-up) ("w" . forward-word) ("e" . backward-word) ("n" . ,(lambda () (interactive) (scroll-up 1))) ("p" . ,(lambda () (interactive) (scroll-down 1))) ("[" . forward-sexp) ("]" . backward-sexp) ("." anything-c-moccur-occur-by-moccur) ("c" . scroll-other-window-down) ("v" . scroll-other-window)))(defun define-many-keys (keymap key-table &optional includes) (let (key cmd) (dolist (key-cmd key-table) (setq key (car key-cmd) cmd (cdr key-cmd)) (if (or (not includes) (member key includes)) (define-key keymap key cmd))))keymap)
![Page 34: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/34.jpg)
key-chord.el
小指疲れるよ問題を複数キー同時押しで解決
(key-chord-define-global "jk" 'toggle-view-mode)
![Page 35: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/35.jpg)
Vim と Emacs を統一
Emacsのファイルの保存(define-key global-map "\C-x\C-w" 'save-buffer)(define-key global-map "\C-x\ w" 'write-file)(global-set-key "\C-\M-x\C-w" 'save-buffer)
Vimのファイル保存nmap <C-W><C-W> :w<CR>nmap <C-X><C-W> :w!<CR>
![Page 36: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/36.jpg)
操作
ご覧ください
![Page 37: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/37.jpg)
よくある質問
この手の話をするとよく聞く言葉Vim 使えば良くね?
![Page 38: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/38.jpg)
Vim と Emacs
思い出そう!!!1
Vim = Lisp の動かない VimEmacs = Lisp の動く Vim
![Page 39: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/39.jpg)
言語の好み
Lisp を使いたい
![Page 40: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/40.jpg)
参考資料
今日話した内容は、過去に書いたブログ記事でも一部触れていますhttp://d.hatena.ne.jp/Ubuntu/20090519/1242734517http://d.hatena.ne.jp/Ubuntu/20081225/1230169844
![Page 41: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/41.jpg)
dotfiles など
http://github.com/id774/scripts
ファイル本体 scripts/dot_files/dot_vim/scripts/dot_files/dot_emacs.d/
インストーラー (実行注意 )scripts/installer/install_dotvim.shscripts/installer/install_dotemacs.sh
![Page 42: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/42.jpg)
まとめ
Emacs は Lisp の実行環境
Lisp を書けばなんでもできるVim エディタとしても使える
![Page 43: 20090622 Vimm4](https://reader036.fdocuments.in/reader036/viewer/2022062418/5554aa75b4c90502618b51bd/html5/thumbnails/43.jpg)
ありがとうございました