43
VimM#4 2009.06.22 at Akihabara Vim on Emacs

20090622 Vimm4

  • Upload
    id774

  • View
    715

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 20090622 Vimm4

VimM#42009.06.22 at Akihabara

Vim on Emacs

Page 2: 20090622 Vimm4

自己紹介

http://id774.net/

Page 3: 20090622 Vimm4

自己紹介

http://d.hatena.ne.jp/Ubuntu/http://b.hatena.ne.jp/Ubuntu/

Page 4: 20090622 Vimm4

自己紹介

http://twitter.com/twitthttp://twitter.com/twitt_http://twitter.com/twitt__http://twitter.com/twitt33http://twitter.com/その他

Page 5: 20090622 Vimm4

今日のテーマ

Vim とはなにか

Page 6: 20090622 Vimm4

Vim とは

人はなぜ Vim を使うのか

Page 7: 20090622 Vimm4

なぜ Vim

1. ホームポジションから手を離したくない

Page 8: 20090622 Vimm4

なぜ Vim

1. ホームポジションから手を離したくない2. 自分で機能を拡張したい

Page 9: 20090622 Vimm4

なぜ Vim

1. ホームポジションから手を離したくない2. 自分で機能を拡張したい3. そこに Vim があるから ( 氏久 達博 1984 ~ )

Page 10: 20090622 Vimm4

なぜ Vim

1. ホームポジションから手を離したくない2. 自分で機能を拡張したい3. そこに Vim があるから ( 氏久 達博 1984 ~ )4. その他

Page 11: 20090622 Vimm4

なぜ Vim

1. ホームポジションから手を離したくない2. 自分で機能を拡張したい3. そこに Vim があるから ( 氏久 達博 1984 ~ )4. その他

Page 12: 20090622 Vimm4

ホームポジション死守

1. Vim を使う

Page 13: 20090622 Vimm4

ホームポジション死守

1. Vim を使う2. Emacs を使う

Page 14: 20090622 Vimm4

ホームポジション死守

1. Vim を使う2. Emacs を使う3. Os 自体のキーバインドを変更する ( 窓使いの憂鬱、 XKeymacs 等 )

Page 15: 20090622 Vimm4

ホームポジション死守

3. Os 自体のキーバインドを変更する ( 窓使いの憂鬱、 XKeymacs 等 )

どうみてもバッドノウハウです。本当にありがとうございました。( 他の環境で困る、別のソフトに影響等等… )

Page 16: 20090622 Vimm4

ホームポジション死守

1. Vim を使う2. Emacs を使う3. Os 自体のキーバインドを変更する ( 窓使いの憂鬱、 XKeymacs 等 )

Page 17: 20090622 Vimm4

自分で拡張したい

1. Vim を使う2. Emacs を使う

Page 18: 20090622 Vimm4

Vim と Emacs

Vim と Emacs の違いってナニ?

Page 19: 20090622 Vimm4

Vim と Emacs の違い

Vim とはデスクトップ環境である

Page 20: 20090622 Vimm4

Vim と Emacs の違い

Emacs とはデスクトップ環境である

Page 21: 20090622 Vimm4

Vim と Emacs

Vim = Lisp の動かない VimEmacs = Lisp の動く Vim

Page 22: 20090622 Vimm4

Emacs

Lisp インタプリタ + elisp(Emacs Lisp)= Emacs

Page 23: 20090622 Vimm4

Emacs

Emacs is not “editor”.

Page 24: 20090622 Vimm4

Emacs

Emacs is not “editor”.(※ エディタとして使用することもできる )

Page 25: 20090622 Vimm4

Emacs

Emacs is not “editor”.(※ エディタとして使用することもできる )Lisp で自由自在にプログラムを動かせる

Page 26: 20090622 Vimm4

プログラミング環境

Vim is not “editor”.それ Vim でもできるよ

Page 27: 20090622 Vimm4

プログラミング環境

すなわちVim か Emacs か問題 = 言語の違い

この 1 点に集約される

Page 28: 20090622 Vimm4

プログラミング環境

Emacs = LispVim = VimScript

Page 29: 20090622 Vimm4

vi っぽく

Vim の良さファイルを開くと参照 / 移動モード

文字入力時にモード切替

Page 30: 20090622 Vimm4

vi っぽく

コマンド→入力→コマンド→入力メリハリ

Page 31: 20090622 Vimm4

vi っぽく

ファイルを開くと View モード

(add-hook 'find-file-hooks (lambda () (cond (view-mode) (t (view-mode)))))

Page 32: 20090622 Vimm4

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

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

key-chord.el

小指疲れるよ問題を複数キー同時押しで解決

(key-chord-define-global "jk" 'toggle-view-mode)

Page 35: 20090622 Vimm4

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

操作

ご覧ください

Page 37: 20090622 Vimm4

よくある質問

この手の話をするとよく聞く言葉Vim 使えば良くね?

Page 38: 20090622 Vimm4

Vim と Emacs

思い出そう!!!1

Vim = Lisp の動かない VimEmacs = Lisp の動く Vim

Page 39: 20090622 Vimm4

言語の好み

Lisp を使いたい

Page 40: 20090622 Vimm4

参考資料

今日話した内容は、過去に書いたブログ記事でも一部触れていますhttp://d.hatena.ne.jp/Ubuntu/20090519/1242734517http://d.hatena.ne.jp/Ubuntu/20081225/1230169844

Page 41: 20090622 Vimm4

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

まとめ

Emacs は Lisp の実行環境

Lisp を書けばなんでもできるVim エディタとしても使える

Page 43: 20090622 Vimm4

ありがとうございました