Upload
id774
View
715
Download
0
Tags:
Embed Size (px)
Citation preview
VimM#42009.06.22 at Akihabara
Vim on Emacs
自己紹介
http://d.hatena.ne.jp/Ubuntu/http://b.hatena.ne.jp/Ubuntu/
自己紹介
http://twitter.com/twitthttp://twitter.com/twitt_http://twitter.com/twitt__http://twitter.com/twitt33http://twitter.com/その他
今日のテーマ
Vim とはなにか
Vim とは
人はなぜ Vim を使うのか
なぜ Vim
1. ホームポジションから手を離したくない
なぜ Vim
1. ホームポジションから手を離したくない2. 自分で機能を拡張したい
なぜ Vim
1. ホームポジションから手を離したくない2. 自分で機能を拡張したい3. そこに Vim があるから ( 氏久 達博 1984 ~ )
なぜ Vim
1. ホームポジションから手を離したくない2. 自分で機能を拡張したい3. そこに Vim があるから ( 氏久 達博 1984 ~ )4. その他
なぜ Vim
1. ホームポジションから手を離したくない2. 自分で機能を拡張したい3. そこに Vim があるから ( 氏久 達博 1984 ~ )4. その他
ホームポジション死守
1. Vim を使う
ホームポジション死守
1. Vim を使う2. Emacs を使う
ホームポジション死守
1. Vim を使う2. Emacs を使う3. Os 自体のキーバインドを変更する ( 窓使いの憂鬱、 XKeymacs 等 )
ホームポジション死守
3. Os 自体のキーバインドを変更する ( 窓使いの憂鬱、 XKeymacs 等 )
どうみてもバッドノウハウです。本当にありがとうございました。( 他の環境で困る、別のソフトに影響等等… )
ホームポジション死守
1. Vim を使う2. Emacs を使う3. Os 自体のキーバインドを変更する ( 窓使いの憂鬱、 XKeymacs 等 )
自分で拡張したい
1. Vim を使う2. Emacs を使う
Vim と Emacs
Vim と Emacs の違いってナニ?
Vim と Emacs の違い
Vim とはデスクトップ環境である
Vim と Emacs の違い
Emacs とはデスクトップ環境である
Vim と Emacs
Vim = Lisp の動かない VimEmacs = Lisp の動く Vim
Emacs
Lisp インタプリタ + elisp(Emacs Lisp)= Emacs
Emacs
Emacs is not “editor”.
Emacs
Emacs is not “editor”.(※ エディタとして使用することもできる )
Emacs
Emacs is not “editor”.(※ エディタとして使用することもできる )Lisp で自由自在にプログラムを動かせる
プログラミング環境
Vim is not “editor”.それ Vim でもできるよ
プログラミング環境
すなわちVim か Emacs か問題 = 言語の違い
この 1 点に集約される
プログラミング環境
Emacs = LispVim = VimScript
vi っぽく
Vim の良さファイルを開くと参照 / 移動モード
文字入力時にモード切替
vi っぽく
コマンド→入力→コマンド→入力メリハリ
vi っぽく
ファイルを開くと View モード
(add-hook 'find-file-hooks (lambda () (cond (view-mode) (t (view-mode)))))
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)
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)
key-chord.el
小指疲れるよ問題を複数キー同時押しで解決
(key-chord-define-global "jk" 'toggle-view-mode)
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>
操作
ご覧ください
よくある質問
この手の話をするとよく聞く言葉Vim 使えば良くね?
Vim と Emacs
思い出そう!!!1
Vim = Lisp の動かない VimEmacs = Lisp の動く Vim
言語の好み
Lisp を使いたい
参考資料
今日話した内容は、過去に書いたブログ記事でも一部触れていますhttp://d.hatena.ne.jp/Ubuntu/20090519/1242734517http://d.hatena.ne.jp/Ubuntu/20081225/1230169844
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
まとめ
Emacs は Lisp の実行環境
Lisp を書けばなんでもできるVim エディタとしても使える
ありがとうございました