【Vim】Vim入門


※ 追記中です。
※ 初心者向けです。

## 前提

Macの人はiTermを入れましょう！！
http://iterm2.com/


## Vimを使えると良い理由
Vimというより、Viを使えると良い理由ということになりますが、
ViはあらゆるUnix, Linux系OSにおいてデフォルトでプリインストールされているエディタです。
そのため、その基本的な使い方に慣れておくと、
どのようなサーバ環境に放り出されても、最低限のファイル編集が行えるようになるので、ベーシックな使い方に慣れておくと良いです。
（emacs, nanoなどのエディタは、プリインストールされているOSは少なかったはずです）


## Vimの基本的な使い方

前提: Viを起動するとコマンドモードで立ち上がります。

### コマンドモード

#### 編集モードへの移行方法4種類
i ----- コマンドモードから編集モードへ移行
a ----- 今カーソルがあるところの一文字右側に移動して、編集モードとして入る
o ----- 次の行へ移動して、編集モードに入る

Shift+i ----- 行頭へ移動して編集モードへ入る
Shift+a ----- 行末へ移動して編集モードへ入る

#### 文字削除系コマンドなど
x ----- 今カーソルがある一文字を削除


#### コピー＆ペースト
dd ----- 今カーソルがある行1行を切り取ります
4dd ----- 今カーソルがある行から4行を切り取ります
yy ----- 今カーソルがある行1行をコピーします
4yy ----- 今カーソルがある行から4行分をコピーします
p ----- 今ヤンクしている文字列を貼り付けます 


#### 保存系コマンド
:w ----- 保存するコマンド(名前をつけて保存する場合は「:w [ファイル名]」みたいな感じ)
:q ----- ファイルを閉じるコマンド

#### 進む×戻る系コマンド
u ---- 一つ前の操作に戻る
Ctrl+r ----- 一つ先の操作に再度進む

### ビジュアルモード
Ctrl+v Shift+i ----- ビジュアルブロックで複数行を選択して、複数行への編集を行える


### 編集モード
Esc || Ctrl+[ ----- 編集モードを抜けてコマンドモードへ


### Vimの使い方基本を復習するために

vimtutorをやりましょう！！

	$ vimtutor


## Vimの設定とは

### Vimのコマンド

vimを開いた状態で、コマンドで行数表示をできるようにする

	:set number	# 行数を表示するようにするコマンド


### .vimrcというファイル

上記のような、vimの設定を変更するコマンドを毎回打つのは煩わしいので、vimを起動するたびに自動的に設定を読み込ませるようにすると便利です。
そのような自動で読み込ませたい設定を記載しておくのが、".vimrc"というファイルとなります。
該当ファイルをユーザのホームディレクトリ直下に以下のように作成します。

	$ cd ~/	# ユーザのホームディレクトリに移動
	$ touch .vimrc	# .vimrcというファイルを作成
	$ vim .vimrc		# .vimrcを編集していく


## Vimの便利なプラグイン

### NeoBundle・プラグイン管理ツール

#### NeoBundleとは

NeoBundleとはVimのプラグイン管理を便利にしてくれるツールです。

#### NeoBundleのインストール

	$ mkdir -p ~.vim/bundle
	$ git clone https://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim

#### NeoBundleの基本設定
.vimrcを開いて、下記の設定内容を追記します。

	$ vim .vimrc

	"---------------------------
	" Start Neobundle Settings.
	"---------------------------
	" bundleで管理するディレクトリを指定
	set runtimepath+=~/.vim/bundle/neobundle.vim/

	" Required:
	call neobundle#begin(expand('~/.vim/bundle/'))
 
	" neobundle自体をneobundleで管理
	NeoBundleFetch 'Shougo/neobundle.vim'
 
	" 今後このあたりに追加のプラグインをどんどん書いて行きます！！"
 
	call neobundle#end()
 
	" Required:
	filetype plugin indent on

	" 未インストールのプラグインがある場合、インストールするかどうかを尋ねてくれるようにする設定
	" 毎回聞かれると邪魔な場合もあるので、この設定は任意です。
	NeoBundleCheck

	"-------------------------
	" End Neobundle Settings.
	"-------------------------


#### プラグインをインストール
プラグインのインストールをするためには、
インストールしたいプラグインの設定を上記追記した設定項目の、
「call neobundle#begin」と「call neobundle#end()」の間に書いていきます。
試しに、下記のプラグインをインストールしてみます。

##### NERDTReeをインストール
.vimrcを開いて、「call neobundle#begin」と「call neobundle#end()」の間に、下記の二行を追加します。

	" NERDTreeを設定
	NeoBundle 'scrooloose/nerdtree'

上記二行を追加して保存後、再度vimを開こうとすると、下記のように尋ねられるので「y」を入力してインストール。

	Not installed bundles: ['nerdtree']
	Install bundles now?
	(y)es, [N]o:	<----- yを入力
	[neobundle/install] Update started: (2014/06/02 20:44:22)
	[neobundle/install] (1/1): |nerdtree| git clone --recursive https://	github.com/scrooloose/nerdtree.git "/Users/${USER}/.vim/bundle/nerdtree"
	[neobundle/install] (1/1): |nerdtree| Updated
	[neobundle/install] |nerdtree|  -> b0bb781fc73ef40365e4c996a16f04368d64fc9d
	[neobundle/install] Installed/Updated bundles:nerdtree
	Press ENTER or type command to continue

ここまで来てEnterを入力すると、通常通りVimが立ち上がり、コマンドモードで「:NERDTree」と入力するとNERDTreeが立ち上がります。

### 便利なプラグイン一覧