Vim再入門

Post on 20-Jan-2015

6.988 views 0 download

description

 

Transcript of Vim再入門

Vim再入門

bleis-tift

June 18,2011

自己紹介

自己紹介

Vim VS Emacs

圧倒的じゃないか!

Vim VS Emacs

圧倒的じゃないか!

Vim VS Emacs

圧倒的じゃないか!

何を話すか

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

Windows上でのエディタ遍歴

Vimの何がいいの?

テキストオブジェクト

vimrcの書き方

あたりを話します。

何を話すか

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

Windows上でのエディタ遍歴

Vimの何がいいの?

テキストオブジェクト

vimrcの書き方

あたりを話します。

何を話すか

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

Windows上でのエディタ遍歴

Vimの何がいいの?

テキストオブジェクト

vimrcの書き方

あたりを話します。

何を話すか

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

Windows上でのエディタ遍歴

Vimの何がいいの?

テキストオブジェクト

vimrcの書き方

あたりを話します。

何を話すか

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

Windows上でのエディタ遍歴

Vimの何がいいの?

テキストオブジェクト

vimrcの書き方

あたりを話します。

何を話すか

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

Windows上でのエディタ遍歴

Vimの何がいいの?

テキストオブジェクト

vimrcの書き方

あたりを話します。

何を話すか

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

Windows上でのエディタ遍歴

Vimの何がいいの?

テキストオブジェクト

vimrcの書き方

あたりを話します。

対象

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

Vim初心者~初級者

(戦闘力 500以下)

対象

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

Vim初心者~初級者

(戦闘力 500以下)

対象

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

Vim初心者~初級者

(戦闘力 500以下)

対象

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

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

戦闘力?

vimrcの実質行数が・・・

100行以下・・・初心者

500行以下・・・初級者

1000行以下・・・中級者

1000行以上・・・上級者

測定不能・・・

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

戦闘力?

vimrcの実質行数が・・・

100行以下・・・初心者

500行以下・・・初級者

1000行以下・・・中級者

1000行以上・・・上級者

測定不能・・・

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

戦闘力?

vimrcの実質行数が・・・

100行以下・・・初心者

500行以下・・・初級者

1000行以下・・・中級者

1000行以上・・・上級者

測定不能・・・

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

戦闘力?

vimrcの実質行数が・・・

100行以下・・・初心者

500行以下・・・初級者

1000行以下・・・中級者

1000行以上・・・上級者

測定不能・・・

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

戦闘力?

vimrcの実質行数が・・・

100行以下・・・初心者

500行以下・・・初級者

1000行以下・・・中級者

1000行以上・・・上級者

測定不能・・・神

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

戦闘力?

vimrcの実質行数が・・・

100行以下・・・初心者

500行以下・・・初級者

1000行以下・・・中級者

1000行以上・・・上級者

測定不能・・・神

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

お願い

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

お願い

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

Windows上でのエディタ遍歴

Windows上でのエディタ遍歴

1. メモ帳

マジ、ホビロン!

Windows上でのエディタ遍歴

1. メモ帳

マジ、ホビロン!

Windows上でのエディタ遍歴

1. メモ帳

マジ、ホビロン!

Windows上でのエディタ遍歴

2. 秀丸

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

Windows上でのエディタ遍歴

2. 秀丸

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

Windows上でのエディタ遍歴

3. Emacs

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

Windows上でのエディタ遍歴

3. Emacs Esc Meta Alt Ctrl Shift

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

Windows上でのエディタ遍歴

4. サクラエディタ

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

Windows上でのエディタ遍歴

4. サクラエディタ

良かったんだけど・・・

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

Windows上でのエディタ遍歴

4. サクラエディタ

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

→ LATEXが使いづらい

Windows上でのエディタ遍歴

4. サクラエディタ

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

LATEXが使いづらい

Windows上でのエディタ遍歴

4. サクラエディタ

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

Windows上でのエディタ遍歴

と、いうことで

Windows上でもVimを使うように

Windows上でのエディタ遍歴

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

Vimの何がいいの?

Vimのいいところ

ノーマルモード

オペレータ

テキストオブジェクト

などなど

Vimのいいところ

ノーマルモード

オペレータ

テキストオブジェクト

などなど

Vimのいいところ

ノーマルモード

オペレータ

テキストオブジェクト

などなど

Vimのいいところ

ノーマルモード

オペレータ

テキストオブジェクト

などなど

Vimのいいところ

ノーマルモード

オペレータ

テキストオブジェクト

などなど

ノーマルモードの良さ

移動の豊富さ

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

数字との組み合わせ

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

ノーマルモードの良さ

移動の豊富さ

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

数字との組み合わせ

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

ノーマルモードの良さ

移動の豊富さ

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

数字との組み合わせ

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

ノーマルモードの良さ

移動の豊富さ

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

数字との組み合わせ

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

ノーマルモードの良さ

移動の豊富さ

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

数字との組み合わせ

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / / w・・・word

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / / w・・・word

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / / b・・・back

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / / b・・・back

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / / e・・・end

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / / e・・・end

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

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

/ / / / /

/ /

などなど

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

移動の豊富さ

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

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / / f・・・find

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / / f・・・find

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / / t・・・to

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / / t・・・to

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

移動の豊富さ

/ / /

/ / / / /

/ /

などなど

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

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

/ /

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

/ /

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

/ a・・・append

/ /

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

/ a・・・append

/ /

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

/ a・・・append

/ /

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

/ a・・・append

/ /

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

/ a・・・append/ /

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数字との組み合わせ

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

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

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

数字との組み合わせ

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

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

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

数字との組み合わせ

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

132行目に移動したい→

または

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

数字との組み合わせ

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

132行目に移動したい→

または

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

数字との組み合わせ

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

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

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

数字との組み合わせ

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

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

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

数字との組み合わせ

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

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

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

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

普通のエディタ・・・

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

知りません

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

オペレータの例

などなど

オペレータの例

などなど

オペレータの例

c・・・change

などなど

オペレータの例

c・・・change

d・・・delete

などなど

オペレータの例

c・・・change

d・・・delete

y・・・yank

などなど

オペレータの例

c・・・change

d・・・delete

y・・・yank

cindent

などなど

オペレータの例

c・・・change

d・・・delete

y・・・yank

cindent

deindent

などなど

オペレータの例

c・・・change

d・・・delete

y・・・yank

cindent

deindent

indent

などなど

オペレータの例

c・・・change

d・・・delete

y・・・yank

cindent

deindent

indent

などなど

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

・・・単語末尾まで

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

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

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

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

・・・単語末尾まで削除

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

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

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

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

・・・単語末尾まで削除

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

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

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

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

・・・単語末尾まで削除

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

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

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

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

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

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

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

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

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

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

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

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

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

テキストオブジェクト

テキストオブジェクト?

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

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

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

テキストオブジェクト?

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

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

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

テキストオブジェクト?

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

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

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

テキストオブジェクト?

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

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

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

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

例えば・・・

単語

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

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

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

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

例えば・・・

単語

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

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

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

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

例えば・・・

単語

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

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

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

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

例えば・・・

単語

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

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

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

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

例えば・・・

単語

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

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

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

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

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

例えば・・・

単語

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

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

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

何ができるの?

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

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

何ができるの?

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

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

何ができるの?

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

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

何ができるの?

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

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

何ができるの?

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

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

何ができるの?

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

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

何ができるの?

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

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

何ができるの?

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

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

何ができるの?

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

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

何ができるの?

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

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

何ができるの?

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

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

何ができるの?

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

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

何ができるの?

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

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

何ができるの?

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

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

何ができるの?

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

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

何ができるの?

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

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

何ができるの?

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

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

何ができるの?

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

・・・delete inner double quote

・・・change a tag

・・・change surround dquote to quote

vimrcの書き方

vimrcの書き方

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

vimrcを即座に開く

vimrcを即座にリロード

リローダブルな vimrcを書く

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

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

vimrcの書き方

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

vimrcを即座に開く

vimrcを即座にリロード

リローダブルな vimrcを書く

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

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

vimrcの書き方

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

vimrcを即座に開く

vimrcを即座にリロード

リローダブルな vimrcを書く

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

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

vimrcの書き方

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

mswin.vimは使わない

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

vim-users.jpのVim Hacksを読む

vimrcの書き方

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

mswin.vimは使わない

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

vim-users.jpのVim Hacksを読む

vimrcの書き方

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

mswin.vimは使わない

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

vim-users.jpのVim Hacksを読む

vimrcの書き方

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

mswin.vimは使わない

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

vim-users.jpのVim Hacksを読む

vimrcの書き方

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

mswin.vimは使わない

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

vim-users.jpのVim Hacksを読む

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

mswin.vimは使わない

で全選択

で切り取り

でコピー

で貼り付け

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

躊躇せずに削除!

mswin.vimは使わない

で全選択

で切り取り

でコピー

で貼り付け

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

躊躇せずに削除!

mswin.vimは使わない

で全選択

で切り取り

でコピー

で貼り付け

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

躊躇せずに削除!

mswin.vimは使わない

で全選択

で切り取り

でコピー

で貼り付け

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

躊躇せずに削除!

mswin.vimは使わない

で全選択

で切り取り

でコピー

で貼り付け

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

躊躇せずに削除!

mswin.vimは使わない

で全選択

で切り取り

でコピー

で貼り付け

ないわー

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

mswin.vimは使わない

で全選択

で切り取り

でコピー

で貼り付け

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

躊躇せずに削除!

ちょっと説明

Vimでは・・・

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

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

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

で矩形選択モードに

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

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

ちょっと説明

Vimでは・・・

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

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

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

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

で矩形選択モードに

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

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

ちょっと説明

Vimでは・・・

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

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

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

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

で矩形選択モードに

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

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

ちょっと説明

Vimでは・・・

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

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

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

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

で矩形選択モードに

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

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

ちょっと説明

Vimでは・・・

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

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

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

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

で矩形選択モードに

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

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

ちょっと説明

Vimでは・・・

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

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

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

で矩形選択モードに

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

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

ちょっと説明

Vimでは・・・

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

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

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

で矩形選択モードに

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

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

ちょっと説明

Vimでは・・・

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

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

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

で矩形選択モードに

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

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

ちょっと説明

Vimでは・・・

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

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

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

で矩形選択モードに

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

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

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>

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

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>

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

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>

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

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買ったら見直した方がいいかも・・・

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買ったら見直した方がいいかも・・・

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買ったら見直した方がいいかも・・・

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買ったら見直した方がいいかも・・・

vim-users.jpのVim Hacksを読む

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

vim-users.jpのVim Hacksを読む

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

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

vim-users.jpのVim Hacksを読む

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

おぬぬめのHacks

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

Hack34 Vimのディレクトリ構成

Hack45 helpを引く

Hack161 Command-line windowを使いこなす

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

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

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

Vundle

unite.vim, neocomplcache, vimshell, vimfiler,echodoc

surround.vim(vim-surround)

git-vim

template.vim

eregex.vim

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

Vundle

unite.vim, neocomplcache, vimshell, vimfiler,echodoc

surround.vim(vim-surround)

git-vim

template.vim

eregex.vim

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

Vundle

unite.vim, neocomplcache, vimshell, vimfiler,echodoc

surround.vim(vim-surround)

git-vim

template.vim

eregex.vim

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

Vundle

unite.vim, neocomplcache, vimshell, vimfiler,echodoc

surround.vim(vim-surround)

git-vim

template.vim

eregex.vim

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

Vundle

unite.vim, neocomplcache, vimshell, vimfiler,echodoc

surround.vim(vim-surround)

git-vim

template.vim

eregex.vim

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

Vundle

unite.vim, neocomplcache, vimshell, vimfiler,echodoc

surround.vim(vim-surround)

git-vim

template.vim

eregex.vim

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

Vundle

unite.vim, neocomplcache, vimshell, vimfiler,echodoc

surround.vim(vim-surround)

git-vim

template.vim

eregex.vim

vimrcを書いたら・・・

githubとかに公開しましょう

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

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

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

というかVimScript教えて

vimrcを書いたら・・・

githubとかに公開しましょう

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

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

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

というかVimScript教えて

vimrcを書いたら・・・

githubとかに公開しましょう

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

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

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

というかVimScript教えて

vimrcを書いたら・・・

githubとかに公開しましょう

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

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

というかVimScript教えて

vimrcを書いたら・・・

githubとかに公開しましょう

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

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

というかVimScript教えて

vimrcを書いたら・・・

githubとかに公開しましょう

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

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

というかVimScript教えて

質問タイム

おわり

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

おわり

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