Vim再入門

234
Vim再入門 bleis-tift June 18,2011

description

 

Transcript of Vim再入門

Page 1: Vim再入門

Vim再入門

bleis-tift

June 18,2011

Page 2: Vim再入門

自己紹介

Page 3: Vim再入門

自己紹介

Page 4: Vim再入門

Vim VS Emacs

圧倒的じゃないか!

Page 5: Vim再入門

Vim VS Emacs

圧倒的じゃないか!

Page 6: Vim再入門

Vim VS Emacs

圧倒的じゃないか!

Page 7: Vim再入門

何を話すか

Vimとかよくわからないので・・・

Windows上でのエディタ遍歴

Vimの何がいいの?

テキストオブジェクト

vimrcの書き方

あたりを話します。

Page 8: Vim再入門

何を話すか

Vimとかよくわからないので・・・

Windows上でのエディタ遍歴

Vimの何がいいの?

テキストオブジェクト

vimrcの書き方

あたりを話します。

Page 9: Vim再入門

何を話すか

Vimとかよくわからないので・・・

Windows上でのエディタ遍歴

Vimの何がいいの?

テキストオブジェクト

vimrcの書き方

あたりを話します。

Page 10: Vim再入門

何を話すか

Vimとかよくわからないので・・・

Windows上でのエディタ遍歴

Vimの何がいいの?

テキストオブジェクト

vimrcの書き方

あたりを話します。

Page 11: Vim再入門

何を話すか

Vimとかよくわからないので・・・

Windows上でのエディタ遍歴

Vimの何がいいの?

テキストオブジェクト

vimrcの書き方

あたりを話します。

Page 12: Vim再入門

何を話すか

Vimとかよくわからないので・・・

Windows上でのエディタ遍歴

Vimの何がいいの?

テキストオブジェクト

vimrcの書き方

あたりを話します。

Page 13: Vim再入門

何を話すか

Vimとかよくわからないので・・・

Windows上でのエディタ遍歴

Vimの何がいいの?

テキストオブジェクト

vimrcの書き方

あたりを話します。

Page 14: Vim再入門

対象

Vimに挫折したことがある人

Vim初心者~初級者

(戦闘力 500以下)

Page 15: Vim再入門

対象

Vimに挫折したことがある人

Vim初心者~初級者

(戦闘力 500以下)

Page 16: Vim再入門

対象

Vimに挫折したことがある人

Vim初心者~初級者

(戦闘力 500以下)

Page 17: Vim再入門

対象

Vimに挫折したことがある人

Vim初心者~初級者 (戦闘力 500以下)

Page 18: Vim再入門

戦闘力?

vimrcの実質行数が・・・

100行以下・・・初心者

500行以下・・・初級者

1000行以下・・・中級者

1000行以上・・・上級者

測定不能・・・

詳しくは http://vim-users.jp/2009/07/hack-39/をどうぞ

Page 19: Vim再入門

戦闘力?

vimrcの実質行数が・・・

100行以下・・・初心者

500行以下・・・初級者

1000行以下・・・中級者

1000行以上・・・上級者

測定不能・・・

詳しくは http://vim-users.jp/2009/07/hack-39/をどうぞ

Page 20: Vim再入門

戦闘力?

vimrcの実質行数が・・・

100行以下・・・初心者

500行以下・・・初級者

1000行以下・・・中級者

1000行以上・・・上級者

測定不能・・・

詳しくは http://vim-users.jp/2009/07/hack-39/をどうぞ

Page 21: Vim再入門

戦闘力?

vimrcの実質行数が・・・

100行以下・・・初心者

500行以下・・・初級者

1000行以下・・・中級者

1000行以上・・・上級者

測定不能・・・

詳しくは http://vim-users.jp/2009/07/hack-39/をどうぞ

Page 22: Vim再入門

戦闘力?

vimrcの実質行数が・・・

100行以下・・・初心者

500行以下・・・初級者

1000行以下・・・中級者

1000行以上・・・上級者

測定不能・・・神

詳しくは http://vim-users.jp/2009/07/hack-39/をどうぞ

Page 23: Vim再入門

戦闘力?

vimrcの実質行数が・・・

100行以下・・・初心者

500行以下・・・初級者

1000行以下・・・中級者

1000行以上・・・上級者

測定不能・・・神

詳しくは http://vim-users.jp/2009/07/hack-39/をどうぞ

Page 24: Vim再入門

お願い

戦闘力 500程度のたぶんまだ初心者なので、変なこと言ったら突っ込みをお願いします

Page 25: Vim再入門

お願い

戦闘力 500程度のたぶんまだ初心者なので、変なこと言ったら突っ込みをお願いします

Page 26: Vim再入門

Windows上でのエディタ遍歴

Page 27: Vim再入門

Windows上でのエディタ遍歴

1. メモ帳

マジ、ホビロン!

Page 28: Vim再入門

Windows上でのエディタ遍歴

1. メモ帳

マジ、ホビロン!

Page 29: Vim再入門

Windows上でのエディタ遍歴

1. メモ帳

マジ、ホビロン!

Page 30: Vim再入門

Windows上でのエディタ遍歴

2. 秀丸

見た目が受け付けなかった・・・デザインが古臭くないですかあれ?

Page 31: Vim再入門

Windows上でのエディタ遍歴

2. 秀丸

見た目が受け付けなかった・・・デザインが古臭くないですかあれ?

Page 32: Vim再入門

Windows上でのエディタ遍歴

3. Emacs

研究室でチュートリアルだけやって挫折キーバインドが覚えられん・・・

Page 33: Vim再入門

Windows上でのエディタ遍歴

3. Emacs Esc Meta Alt Ctrl Shift

研究室でチュートリアルだけやって挫折キーバインドが覚えられん・・・

Page 34: Vim再入門

Windows上でのエディタ遍歴

4. サクラエディタ

良かったんだけど・・・コマンドの実行が微妙→ LATEXが使いづらい

Page 35: Vim再入門

Windows上でのエディタ遍歴

4. サクラエディタ

良かったんだけど・・・

コマンドの実行が微妙→ LATEXが使いづらい

Page 36: Vim再入門

Windows上でのエディタ遍歴

4. サクラエディタ

良かったんだけど・・・コマンドの実行が微妙

→ LATEXが使いづらい

Page 37: Vim再入門

Windows上でのエディタ遍歴

4. サクラエディタ

良かったんだけど・・・コマンドの実行が微妙→

LATEXが使いづらい

Page 38: Vim再入門

Windows上でのエディタ遍歴

4. サクラエディタ

良かったんだけど・・・コマンドの実行が微妙→ LATEXが使いづらい

Page 39: Vim再入門

Windows上でのエディタ遍歴

と、いうことで

Windows上でもVimを使うように

Page 40: Vim再入門

Windows上でのエディタ遍歴

と、いうことでWindows上でもVimを使うように

Page 41: Vim再入門

Vimの何がいいの?

Page 42: Vim再入門

Vimのいいところ

ノーマルモード

オペレータ

テキストオブジェクト

などなど

Page 43: Vim再入門

Vimのいいところ

ノーマルモード

オペレータ

テキストオブジェクト

などなど

Page 44: Vim再入門

Vimのいいところ

ノーマルモード

オペレータ

テキストオブジェクト

などなど

Page 45: Vim再入門

Vimのいいところ

ノーマルモード

オペレータ

テキストオブジェクト

などなど

Page 46: Vim再入門

Vimのいいところ

ノーマルモード

オペレータ

テキストオブジェクト

などなど

Page 47: Vim再入門

ノーマルモードの良さ

移動の豊富さ

移動後の豊富な挿入モードへの移行

数字との組み合わせ

オペレータとの組み合わせ

Page 48: Vim再入門

ノーマルモードの良さ

移動の豊富さ

移動後の豊富な挿入モードへの移行

数字との組み合わせ

オペレータとの組み合わせ

Page 49: Vim再入門

ノーマルモードの良さ

移動の豊富さ

移動後の豊富な挿入モードへの移行

数字との組み合わせ

オペレータとの組み合わせ

Page 50: Vim再入門

ノーマルモードの良さ

移動の豊富さ

移動後の豊富な挿入モードへの移行

数字との組み合わせ

オペレータとの組み合わせ

Page 51: Vim再入門

ノーマルモードの良さ

移動の豊富さ

移動後の豊富な挿入モードへの移行

数字との組み合わせ

オペレータとの組み合わせ

Page 52: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 53: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 54: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 55: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 56: Vim再入門

移動の豊富さ

/ / / w・・・word

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 57: Vim再入門

移動の豊富さ

/ / / w・・・word

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 58: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 59: Vim再入門

移動の豊富さ

/ / / b・・・back

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 60: Vim再入門

移動の豊富さ

/ / / b・・・back

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 61: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 62: Vim再入門

移動の豊富さ

/ / / e・・・end

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 63: Vim再入門

移動の豊富さ

/ / / e・・・end

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 64: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 65: Vim再入門

移動の豊富さ

/ / / g・・・「ひねる」

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 66: Vim再入門

移動の豊富さ

/ / / g・・・「ひねる」

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 67: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 68: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 69: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 70: Vim再入門

移動の豊富さ

/ / /

/ / / / / f・・・find

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 71: Vim再入門

移動の豊富さ

/ / /

/ / / / / f・・・find

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 72: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 73: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 74: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 75: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 76: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 77: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 78: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 79: Vim再入門

移動の豊富さ

/ / /

/ / / / / t・・・to

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 80: Vim再入門

移動の豊富さ

/ / /

/ / / / / t・・・to

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 81: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 82: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 83: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 84: Vim再入門

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

カーソル移動に hと lはあんま使わない方向で。

Page 85: Vim再入門

移動後の豊富な挿入モードへの移行

/ /

Page 86: Vim再入門

移動後の豊富な挿入モードへの移行

/ /

Page 87: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append

/ /

Page 88: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append

/ /

Page 89: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append

/ /

Page 90: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append

/ /

Page 91: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ /

Page 92: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert

Page 93: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert

Page 94: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert

Page 95: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert

Page 96: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert/

Page 97: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert/ o・・・???

Page 98: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert/ o・・・???

Page 99: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert/ o・・・???

Page 100: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert/ o・・・???

Page 101: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert/ o・・・???

Page 102: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert/ o・・・???

Page 103: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert/ o・・・???/

Page 104: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert/ o・・・???/ s・・・substitute

Page 105: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert/ o・・・???/ s・・・substitute

Page 106: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert/ o・・・???/ s・・・substitute

Page 107: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert/ o・・・???/ s・・・substitute

Page 108: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert/ o・・・???/ s・・・substitute

Page 109: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert/ o・・・???/ s・・・substitute

Page 110: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert/ o・・・???/ s・・・substitute/

Page 111: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert/ o・・・???/ s・・・substitute/ c・・・change

Page 112: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert/ o・・・???/ s・・・substitute/ c・・・change

Page 113: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert/ o・・・???/ s・・・substitute/ c・・・change

Page 114: Vim再入門

移動後の豊富な挿入モードへの移行

/ a・・・append/ / i・・・insert/ o・・・???/ s・・・substitute/ c・・・change

Page 115: Vim再入門

数字との組み合わせ

80個”=”を入力したい→

132行目に移動したい→ または

直前のコマンドを 10回繰り返したい→

Page 116: Vim再入門

数字との組み合わせ

80個”=”を入力したい→

132行目に移動したい→ または

直前のコマンドを 10回繰り返したい→

Page 117: Vim再入門

数字との組み合わせ

80個”=”を入力したい→

132行目に移動したい→

または

直前のコマンドを 10回繰り返したい→

Page 118: Vim再入門

数字との組み合わせ

80個”=”を入力したい→

132行目に移動したい→

または

直前のコマンドを 10回繰り返したい→

Page 119: Vim再入門

数字との組み合わせ

80個”=”を入力したい→

132行目に移動したい→ または

直前のコマンドを 10回繰り返したい→

Page 120: Vim再入門

数字との組み合わせ

80個”=”を入力したい→

132行目に移動したい→ または

直前のコマンドを 10回繰り返したい→

Page 121: Vim再入門

数字との組み合わせ

80個”=”を入力したい→

132行目に移動したい→ または

直前のコマンドを 10回繰り返したい→

Page 122: Vim再入門

オペレータとの組み合わせ

普通のエディタ・・・

操作×対象の組み合わせVi的な何か・・・操作+対象の組み合わせEmacs的な何か・・・知りません

操作をオペレータと呼ぶ対象は移動コマンドだったり、

後述するテキストオブジェクトだったり

Page 123: Vim再入門

オペレータとの組み合わせ

普通のエディタ・・・操作×対象の組み合わせ

Vi的な何か・・・操作+対象の組み合わせEmacs的な何か・・・知りません

操作をオペレータと呼ぶ対象は移動コマンドだったり、

後述するテキストオブジェクトだったり

Page 124: Vim再入門

オペレータとの組み合わせ

普通のエディタ・・・操作×対象の組み合わせVi的な何か・・・

操作+対象の組み合わせEmacs的な何か・・・知りません

操作をオペレータと呼ぶ対象は移動コマンドだったり、

後述するテキストオブジェクトだったり

Page 125: Vim再入門

オペレータとの組み合わせ

普通のエディタ・・・操作×対象の組み合わせVi的な何か・・・操作+対象の組み合わせ

Emacs的な何か・・・知りません

操作をオペレータと呼ぶ対象は移動コマンドだったり、

後述するテキストオブジェクトだったり

Page 126: Vim再入門

オペレータとの組み合わせ

普通のエディタ・・・操作×対象の組み合わせVi的な何か・・・操作+対象の組み合わせEmacs的な何か・・・

知りません

操作をオペレータと呼ぶ対象は移動コマンドだったり、

後述するテキストオブジェクトだったり

Page 127: Vim再入門

オペレータとの組み合わせ

普通のエディタ・・・操作×対象の組み合わせVi的な何か・・・操作+対象の組み合わせEmacs的な何か・・・知りません

操作をオペレータと呼ぶ対象は移動コマンドだったり、

後述するテキストオブジェクトだったり

Page 128: Vim再入門

オペレータとの組み合わせ

普通のエディタ・・・操作×対象の組み合わせVi的な何か・・・操作+対象の組み合わせEmacs的な何か・・・知りません

操作をオペレータと呼ぶ対象は移動コマンドだったり、

後述するテキストオブジェクトだったり

Page 129: Vim再入門

分かれてると何が嬉しいの?

新しく対象が増えても、対象さえ覚えればすぐ使えるようになる。例:XMLのタグXMLのタグはVim7から追加された対象だけど、atと itが対象を表すと覚えるだけで、コピーや削除等の操作が可能!

Page 130: Vim再入門

分かれてると何が嬉しいの?

新しく対象が増えても、対象さえ覚えればすぐ使えるようになる。

例:XMLのタグXMLのタグはVim7から追加された対象だけど、atと itが対象を表すと覚えるだけで、コピーや削除等の操作が可能!

Page 131: Vim再入門

分かれてると何が嬉しいの?

新しく対象が増えても、対象さえ覚えればすぐ使えるようになる。例:XMLのタグ

XMLのタグはVim7から追加された対象だけど、atと itが対象を表すと覚えるだけで、コピーや削除等の操作が可能!

Page 132: Vim再入門

分かれてると何が嬉しいの?

新しく対象が増えても、対象さえ覚えればすぐ使えるようになる。例:XMLのタグXMLのタグはVim7から追加された対象だけど、atと itが対象を表すと覚えるだけで、コピーや削除等の操作が可能!

Page 133: Vim再入門

オペレータの例

などなど

Page 134: Vim再入門

オペレータの例

などなど

Page 135: Vim再入門

オペレータの例

c・・・change

などなど

Page 136: Vim再入門

オペレータの例

c・・・change

d・・・delete

などなど

Page 137: Vim再入門

オペレータの例

c・・・change

d・・・delete

y・・・yank

などなど

Page 138: Vim再入門

オペレータの例

c・・・change

d・・・delete

y・・・yank

cindent

などなど

Page 139: Vim再入門

オペレータの例

c・・・change

d・・・delete

y・・・yank

cindent

deindent

などなど

Page 140: Vim再入門

オペレータの例

c・・・change

d・・・delete

y・・・yank

cindent

deindent

indent

などなど

Page 141: Vim再入門

オペレータの例

c・・・change

d・・・delete

y・・・yank

cindent

deindent

indent

などなど

Page 142: Vim再入門

オペレータを使った作業の例

・・・単語末尾まで

・・・閉じカッコ直前まで

・・・次の段落までの矩形

もちろん他のオペレータも同じ感じ

Page 143: Vim再入門

オペレータを使った作業の例

・・・単語末尾まで削除

・・・閉じカッコ直前まで

・・・次の段落までの矩形

もちろん他のオペレータも同じ感じ

Page 144: Vim再入門

オペレータを使った作業の例

・・・単語末尾まで削除

・・・閉じカッコ直前まで削除

・・・次の段落までの矩形

もちろん他のオペレータも同じ感じ

Page 145: Vim再入門

オペレータを使った作業の例

・・・単語末尾まで削除

・・・閉じカッコ直前まで削除

・・・次の段落までの矩形削除

もちろん他のオペレータも同じ感じ

Page 146: Vim再入門

オペレータを使った作業の例

・・・単語末尾までコピー

・・・閉じカッコ直前までコピー

・・・次の段落までの矩形コピー

もちろん他のオペレータも同じ感じ

Page 147: Vim再入門

オペレータを使った作業の例

・・・単語末尾までコピー

・・・閉じカッコ直前までコピー

・・・次の段落までの矩形コピー

もちろん他のオペレータも同じ感じ

Page 148: Vim再入門

テキストオブジェクト

Page 149: Vim再入門

テキストオブジェクト?

VimScriptで Stringクラスが使えるとかそういう話ではない

ひとかたまりのテキストを扱う機能

Vim7から搭載された比較的新しい機能

Page 150: Vim再入門

テキストオブジェクト?

VimScriptで Stringクラスが使えるとかそういう話ではない

ひとかたまりのテキストを扱う機能

Vim7から搭載された比較的新しい機能

Page 151: Vim再入門

テキストオブジェクト?

VimScriptで Stringクラスが使えるとかそういう話ではない

ひとかたまりのテキストを扱う機能

Vim7から搭載された比較的新しい機能

Page 152: Vim再入門

テキストオブジェクト?

VimScriptで Stringクラスが使えるとかそういう話ではない

ひとかたまりのテキストを扱う機能

Vim7から搭載された比較的新しい機能

Page 153: Vim再入門

テキストオブジェクト、surround.vim

例えば・・・

単語

丸かっこで囲まれたテキスト

クォートで囲まれたテキスト

これがテキストオブジェクトこれに加えて、それらを囲んでいる文字を扱えるようにしたのが surround.vim

Page 154: Vim再入門

テキストオブジェクト、surround.vim

例えば・・・

単語

丸かっこで囲まれたテキスト

クォートで囲まれたテキスト

これがテキストオブジェクトこれに加えて、それらを囲んでいる文字を扱えるようにしたのが surround.vim

Page 155: Vim再入門

テキストオブジェクト、surround.vim

例えば・・・

単語

丸かっこで囲まれたテキスト

クォートで囲まれたテキスト

これがテキストオブジェクトこれに加えて、それらを囲んでいる文字を扱えるようにしたのが surround.vim

Page 156: Vim再入門

テキストオブジェクト、surround.vim

例えば・・・

単語

丸かっこで囲まれたテキスト

クォートで囲まれたテキスト

これがテキストオブジェクトこれに加えて、それらを囲んでいる文字を扱えるようにしたのが surround.vim

Page 157: Vim再入門

テキストオブジェクト、surround.vim

例えば・・・

単語

丸かっこで囲まれたテキスト

クォートで囲まれたテキスト

これがテキストオブジェクト

これに加えて、それらを囲んでいる文字を扱えるようにしたのが surround.vim

Page 158: Vim再入門

テキストオブジェクト、surround.vim

例えば・・・

単語

丸かっこで囲まれたテキスト

クォートで囲まれたテキスト

これがテキストオブジェクトこれに加えて、それらを囲んでいる文字を扱えるようにしたのが surround.vim

Page 159: Vim再入門

何ができるの?

オペレータの対象にできます。具体的には・・・

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

Page 160: Vim再入門

何ができるの?

オペレータの対象にできます。具体的には・・・

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

Page 161: Vim再入門

何ができるの?

オペレータの対象にできます。具体的には・・・

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

Page 162: Vim再入門

何ができるの?

オペレータの対象にできます。具体的には・・・

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

Page 163: Vim再入門

何ができるの?

オペレータの対象にできます。具体的には・・・

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

Page 164: Vim再入門

何ができるの?

オペレータの対象にできます。具体的には・・・

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

Page 165: Vim再入門

何ができるの?

オペレータの対象にできます。具体的には・・・

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

Page 166: Vim再入門

何ができるの?

オペレータの対象にできます。具体的には・・・

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

Page 167: Vim再入門

何ができるの?

オペレータの対象にできます。具体的には・・・

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

Page 168: Vim再入門

何ができるの?

オペレータの対象にできます。具体的には・・・

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

Page 169: Vim再入門

何ができるの?

オペレータの対象にできます。具体的には・・・

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

Page 170: Vim再入門

何ができるの?

オペレータの対象にできます。具体的には・・・

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

Page 171: Vim再入門

何ができるの?

オペレータの対象にできます。具体的には・・・

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

Page 172: Vim再入門

何ができるの?

オペレータの対象にできます。具体的には・・・

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

Page 173: Vim再入門

何ができるの?

オペレータの対象にできます。具体的には・・・

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

Page 174: Vim再入門

何ができるの?

オペレータの対象にできます。具体的には・・・

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

Page 175: Vim再入門

何ができるの?

オペレータの対象にできます。具体的には・・・

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

Page 176: Vim再入門

何ができるの?

オペレータの対象にできます。具体的には・・・

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

Page 177: Vim再入門

vimrcの書き方

Page 178: Vim再入門

vimrcの書き方

「Vimの極め方1」が非常に参考になるのでまずは読むこと。

vimrcを即座に開く

vimrcを即座にリロード

リローダブルな vimrcを書く

これだけじゃ丸投げなので、もうちょっと。

1http://whileimautomaton.net/2008/08/vimworkshop3-kana-presentation

Page 179: Vim再入門

vimrcの書き方

「Vimの極め方1」が非常に参考になるのでまずは読むこと。

vimrcを即座に開く

vimrcを即座にリロード

リローダブルな vimrcを書く

これだけじゃ丸投げなので、もうちょっと。

1http://whileimautomaton.net/2008/08/vimworkshop3-kana-presentation

Page 180: Vim再入門

vimrcの書き方

「Vimの極め方1」が非常に参考になるのでまずは読むこと。

vimrcを即座に開く

vimrcを即座にリロード

リローダブルな vimrcを書く

これだけじゃ丸投げなので、もうちょっと。

1http://whileimautomaton.net/2008/08/vimworkshop3-kana-presentation

Page 181: Vim再入門

vimrcの書き方

人の vimrcをそのままは使わない

mswin.vimは使わない

vimrcをいい感じに開く/リロードする

vim-users.jpのVim Hacksを読む

Page 182: Vim再入門

vimrcの書き方

人の vimrcをそのままは使わない

mswin.vimは使わない

vimrcをいい感じに開く/リロードする

vim-users.jpのVim Hacksを読む

Page 183: Vim再入門

vimrcの書き方

人の vimrcをそのままは使わない

mswin.vimは使わない

vimrcをいい感じに開く/リロードする

vim-users.jpのVim Hacksを読む

Page 184: Vim再入門

vimrcの書き方

人の vimrcをそのままは使わない

mswin.vimは使わない

vimrcをいい感じに開く/リロードする

vim-users.jpのVim Hacksを読む

Page 185: Vim再入門

vimrcの書き方

人の vimrcをそのままは使わない

mswin.vimは使わない

vimrcをいい感じに開く/リロードする

vim-users.jpのVim Hacksを読む

Page 186: Vim再入門

人のvimrcをそのまま使わない

人の設定が自分に合うとは限らない

不要な設定とかも一杯あるかもしれない

部分的にはパクっても、全部はパクらない方がいい→使いこなせない

『そうやって一口にVimというがね、僕が好きなのは僕のVimだけなんだ。ひとのVimは大嫌いだ。』

自分のペースで徐々に育てていくのが大事

Page 187: Vim再入門

人のvimrcをそのまま使わない

人の設定が自分に合うとは限らない

不要な設定とかも一杯あるかもしれない

部分的にはパクっても、全部はパクらない方がいい→使いこなせない

『そうやって一口にVimというがね、僕が好きなのは僕のVimだけなんだ。ひとのVimは大嫌いだ。』

自分のペースで徐々に育てていくのが大事

Page 188: Vim再入門

人のvimrcをそのまま使わない

人の設定が自分に合うとは限らない

不要な設定とかも一杯あるかもしれない

部分的にはパクっても、全部はパクらない方がいい→使いこなせない

『そうやって一口にVimというがね、僕が好きなのは僕のVimだけなんだ。ひとのVimは大嫌いだ。』

自分のペースで徐々に育てていくのが大事

Page 189: Vim再入門

人のvimrcをそのまま使わない

人の設定が自分に合うとは限らない

不要な設定とかも一杯あるかもしれない

部分的にはパクっても、全部はパクらない方がいい→使いこなせない

『そうやって一口にVimというがね、僕が好きなのは僕のVimだけなんだ。ひとのVimは大嫌いだ。』

自分のペースで徐々に育てていくのが大事

Page 190: Vim再入門

人のvimrcをそのまま使わない

人の設定が自分に合うとは限らない

不要な設定とかも一杯あるかもしれない

部分的にはパクっても、全部はパクらない方がいい→使いこなせない

『そうやって一口にVimというがね、僕が好きなのは僕のVimだけなんだ。ひとのVimは大嫌いだ。』2

自分のペースで徐々に育てていくのが大事

2http://d.hatena.ne.jp/pcmaster/20090429/p1

Page 191: Vim再入門

人のvimrcをそのまま使わない

人の設定が自分に合うとは限らない

不要な設定とかも一杯あるかもしれない

部分的にはパクっても、全部はパクらない方がいい→使いこなせない

『そうやって一口にVimというがね、僕が好きなのは僕のVimだけなんだ。ひとのVimは大嫌いだ。』2

自分のペースで徐々に育てていくのが大事

2http://d.hatena.ne.jp/pcmaster/20090429/p1

Page 192: Vim再入門

mswin.vimは使わない

で全選択

で切り取り

でコピー

で貼り付け

ないわーもし vimrcに source mswin.vimってあったら

躊躇せずに削除!

Page 193: Vim再入門

mswin.vimは使わない

で全選択

で切り取り

でコピー

で貼り付け

ないわーもし vimrcに source mswin.vimってあったら

躊躇せずに削除!

Page 194: Vim再入門

mswin.vimは使わない

で全選択

で切り取り

でコピー

で貼り付け

ないわーもし vimrcに source mswin.vimってあったら

躊躇せずに削除!

Page 195: Vim再入門

mswin.vimは使わない

で全選択

で切り取り

でコピー

で貼り付け

ないわーもし vimrcに source mswin.vimってあったら

躊躇せずに削除!

Page 196: Vim再入門

mswin.vimは使わない

で全選択

で切り取り

でコピー

で貼り付け

ないわーもし vimrcに source mswin.vimってあったら

躊躇せずに削除!

Page 197: Vim再入門

mswin.vimは使わない

で全選択

で切り取り

でコピー

で貼り付け

ないわー

もし vimrcに source mswin.vimってあったら躊躇せずに削除!

Page 198: Vim再入門

mswin.vimは使わない

で全選択

で切り取り

でコピー

で貼り付け

ないわーもし vimrcに source mswin.vimってあったら

躊躇せずに削除!

Page 199: Vim再入門

ちょっと説明

Vimでは・・・

でカーソル位置の数字をインクリメント

でカーソル位置の数字をデクリメント

で挿入モードからノーマルモードにとは違い、InsertLeaveのトリガにならない

で矩形選択モードに

という便利な機能がある。

それをすてるなんてとんでもない!

Page 200: Vim再入門

ちょっと説明

Vimでは・・・

でカーソル位置の数字をインクリメント

でカーソル位置の数字をデクリメント

で挿入モードからノーマルモードに

とは違い、InsertLeaveのトリガにならない

で矩形選択モードに

という便利な機能がある。

それをすてるなんてとんでもない!

Page 201: Vim再入門

ちょっと説明

Vimでは・・・

でカーソル位置の数字をインクリメント

でカーソル位置の数字をデクリメント

で挿入モードからノーマルモードに

とは違い、InsertLeaveのトリガにならない

で矩形選択モードに

という便利な機能がある。

それをすてるなんてとんでもない!

Page 202: Vim再入門

ちょっと説明

Vimでは・・・

でカーソル位置の数字をインクリメント

でカーソル位置の数字をデクリメント

で挿入モードからノーマルモードに

とは違い、InsertLeaveのトリガにならない

で矩形選択モードに

という便利な機能がある。

それをすてるなんてとんでもない!

Page 203: Vim再入門

ちょっと説明

Vimでは・・・

でカーソル位置の数字をインクリメント

でカーソル位置の数字をデクリメント

で挿入モードからノーマルモードに

とは違い、InsertLeaveのトリガにならない

で矩形選択モードに

という便利な機能がある。

それをすてるなんてとんでもない!

Page 204: Vim再入門

ちょっと説明

Vimでは・・・

でカーソル位置の数字をインクリメント

でカーソル位置の数字をデクリメント

で挿入モードからノーマルモードにとは違い、InsertLeaveのトリガにならない

で矩形選択モードに

という便利な機能がある。

それをすてるなんてとんでもない!

Page 205: Vim再入門

ちょっと説明

Vimでは・・・

でカーソル位置の数字をインクリメント

でカーソル位置の数字をデクリメント

で挿入モードからノーマルモードにとは違い、InsertLeaveのトリガにならない

で矩形選択モードに

という便利な機能がある。

それをすてるなんてとんでもない!

Page 206: Vim再入門

ちょっと説明

Vimでは・・・

でカーソル位置の数字をインクリメント

でカーソル位置の数字をデクリメント

で挿入モードからノーマルモードにとは違い、InsertLeaveのトリガにならない

で矩形選択モードに

という便利な機能がある。

それをすてるなんてとんでもない!

Page 207: Vim再入門

ちょっと説明

Vimでは・・・

でカーソル位置の数字をインクリメント

でカーソル位置の数字をデクリメント

で挿入モードからノーマルモードにとは違い、InsertLeaveのトリガにならない

で矩形選択モードに

という便利な機能がある。

それをすてるなんてとんでもない!

Page 208: Vim再入門

vimrcをいい感じに開く

.

< Space>< Space>で vimrcが、< Space><Tab>で gvimrcが開く

.

.

.

let vimrcbody = ’$HOME/vimfiles/rc/vimrc.vim’

let gvimrcbody = ’$HOME/vimfiles/rc/gvimrc.vim’

function! OpenFile(file)

let empty_buffer = line(’$’) == 1 && strlen(getline(’1’)) == 0

if empty_buffer && !&modified

execute ’e ’ . a:file

else

execute ’tabnew ’ . a:file

endif

endfunction

command! OpenMyVimrc call OpenFile(vimrcbody)

command! OpenMyGVimrc call OpenFile(gvimrcbody)

nnoremap <Space><Space> :<C-u>OpenMyVimrc<CR>

nnoremap <Space><Tab> :<C-u>OpenMyGVimrc<CR>

単に開くんじゃなくて、状態によって開き方が変わるようにしてあります。

Page 209: Vim再入門

vimrcをいい感じに開く

.

< Space>< Space>で vimrcが、< Space><Tab>で gvimrcが開く

.

.

.

let vimrcbody = ’$HOME/vimfiles/rc/vimrc.vim’

let gvimrcbody = ’$HOME/vimfiles/rc/gvimrc.vim’

function! OpenFile(file)

let empty_buffer = line(’$’) == 1 && strlen(getline(’1’)) == 0

if empty_buffer && !&modified

execute ’e ’ . a:file

else

execute ’tabnew ’ . a:file

endif

endfunction

command! OpenMyVimrc call OpenFile(vimrcbody)

command! OpenMyGVimrc call OpenFile(gvimrcbody)

nnoremap <Space><Space> :<C-u>OpenMyVimrc<CR>

nnoremap <Space><Tab> :<C-u>OpenMyGVimrc<CR>

単に開くんじゃなくて、状態によって開き方が変わるようにしてあります。

Page 210: Vim再入門

vimrcをいい感じに開く

.

< Space>< Space>で vimrcが、< Space><Tab>で gvimrcが開く

.

.

.

let vimrcbody = ’$HOME/vimfiles/rc/vimrc.vim’

let gvimrcbody = ’$HOME/vimfiles/rc/gvimrc.vim’

function! OpenFile(file)

let empty_buffer = line(’$’) == 1 && strlen(getline(’1’)) == 0

if empty_buffer && !&modified

execute ’e ’ . a:file

else

execute ’tabnew ’ . a:file

endif

endfunction

command! OpenMyVimrc call OpenFile(vimrcbody)

command! OpenMyGVimrc call OpenFile(gvimrcbody)

nnoremap <Space><Space> :<C-u>OpenMyVimrc<CR>

nnoremap <Space><Tab> :<C-u>OpenMyGVimrc<CR>

単に開くんじゃなくて、状態によって開き方が変わるようにしてあります。

Page 211: Vim再入門

vimrcをいい感じにリロードする

.

F5でリロードされる

.

.

.

function! SourceIfExists(file)

if filereadable(expand(a:file))

execute ’source ’ . a:file

endif

echo ’Reloaded vimrc and gvimrc.’

endfunction

nnoremap <F5> <Esc>:<C-u>source $MYVIMRC<CR>

\ :source $MYGVIMRC<CR>

\ :call SourceIfExists(’~/vimfiles/ftplugin/’ . &filetype . ’.vim’)<CR>

filetypeの設定も読み直すようにしてます。HHK Pro JP買ったら見直した方がいいかも・・・

Page 212: Vim再入門

vimrcをいい感じにリロードする

.

F5でリロードされる

.

.

.

function! SourceIfExists(file)

if filereadable(expand(a:file))

execute ’source ’ . a:file

endif

echo ’Reloaded vimrc and gvimrc.’

endfunction

nnoremap <F5> <Esc>:<C-u>source $MYVIMRC<CR>

\ :source $MYGVIMRC<CR>

\ :call SourceIfExists(’~/vimfiles/ftplugin/’ . &filetype . ’.vim’)<CR>

filetypeの設定も読み直すようにしてます。HHK Pro JP買ったら見直した方がいいかも・・・

Page 213: Vim再入門

vimrcをいい感じにリロードする

.

F5でリロードされる

.

.

.

function! SourceIfExists(file)

if filereadable(expand(a:file))

execute ’source ’ . a:file

endif

echo ’Reloaded vimrc and gvimrc.’

endfunction

nnoremap <F5> <Esc>:<C-u>source $MYVIMRC<CR>

\ :source $MYGVIMRC<CR>

\ :call SourceIfExists(’~/vimfiles/ftplugin/’ . &filetype . ’.vim’)<CR>

filetypeの設定も読み直すようにしてます。

HHK Pro JP買ったら見直した方がいいかも・・・

Page 214: Vim再入門

vimrcをいい感じにリロードする

.

F5でリロードされる

.

.

.

function! SourceIfExists(file)

if filereadable(expand(a:file))

execute ’source ’ . a:file

endif

echo ’Reloaded vimrc and gvimrc.’

endfunction

nnoremap <F5> <Esc>:<C-u>source $MYVIMRC<CR>

\ :source $MYGVIMRC<CR>

\ :call SourceIfExists(’~/vimfiles/ftplugin/’ . &filetype . ’.vim’)<CR>

filetypeの設定も読み直すようにしてます。HHK Pro JP買ったら見直した方がいいかも・・・

Page 215: Vim再入門

vim-users.jpのVim Hacksを読む

これを読まずに何を読む!まだ全部読める量なので、今のうちに!

Page 216: Vim再入門

vim-users.jpのVim Hacksを読む

これを読まずに何を読む!

まだ全部読める量なので、今のうちに!

Page 217: Vim再入門

vim-users.jpのVim Hacksを読む

これを読まずに何を読む!まだ全部読める量なので、今のうちに!

Page 218: Vim再入門

おぬぬめのHacks

Hack2 Vimを使う前に見直しておきたいポイント

Hack34 Vimのディレクトリ構成

Hack45 helpを引く

Hack161 Command-line windowを使いこなす

Hack189 Emacsのプラグインに対応する Vimプラグイン

Hack215 Vundleで pluginをモダンに管理する

Page 219: Vim再入門

おまけ:おぬぬめプラグイン

Vundle

unite.vim, neocomplcache, vimshell, vimfiler,echodoc

surround.vim(vim-surround)

git-vim

template.vim

eregex.vim

Page 220: Vim再入門

おまけ:おぬぬめプラグイン

Vundle

unite.vim, neocomplcache, vimshell, vimfiler,echodoc

surround.vim(vim-surround)

git-vim

template.vim

eregex.vim

Page 221: Vim再入門

おまけ:おぬぬめプラグイン

Vundle

unite.vim, neocomplcache, vimshell, vimfiler,echodoc

surround.vim(vim-surround)

git-vim

template.vim

eregex.vim

Page 222: Vim再入門

おまけ:おぬぬめプラグイン

Vundle

unite.vim, neocomplcache, vimshell, vimfiler,echodoc

surround.vim(vim-surround)

git-vim

template.vim

eregex.vim

Page 223: Vim再入門

おまけ:おぬぬめプラグイン

Vundle

unite.vim, neocomplcache, vimshell, vimfiler,echodoc

surround.vim(vim-surround)

git-vim

template.vim

eregex.vim

Page 224: Vim再入門

おまけ:おぬぬめプラグイン

Vundle

unite.vim, neocomplcache, vimshell, vimfiler,echodoc

surround.vim(vim-surround)

git-vim

template.vim

eregex.vim

Page 225: Vim再入門

おまけ:おぬぬめプラグイン

Vundle

unite.vim, neocomplcache, vimshell, vimfiler,echodoc

surround.vim(vim-surround)

git-vim

template.vim

eregex.vim

Page 226: Vim再入門

vimrcを書いたら・・・

githubとかに公開しましょう

新しい環境にVimを入れたら githubからclone

→慣れ親しんだ環境をすぐに構築!

みんなで vimrc読書会とか面白そうじゃね?

というかVimScript教えて

Page 227: Vim再入門

vimrcを書いたら・・・

githubとかに公開しましょう

新しい環境にVimを入れたら githubからclone

→慣れ親しんだ環境をすぐに構築!

みんなで vimrc読書会とか面白そうじゃね?

というかVimScript教えて

Page 228: Vim再入門

vimrcを書いたら・・・

githubとかに公開しましょう

新しい環境にVimを入れたら githubからclone

→慣れ親しんだ環境をすぐに構築!

みんなで vimrc読書会とか面白そうじゃね?

というかVimScript教えて

Page 229: Vim再入門

vimrcを書いたら・・・

githubとかに公開しましょう

新しい環境にVimを入れたら githubからclone→慣れ親しんだ環境をすぐに構築!

みんなで vimrc読書会とか面白そうじゃね?

というかVimScript教えて

Page 230: Vim再入門

vimrcを書いたら・・・

githubとかに公開しましょう

新しい環境にVimを入れたら githubからclone→慣れ親しんだ環境をすぐに構築!

みんなで vimrc読書会とか面白そうじゃね?

というかVimScript教えて

Page 231: Vim再入門

vimrcを書いたら・・・

githubとかに公開しましょう

新しい環境にVimを入れたら githubからclone→慣れ親しんだ環境をすぐに構築!

みんなで vimrc読書会とか面白そうじゃね?

というかVimScript教えて

Page 232: Vim再入門

質問タイム

Page 233: Vim再入門

おわり

なんかこの後問い詰められるそうです。こわい。

Page 234: Vim再入門

おわり

なんかこの後問い詰められるそうです。こわい。