2009-09-06 tokyo-emacs #0x02 コネタ

16
http://www.kwappa.net/ 2009-09-06 tokyo-emacs vol.2 コネタ C-v と C-w を ここちよく 1

Upload: hiromu-shioya

Post on 25-May-2015

633 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 2009-09-06 tokyo-emacs #0x02 コネタ

http://www.kwappa.net/

2009-09-06tokyo-emacs vol.2

コネタC-v と C-w をここちよく

1

Page 2: 2009-09-06 tokyo-emacs #0x02 コネタ

http://www.kwappa.net/

自己紹介

•名前‒ kwappa (かっぱ)• http://www.kwappa.net/

•所属‒ 株式会社もしも•ファンダメンタル・エンジニア

‒ 東京Basic Technology勉強会 (tobe-tobe[とべとべ])• http://bit.ly/tobe-tobe

22

Page 3: 2009-09-06 tokyo-emacs #0x02 コネタ

http://www.kwappa.net/

最初にごめんなさい

•ひたすらコネタです

•内容的には非常に平易

•お昼寝可 / 投石不可3

3

Page 4: 2009-09-06 tokyo-emacs #0x02 コネタ

http://www.kwappa.net/

emacsとの出会い

•ゲームプログラマ‒ VZ / WZ•変態キーバインド

•転職した‒ Solaris 9

•無職期間にあわてて準備‒ 「emacsしかないだろう」という思い込み•クライアントはWindowsだった…

44

Page 5: 2009-09-06 tokyo-emacs #0x02 コネタ

http://www.kwappa.net/

カスタマイズの日々

•結局Meadowを使い始めた‒ ありがとう「Meadow/Emacs memo」

• http://www.bookshelf.jp/soft/meadow.html

•WZとの挙動差に悩む•幸い待機期間があった

55

Page 6: 2009-09-06 tokyo-emacs #0x02 コネタ

http://www.kwappa.net/

違和感その1

•scroll-up / downの挙動‒ バッファの先頭 / 最後が見えている状態で発行するとエラー

•耐えられない…•WZの挙動 : バッファの先頭 / 末尾に移動

66

Page 7: 2009-09-06 tokyo-emacs #0x02 コネタ

http://www.kwappa.net/

こんなコードを書きました

;; Page up / downをWZ風味に(defun my-scroll-up() "my scroll up" (interactive) ; scroll-upに失敗したらバッファ末尾へ (condition-case err (scroll-up) ; エラーの種類 (end-of-buffer (goto-char (point-max)))))

77

Page 8: 2009-09-06 tokyo-emacs #0x02 コネタ

http://www.kwappa.net/

他愛ないコードだけど…

•scroll-downも同様に

•望んでいた挙動が得られた

•つきあっていけそうな予感

88

Page 9: 2009-09-06 tokyo-emacs #0x02 コネタ

http://www.kwappa.net/

調子に乗って同じネタで拡張

•killの挙動‒ regionがない状態でkillするとエラー

•耐えられない…•WZの挙動 : 範囲選択していない状態でコピー→カーソル行をコピー

99

Page 10: 2009-09-06 tokyo-emacs #0x02 コネタ

http://www.kwappa.net/

こんなコードを書きました (1/2)

;; C-w拡張(defun my-kill-region() "kill region / kill line" (interactive) (condition-case err (kill-region (mark) (point)) (mark-inactive (progn (setq bol (progn (beginning-of-line) (point))) (setq eol (progn (end-of-line) (point)))

1010

Page 11: 2009-09-06 tokyo-emacs #0x02 コネタ

http://www.kwappa.net/

こんなコードを書きました (2/2)

(progn ; 行末に改行があればコピー (if (/= eol (point-max)) (setq eol (+ 1 eol))) (kill-region bol eol) (beginning-of-line) (message "cursor line is killed."))))))

1111

Page 12: 2009-09-06 tokyo-emacs #0x02 コネタ

http://www.kwappa.net/

kill-whole-lineでいい疑惑

•行の途中でC-w→ undoしたときの挙動が違う

•kill-whole-lineだとカーソル位置が復元されない

•昨日気づいた

1212

Page 13: 2009-09-06 tokyo-emacs #0x02 コネタ

http://www.kwappa.net/

発表の動機

•「カスタマイズしないで使ってる」という話を聞いたので

•望む挙動はきっと得られる•時間泥棒なので注意

1313

Page 14: 2009-09-06 tokyo-emacs #0x02 コネタ

http://www.kwappa.net/

今後の課題

• .emacs.d/をポータブルにしたい‒ 環境いろいろ•Meadow•Carbon Emacs•ターミナル

• ちゃんとelispを理解したい‒ 典型的な手続き脳

• Emacs 23

1414

Page 15: 2009-09-06 tokyo-emacs #0x02 コネタ

http://www.kwappa.net/

emacsよ俺で変われ

1515

Page 16: 2009-09-06 tokyo-emacs #0x02 コネタ

http://www.kwappa.net/ 16

ご清聴ありがとうございました。

16