SlideShare a Scribd company logo
1 of 36
Download to read offline
のススメ
2012/06/23 @ HC社内勉強会 #5
14年11月3日月曜日
今日話すこと
なぜエディタの話か
Vimの基本
今時のプラグインについて
エディタ以外のVimの話
14年11月3日月曜日
好きだから
生産性を向上させる強力なツールだから
いつも開発環境があるとは限らない
使ってると少し仕事が楽しくなる(はず)
なぜエディタの話か
14年11月3日月曜日
なんでVimなのか?
好きだから
色んな環境で動く
カスタマイズ性が非常に高い
ユーザが多いので情報が豊富
14年11月3日月曜日
以下の機能を満たさないエディタは
今すぐ投げ捨てろ!!
文字(改行)コード対応/自動判別
シンタックスハイライト
マクロ
正規表現による検索/置換
メモリが許す限りの無限Undo/Redo
14年11月3日月曜日
というわけでVimを使う
14年11月3日月曜日
インストール
Windows
→ http://wwwkaoriya.net/#VIM
Mac OS X
→ http://code.google.com/p/macvim-kaoriya/
その他
→ 多分インストール済み
無ければapt-getとかで適当に(ググればなんとかなる :-D)
14年11月3日月曜日
起動したらまず
:Tutorial、ゼッタイ!
14年11月3日月曜日
Tutorialをやってる暇はないので
ざっくりまとめると
Vimにはモードがある
モードの切り替え方
基本的な移動コマンド
オペレータとモーションについて
検索/置換、Undoのやり方
積極的にヘルプを使おう
14年11月3日月曜日
基本的な移動コマンド
(ノーマルモード)
14年11月3日月曜日
オペレータとモーション
d → delete
y → yank (copy)
c → change (delete + インサート)
v → visual (選択)
使い方
{operator}{motion}
14年11月3日月曜日
オペレータとモーションの
組合せ例
w(ord)
$
(行末)
}
(次の段落)
G
(ファイル末尾)
d(elete)
y(ank)
c(hange)
v(isual)
選択
dw
単語を削除
d$
行末まで削除
d}
次段落まで削除
dG
末尾まで削除
yw
単語をコピー
y$
行末までコピー
y}
次段落までコピー
yG
末尾までコピー
cw
単語を変更
c$
行末まで変更
c}
次段落まで変更
cG
末尾まで変更
vw
単語を選択
v$
行末まで選択
v}
次段落まで選択
vG
末尾まで選択
14年11月3日月曜日
テキストオブジェクト
iw → 単語の中(in word)
aw → 単語全体 (a word)
i( → 小括弧の中 (in ())
ap → 段落全体 (a paragraph)
it → XMLタグの中 (in tag)
…などなど
14年11月3日月曜日
マクロ(実例)
14年11月3日月曜日
プラグインって?
14年11月3日月曜日
operator/motion系
operator-camelize
→ snake_case と camelCaseの変換
operator-sort
→ モーション範囲の文字をソート
text-obj-comment
→ コメント部分を表すTextObject
14年11月3日月曜日
FileTypeに応じて
tComment.vim
→ 選択範囲をコメント化
matchit.vim
→ 構文上のペアを%で移動
14年11月3日月曜日
surround.vim
「何か」の まわり に作用する
特殊なOperator/Motionを提供する
「何か」にはTextObjectも含まれる為
TextObjectが増える程便利になる
14年11月3日月曜日
Alignta.vim
ある範囲のテキストについて、
各行における任意のパターンの
桁位置を揃える(整列する)
ためのプラグイン
14年11月3日月曜日
gundo.vim
A
14年11月3日月曜日
gundo.vim
A B
14年11月3日月曜日
gundo.vim
A B C
14年11月3日月曜日
gundo.vim
A B C
14年11月3日月曜日
gundo.vim
A B C
D
14年11月3日月曜日
gundo.vim
A B C
D
1 2,4 3
5
14年11月3日月曜日
gundo.vim
A B C
D
1 2,4 3
5
普通のUndo/Redo : u/<C-r>
時系列のUndo/Redo : g-/g+
14年11月3日月曜日
neocomplcache
様々なソースを元に補完
ファイル、コマンド、バッファ、
シンタックス、スニペット
他多数
14年11月3日月曜日
quickrun.vim
編集中のファイルをすぐに実行
することができるプラグイン
→ 設定次第でmainなしも可能
→ 出力先を変更したりも
14年11月3日月曜日
その他、こんなのも
TweetVim
→ 真面目に仕事してると見せかけて(ry
Facebook.vim
→ 真面目に仕事してると見せかけて(ry
カラースキーマ全般
→ 好みの配色に一発切替
14年11月3日月曜日
vundle
プラグインを管理するプラグイン
コマンド一発でインストール
アップデートも一発更新
github/vim.orgを自動判別
14年11月3日月曜日
設定管理
14年11月3日月曜日
エディタ以外のVimの話
http://vrapper.sourceforge.net/
14年11月3日月曜日
エディタ以外のVimの話
テキスト
14年11月3日月曜日
Gmail/GoogleReader
bash/zshなどのshell
Excelにすらある
エディタ以外のVimの話
14年11月3日月曜日
Vimの本質は合理的な
キーバインドにある
(と思う)
14年11月3日月曜日
ご清聴ありがとうございました
14年11月3日月曜日

More Related Content

What's hot

Vimを学びたい初心者のための5つの豆知識
Vimを学びたい初心者のための5つの豆知識Vimを学びたい初心者のための5つの豆知識
Vimを学びたい初心者のための5つの豆知識alwei
 
WordCamp Nagoya 2010 初心者向けLT PHPが分からなくてもテーマいじりは怖くないっ!!初心者向けフリーテーマ"Mypace Cust...
WordCamp Nagoya 2010 初心者向けLT PHPが分からなくてもテーマいじりは怖くないっ!!初心者向けフリーテーマ"Mypace Cust...WordCamp Nagoya 2010 初心者向けLT PHPが分からなくてもテーマいじりは怖くないっ!!初心者向けフリーテーマ"Mypace Cust...
WordCamp Nagoya 2010 初心者向けLT PHPが分からなくてもテーマいじりは怖くないっ!!初心者向けフリーテーマ"Mypace Cust...Kei Nomura
 
アセンブラ短歌 On web
アセンブラ短歌 On webアセンブラ短歌 On web
アセンブラ短歌 On webKenji Aiko
 
JAWS-UG初心者支部第4回 Simple Front 53
JAWS-UG初心者支部第4回 Simple Front 53JAWS-UG初心者支部第4回 Simple Front 53
JAWS-UG初心者支部第4回 Simple Front 53Tetsuya Mase
 
新人エンジニアがフレームワークについて調べたこと
新人エンジニアがフレームワークについて調べたこと新人エンジニアがフレームワークについて調べたこと
新人エンジニアがフレームワークについて調べたことYosuke Kasagawa
 
mrubyボードを使って こんなことしてみました Kansai.mrb 2014 dec
mrubyボードを使って こんなことしてみました Kansai.mrb 2014 decmrubyボードを使って こんなことしてみました Kansai.mrb 2014 dec
mrubyボードを使って こんなことしてみました Kansai.mrb 2014 decYoshito Tanaka
 
Xamarinは辛いよ
Xamarinは辛いよXamarinは辛いよ
Xamarinは辛いよTakkiiii
 
VisualStudinoの役に立ちそうな拡張機能をまとめてみた
VisualStudinoの役に立ちそうな拡張機能をまとめてみたVisualStudinoの役に立ちそうな拡張機能をまとめてみた
VisualStudinoの役に立ちそうな拡張機能をまとめてみたytanno
 
第3回 HTML5飯 少ない工数で豊かな表現!これが私のCSSアニメーション
第3回 HTML5飯 少ない工数で豊かな表現!これが私のCSSアニメーション第3回 HTML5飯 少ない工数で豊かな表現!これが私のCSSアニメーション
第3回 HTML5飯 少ない工数で豊かな表現!これが私のCSSアニメーションSayuri Tsukida
 
Php beginnerが beginner + になるための話
Php beginnerが beginner + になるための話Php beginnerが beginner + になるための話
Php beginnerが beginner + になるための話yuichi kishimoto
 
プロジェクトでRubocopを使って自動コードレビューしてみた話
プロジェクトでRubocopを使って自動コードレビューしてみた話プロジェクトでRubocopを使って自動コードレビューしてみた話
プロジェクトでRubocopを使って自動コードレビューしてみた話Cake YOSHIDA
 
イチから学ぶ パッケージマネージャーとLAMP環境
イチから学ぶ パッケージマネージャーとLAMP環境イチから学ぶ パッケージマネージャーとLAMP環境
イチから学ぶ パッケージマネージャーとLAMP環境Keisuke Imura
 
Famo.usはもう試したかい?
Famo.usはもう試したかい?Famo.usはもう試したかい?
Famo.usはもう試したかい?lion-man
 
Wiiuでも使える動画サイトを作るには
Wiiuでも使える動画サイトを作るにはWiiuでも使える動画サイトを作るには
Wiiuでも使える動画サイトを作るにはyowasou
 
フォントをつくるサイトで使ったCanvasとSVGの話 @HTML5飯
フォントをつくるサイトで使ったCanvasとSVGの話 @HTML5飯フォントをつくるサイトで使ったCanvasとSVGの話 @HTML5飯
フォントをつくるサイトで使ったCanvasとSVGの話 @HTML5飯Yamato Honda
 
ReSharperを使ってみた
ReSharperを使ってみたReSharperを使ってみた
ReSharperを使ってみたytanno
 
Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜
Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜
Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜Cake YOSHIDA
 
初心者Vimmerによるvim+rails開発
初心者Vimmerによるvim+rails開発初心者Vimmerによるvim+rails開発
初心者Vimmerによるvim+rails開発Daisuke Kikuchi
 
bash(の変な使い方)update
bash(の変な使い方)updatebash(の変な使い方)update
bash(の変な使い方)updateRyuichi Ueda
 
なるほど分かった!平成最後のApp Serviceハンズオン
なるほど分かった!平成最後のApp Serviceハンズオンなるほど分かった!平成最後のApp Serviceハンズオン
なるほど分かった!平成最後のApp ServiceハンズオンTakayuki Fuwa
 

What's hot (20)

Vimを学びたい初心者のための5つの豆知識
Vimを学びたい初心者のための5つの豆知識Vimを学びたい初心者のための5つの豆知識
Vimを学びたい初心者のための5つの豆知識
 
WordCamp Nagoya 2010 初心者向けLT PHPが分からなくてもテーマいじりは怖くないっ!!初心者向けフリーテーマ"Mypace Cust...
WordCamp Nagoya 2010 初心者向けLT PHPが分からなくてもテーマいじりは怖くないっ!!初心者向けフリーテーマ"Mypace Cust...WordCamp Nagoya 2010 初心者向けLT PHPが分からなくてもテーマいじりは怖くないっ!!初心者向けフリーテーマ"Mypace Cust...
WordCamp Nagoya 2010 初心者向けLT PHPが分からなくてもテーマいじりは怖くないっ!!初心者向けフリーテーマ"Mypace Cust...
 
アセンブラ短歌 On web
アセンブラ短歌 On webアセンブラ短歌 On web
アセンブラ短歌 On web
 
JAWS-UG初心者支部第4回 Simple Front 53
JAWS-UG初心者支部第4回 Simple Front 53JAWS-UG初心者支部第4回 Simple Front 53
JAWS-UG初心者支部第4回 Simple Front 53
 
新人エンジニアがフレームワークについて調べたこと
新人エンジニアがフレームワークについて調べたこと新人エンジニアがフレームワークについて調べたこと
新人エンジニアがフレームワークについて調べたこと
 
mrubyボードを使って こんなことしてみました Kansai.mrb 2014 dec
mrubyボードを使って こんなことしてみました Kansai.mrb 2014 decmrubyボードを使って こんなことしてみました Kansai.mrb 2014 dec
mrubyボードを使って こんなことしてみました Kansai.mrb 2014 dec
 
Xamarinは辛いよ
Xamarinは辛いよXamarinは辛いよ
Xamarinは辛いよ
 
VisualStudinoの役に立ちそうな拡張機能をまとめてみた
VisualStudinoの役に立ちそうな拡張機能をまとめてみたVisualStudinoの役に立ちそうな拡張機能をまとめてみた
VisualStudinoの役に立ちそうな拡張機能をまとめてみた
 
第3回 HTML5飯 少ない工数で豊かな表現!これが私のCSSアニメーション
第3回 HTML5飯 少ない工数で豊かな表現!これが私のCSSアニメーション第3回 HTML5飯 少ない工数で豊かな表現!これが私のCSSアニメーション
第3回 HTML5飯 少ない工数で豊かな表現!これが私のCSSアニメーション
 
Php beginnerが beginner + になるための話
Php beginnerが beginner + になるための話Php beginnerが beginner + になるための話
Php beginnerが beginner + になるための話
 
プロジェクトでRubocopを使って自動コードレビューしてみた話
プロジェクトでRubocopを使って自動コードレビューしてみた話プロジェクトでRubocopを使って自動コードレビューしてみた話
プロジェクトでRubocopを使って自動コードレビューしてみた話
 
イチから学ぶ パッケージマネージャーとLAMP環境
イチから学ぶ パッケージマネージャーとLAMP環境イチから学ぶ パッケージマネージャーとLAMP環境
イチから学ぶ パッケージマネージャーとLAMP環境
 
Famo.usはもう試したかい?
Famo.usはもう試したかい?Famo.usはもう試したかい?
Famo.usはもう試したかい?
 
Wiiuでも使える動画サイトを作るには
Wiiuでも使える動画サイトを作るにはWiiuでも使える動画サイトを作るには
Wiiuでも使える動画サイトを作るには
 
フォントをつくるサイトで使ったCanvasとSVGの話 @HTML5飯
フォントをつくるサイトで使ったCanvasとSVGの話 @HTML5飯フォントをつくるサイトで使ったCanvasとSVGの話 @HTML5飯
フォントをつくるサイトで使ったCanvasとSVGの話 @HTML5飯
 
ReSharperを使ってみた
ReSharperを使ってみたReSharperを使ってみた
ReSharperを使ってみた
 
Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜
Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜
Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜
 
初心者Vimmerによるvim+rails開発
初心者Vimmerによるvim+rails開発初心者Vimmerによるvim+rails開発
初心者Vimmerによるvim+rails開発
 
bash(の変な使い方)update
bash(の変な使い方)updatebash(の変な使い方)update
bash(の変な使い方)update
 
なるほど分かった!平成最後のApp Serviceハンズオン
なるほど分かった!平成最後のApp Serviceハンズオンなるほど分かった!平成最後のApp Serviceハンズオン
なるほど分かった!平成最後のApp Serviceハンズオン
 

Similar to Vim no susume

今のWeb開発者に伝えたいWebブラウザの病みの歴史
今のWeb開発者に伝えたいWebブラウザの病みの歴史今のWeb開発者に伝えたいWebブラウザの病みの歴史
今のWeb開発者に伝えたいWebブラウザの病みの歴史Sho Okada
 
Herokumeetup8 growライトニングトーク
Herokumeetup8 growライトニングトークHerokumeetup8 growライトニングトーク
Herokumeetup8 growライトニングトーク淳 竹野
 
TypeScriptで作る型安全FirefoxOSアプリ
TypeScriptで作る型安全FirefoxOSアプリTypeScriptで作る型安全FirefoxOSアプリ
TypeScriptで作る型安全FirefoxOSアプリprogre
 
Ruby on vim yokohama.vim発表資料
Ruby on vim yokohama.vim発表資料Ruby on vim yokohama.vim発表資料
Ruby on vim yokohama.vim発表資料Shohei Kobayashi
 
201605 FA勉強会 seleniumスライド
201605 FA勉強会 seleniumスライド201605 FA勉強会 seleniumスライド
201605 FA勉強会 seleniumスライド秀平 高橋
 
201605 fa勉強会スライド
201605 fa勉強会スライド201605 fa勉強会スライド
201605 fa勉強会スライド秀平 高橋
 
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)parrotstudio
 
「いつアメブロから乗り換えるの? 今でしょ!」
「いつアメブロから乗り換えるの? 今でしょ!」「いつアメブロから乗り換えるの? 今でしょ!」
「いつアメブロから乗り換えるの? 今でしょ!」英一 森
 
もう一度基礎から!WordPress勉強会
もう一度基礎から!WordPress勉強会もう一度基礎から!WordPress勉強会
もう一度基礎から!WordPress勉強会Yutaro Fuji
 

Similar to Vim no susume (9)

今のWeb開発者に伝えたいWebブラウザの病みの歴史
今のWeb開発者に伝えたいWebブラウザの病みの歴史今のWeb開発者に伝えたいWebブラウザの病みの歴史
今のWeb開発者に伝えたいWebブラウザの病みの歴史
 
Herokumeetup8 growライトニングトーク
Herokumeetup8 growライトニングトークHerokumeetup8 growライトニングトーク
Herokumeetup8 growライトニングトーク
 
TypeScriptで作る型安全FirefoxOSアプリ
TypeScriptで作る型安全FirefoxOSアプリTypeScriptで作る型安全FirefoxOSアプリ
TypeScriptで作る型安全FirefoxOSアプリ
 
Ruby on vim yokohama.vim発表資料
Ruby on vim yokohama.vim発表資料Ruby on vim yokohama.vim発表資料
Ruby on vim yokohama.vim発表資料
 
201605 FA勉強会 seleniumスライド
201605 FA勉強会 seleniumスライド201605 FA勉強会 seleniumスライド
201605 FA勉強会 seleniumスライド
 
201605 fa勉強会スライド
201605 fa勉強会スライド201605 fa勉強会スライド
201605 fa勉強会スライド
 
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
 
「いつアメブロから乗り換えるの? 今でしょ!」
「いつアメブロから乗り換えるの? 今でしょ!」「いつアメブロから乗り換えるの? 今でしょ!」
「いつアメブロから乗り換えるの? 今でしょ!」
 
もう一度基礎から!WordPress勉強会
もう一度基礎から!WordPress勉強会もう一度基礎から!WordPress勉強会
もう一度基礎から!WordPress勉強会
 

More from ikdysfm

Promise async await
Promise async awaitPromise async await
Promise async awaitikdysfm
 
vscode pipenv docker
vscode pipenv dockervscode pipenv docker
vscode pipenv dockerikdysfm
 
Gcp associate cloud engineer
Gcp associate cloud engineerGcp associate cloud engineer
Gcp associate cloud engineerikdysfm
 
5分で分かるgitのrefspec
5分で分かるgitのrefspec5分で分かるgitのrefspec
5分で分かるgitのrefspecikdysfm
 
JavaScriptの落とし穴
JavaScriptの落とし穴JavaScriptの落とし穴
JavaScriptの落とし穴ikdysfm
 
Haskellで学ぶ関数型言語
Haskellで学ぶ関数型言語Haskellで学ぶ関数型言語
Haskellで学ぶ関数型言語ikdysfm
 

More from ikdysfm (6)

Promise async await
Promise async awaitPromise async await
Promise async await
 
vscode pipenv docker
vscode pipenv dockervscode pipenv docker
vscode pipenv docker
 
Gcp associate cloud engineer
Gcp associate cloud engineerGcp associate cloud engineer
Gcp associate cloud engineer
 
5分で分かるgitのrefspec
5分で分かるgitのrefspec5分で分かるgitのrefspec
5分で分かるgitのrefspec
 
JavaScriptの落とし穴
JavaScriptの落とし穴JavaScriptの落とし穴
JavaScriptの落とし穴
 
Haskellで学ぶ関数型言語
Haskellで学ぶ関数型言語Haskellで学ぶ関数型言語
Haskellで学ぶ関数型言語
 

Vim no susume