SlideShare a Scribd company logo
2010.11.13 6 Web #YWebGrp第 回山口県 勉強会 1
Vim 初心者による Vim 入門
@haman29
2
自己紹介
● 浜田 恭平 /カトウくん/はまーん
● 学生:宇部高専 専攻科 経営情報工学専攻
● 研究: SBM 上でのレコメンド , 照応解析
● 就職:来年度から Web エンジニア (ecnavi.co.jp)
● Vim 歴: 1 年ちょっと
● コンタクト
● Twitter      : @haman29
● Facebook  : kyohei.hamada
● Skype  : khama0129
3
Vim って何?
●
プログラマ向けのテキストエディタ
● テキストエディタの例
● メモ帳 , 秀丸 ,Terapad,IMEditor,Emacs,IDE 付属
● しばしば Emacs と比較される
●
操作が特殊 ( モード )
4
歴史
●
軽量の Vi
↓
● 機能豊富な Vim
● Vi IMitation( 模倣 )   Vi IMproved (→ 改良)
※ 詳しくはググってください
5
出会い
●
3 年前 講義で Vi を知る
● 1 年前 インターンシップで Vim を使う
● 社員さんの手つきがかっこいい
● 使いこなしたい欲
● 今ではコーディングは Vim オンリー
● まだまだ初心者
※Emacs や IDE 付属のエディタについてはほとんど触ったことがありません
6
おいしいところ
 CUI
 軽い
 サーバ管理 (ex ssh でログインしていじる )
 カスタマイズ性
 設定ファイル (.vimrc) ,各種 Plugin
 慣れるとコーディングのスピードが速い
 習得コストは高い
 コードを書いていて気持ちいい
 手つきがプロっぽい
7
導入
● Windows
● KaoriYa Vim7.3(2010.11.13 現在 )
 http://www.kaoriya.net/#VIM
 Ubuntu(Linux)
● デフォルトは Vi(vim­tiny)
● $ sudo apt­get install vim
● Mac
● MacVim  デフォルトで入っている
8
モード
Normal
( ノーマル )
Command
(EX)
Insert
( 挿入 )
Visual
( ビジュアル )
ESC
ESC
ESC
v,V
Ctrl+v
i,a,o
I,A,O
:
/,?
h,j,k,l,^,$
y,p,d,x
※ESC( エスケープ ) を多用する
選択 置換,検索など
移動 , 削除 , コピー , 貼付など
9
Normal( ノーマル )
 h,j,k,l 4方向 . 左 (h), 下 (j), 上 (k), 右 (l) に移動
 ^,$ 行頭 ( ^), 行末 ($) に移動
 G,gg ファイルの先頭 (gg), 末尾 (G) に移動

dd,yy 1 行削除 (dd),1 行ヤンク / コピー (yy)
 p ペースト
 u,Ctrl+r アンドゥ (u) &リドゥ (Ctrl+r)
移動
10
Insert( 挿入 )

i,I,A  その場 (i), 行の先頭 (I), 行の末尾 (A)

o,O 前の行 (o), 後ろの行 (O)
11
Command(EX)
 :wq 保存&終了
 /hoge ”hoge" を検索
 :%s/hoge/fuga/g ”hoge” を” fuga” に置換
12
Visual( ビジュアル )
 v,V   その場 (v), 行ごと (V) 
13
デモ1
~独特な操作~
14
カスタマイズ
●
ディレクトリ構造 (Ubuntu の例 )
    $HOME/.vimrc  設定ファイル
    $HOME/.vim/
     Autoload/  自動的に読み込まれるスクリプト
     colors/ 色テーマ定義ファイル
     doc/  ヘルプドキュメント
  ftplugin/  ファイルタイププラグイン
  Indent/  インデントスクリプト
  plugin/  プラグインスクリプト
     syntax/  文法ファイル
    .../  他にもたくさんあります
15
.vimrc( 設定ファイル )
番号,タブ幅,文字コード,カラースキーマの設定など
※ 前述のコマンド (EX) モードでも設定できる
浜田の例
( 一部 )
僕も他人の .vimrc をコピペして使っているレベルなのでまだまだです
16
プラグイン
 http://www.vim.org/scripts/  で探す
 hoge.vim $HOME/.vim/plugin/ に配置
 hoge.tar.gz .zip 解凍して指定されたディレクトリに配置
17
浜田が入れている plugin 例
 Neocomplcache
 補完候補を自動でポップアップ
 https://github.com/Shougo/neocomplcache
 NERD commenter
 楽にコメントアウト
 https://github.com/scrooloose/nerdcommenter
18
デモ2
~ プラグイン導入 ~
19
Tips1
 矩形選択 (Ctrl+v) * 「くけい」と読む
 I 選択した範囲の箇所に文字列を挿入
 $A 選択した範囲の行末に文字列を挿入
20
Tips2

画面分割
 :split [filename] 横分割
 :vsplit [filename] 縦分割
 Ctrl+w h,j,k,l 画面間の移動
 タブ
 tabnew [filename] タブで開く
 gt,gT タブ間の移動
21
Tips3

qa, qb... マクロ (@a,@b で呼ぶ )
 Ctrl+a, Ctrl+x インクリメント & デクリメント
 !php % shell  での "php hoge.php" と同義
 r!date 現在時刻の挿入 (shell)
 選択 :sort 選択した箇所を sort  する
22
おまけ ( チートシート )
http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html より引用
23
まとめ
慣れると
速いのが Vim
慣れないと
使えないのが Vim
24
ありがとうございました .

More Related Content

Similar to 「Vim初心者によるVim入門@haman29」

Vim の話
Vim の話Vim の話
Vim の話
cohama
 
20130316 プログラミング言語Go
20130316 プログラミング言語Go20130316 プログラミング言語Go
20130316 プログラミング言語Go
Yoshifumi Yamaguchi
 
FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolangFINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolang
Yoshiki Shibukawa
 
hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計
Shinnosuke Tokuda
 
Opa - Cloud Language
Opa - Cloud LanguageOpa - Cloud Language
Opa - Cloud Language
Tozo Tanaka
 
Golang tokyo #7 qtpm
Golang tokyo #7 qtpmGolang tokyo #7 qtpm
Golang tokyo #7 qtpm
Yoshiki Shibukawa
 
EE
EEEE
20221031_SD輪読&座談会#42_kitazaki.pdf
20221031_SD輪読&座談会#42_kitazaki.pdf20221031_SD輪読&座談会#42_kitazaki.pdf
20221031_SD輪読&座談会#42_kitazaki.pdf
Ayachika Kitazaki
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
エピック・ゲームズ・ジャパン Epic Games Japan
 
L-1グランプリ "D言語"
L-1グランプリ "D言語"L-1グランプリ "D言語"
L-1グランプリ "D言語"
det coder
 
20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuri20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuri
Yoshifumi Yamaguchi
 
zend_parse_parametersと64bit環境
zend_parse_parametersと64bit環境zend_parse_parametersと64bit環境
zend_parse_parametersと64bit環境
Yo Ya
 
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
Uehara Junji
 
Titanium実装最初の一歩.
Titanium実装最初の一歩. Titanium実装最初の一歩.
Titanium実装最初の一歩.
Yasuhiro Matsubayashi
 
もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…Yasumasa Suenaga
 
(初心者向け) Vim の機能紹介@nagoya.vim #1
(初心者向け) Vim の機能紹介@nagoya.vim #1(初心者向け) Vim の機能紹介@nagoya.vim #1
(初心者向け) Vim の機能紹介@nagoya.vim #1cohama
 
マイクロサービス時代の動画配信基Ruby×go=∞
マイクロサービス時代の動画配信基Ruby×go=∞マイクロサービス時代の動画配信基Ruby×go=∞
マイクロサービス時代の動画配信基Ruby×go=∞
DMM.com
 
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析
Takuya Ueda
 
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Atsushi Harada
 

Similar to 「Vim初心者によるVim入門@haman29」 (20)

Vim の話
Vim の話Vim の話
Vim の話
 
20130316 プログラミング言語Go
20130316 プログラミング言語Go20130316 プログラミング言語Go
20130316 プログラミング言語Go
 
FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolangFINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolang
 
hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計hooks riverpod + state notifier + freezed でのドメイン駆動設計
hooks riverpod + state notifier + freezed でのドメイン駆動設計
 
Opa - Cloud Language
Opa - Cloud LanguageOpa - Cloud Language
Opa - Cloud Language
 
Golang tokyo #7 qtpm
Golang tokyo #7 qtpmGolang tokyo #7 qtpm
Golang tokyo #7 qtpm
 
EE
EEEE
EE
 
20221031_SD輪読&座談会#42_kitazaki.pdf
20221031_SD輪読&座談会#42_kitazaki.pdf20221031_SD輪読&座談会#42_kitazaki.pdf
20221031_SD輪読&座談会#42_kitazaki.pdf
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
 
L-1グランプリ "D言語"
L-1グランプリ "D言語"L-1グランプリ "D言語"
L-1グランプリ "D言語"
 
20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuri20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuri
 
zend_parse_parametersと64bit環境
zend_parse_parametersと64bit環境zend_parse_parametersと64bit環境
zend_parse_parametersと64bit環境
 
Runtime c++editing
Runtime c++editingRuntime c++editing
Runtime c++editing
 
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
 
Titanium実装最初の一歩.
Titanium実装最初の一歩. Titanium実装最初の一歩.
Titanium実装最初の一歩.
 
もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…
 
(初心者向け) Vim の機能紹介@nagoya.vim #1
(初心者向け) Vim の機能紹介@nagoya.vim #1(初心者向け) Vim の機能紹介@nagoya.vim #1
(初心者向け) Vim の機能紹介@nagoya.vim #1
 
マイクロサービス時代の動画配信基Ruby×go=∞
マイクロサービス時代の動画配信基Ruby×go=∞マイクロサービス時代の動画配信基Ruby×go=∞
マイクロサービス時代の動画配信基Ruby×go=∞
 
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析
 
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~
 

More from Kyohei Hamada

詐欺メイクちゃんねる(仮)
詐欺メイクちゃんねる(仮)詐欺メイクちゃんねる(仮)
詐欺メイクちゃんねる(仮)
Kyohei Hamada
 
資格取得に向けての活動記録
資格取得に向けての活動記録資格取得に向けての活動記録
資格取得に向けての活動記録Kyohei Hamada
 
Visualization of Relationship between Social Bookmark Users
Visualization of Relationship between Social Bookmark UsersVisualization of Relationship between Social Bookmark Users
Visualization of Relationship between Social Bookmark UsersKyohei Hamada
 
Visualization of Relationship between Social Bookmark Users
Visualization of Relationship between Social Bookmark UsersVisualization of Relationship between Social Bookmark Users
Visualization of Relationship between Social Bookmark UsersKyohei Hamada
 

More from Kyohei Hamada (6)

Sotsuken final
Sotsuken finalSotsuken final
Sotsuken final
 
Sotsuken half
Sotsuken halfSotsuken half
Sotsuken half
 
詐欺メイクちゃんねる(仮)
詐欺メイクちゃんねる(仮)詐欺メイクちゃんねる(仮)
詐欺メイクちゃんねる(仮)
 
資格取得に向けての活動記録
資格取得に向けての活動記録資格取得に向けての活動記録
資格取得に向けての活動記録
 
Visualization of Relationship between Social Bookmark Users
Visualization of Relationship between Social Bookmark UsersVisualization of Relationship between Social Bookmark Users
Visualization of Relationship between Social Bookmark Users
 
Visualization of Relationship between Social Bookmark Users
Visualization of Relationship between Social Bookmark UsersVisualization of Relationship between Social Bookmark Users
Visualization of Relationship between Social Bookmark Users
 

「Vim初心者によるVim入門@haman29」