vimのノーマルモードのコマンドまとめ(その3)

[vimのノーマルモードのコマンドまとめ(その1)](http://qiita.com/sfuta/items/0de4ead865c15e9e9b68)の続き
Ctrl + w,\[,\]打鍵が必要なノーマルモードのコマンドのまとめ

# version

vim 7.4.2210


# ^wの機能

[ウィンドウサイズ変更](#sfuta-ctrl-w-01)
[ウィンドウの配置を変更する](#sfuta-ctrl-w-02)
[ウィンドウ間でカーソルの移動を行う](#sfuta-ctrl-w-03)
[ウィンドウを開く/閉じる](#sfuta-ctrl-w-04)
[カーソル位置のタグ名/ファイル名を開く](#sfuta-ctrl-w-05)

# \[ \]の機能

|キー|動作||キー|動作|
|:--:|:--|:--:|:--:|:--|
|[c](#sfuta-bracket-01)     |diffの差分の移動                  || [d](#sfuta-bracket-02)     |(C言語等の)マクロ定義の表示 |
|[f](#sfuta-bracket-03)     |ファイルを開く※gfと同じ            || [i](#sfuta-bracket-04)     |キーワードを表示  |
|[m](#sfuta-bracket-05)     |メソッドの`{}`に移動               || [p](#sfuta-bracket-06)     |インデント調整して貼り付け |
|[s](#sfuta-bracket-07)     |スペルミスの単語に移動              || [z](#sfuta-bracket-08)     |折り畳みの先頭/末尾に移動|
|['](#sfuta-bracket-09)     |マーク位置の行先頭へ移動            || [*](#sfuta-bracket-10)     |C言語のコメントの始まり/終わりに移動|
|[( )](#sfuta-bracket-11)     |`(,)`へ移動                       || [\`](#sfuta-bracket-12)    |マーク位置へ移動|
|[/](#sfuta-bracket-13)     |C言語のコメントの始まり/終わりに移動  || [\{ \}](#sfuta-bracket-14)  |`{,}`へ移動 |
|[\[ \]](#sfuta-bracket-15)  |セクション移動                     || [\#](#sfuta-bracket-16)    |#if #else #endif の間を移動|

# Index

## ^w


| [\^wb \^w\^b](#sfuta-ctrl-w-03) | [\^wc \^w\^c](#sfuta-ctrl-w-04) | [\^wd \^w\^d](#sfuta-ctrl-w-05) | [\^wf \^w\^f](#sfuta-ctrl-w-05) | [\^wF](#sfuta-ctrl-w-05) |  [\^wgF](#sfuta-ctrl-w-05) | [\^wgf](#sfuta-ctrl-w-05) | [\^wg\]](#sfuta-ctrl-w-05) | [\^wg}](#sfuta-ctrl-w-05) |
| [\^wh \^w\^h](#sfuta-ctrl-w-03) | [\^wH](#sfuta-ctrl-w-02) | [\^wi \^w\^i](#sfuta-ctrl-w-05) | [\^wj \^w\^j](#sfuta-ctrl-w-03) | [\^wJ](#sfuta-ctrl-w-02) | [\^wk \^w\^k](#sfuta-ctrl-w-03) | [\^wK](#sfuta-ctrl-w-02) | [\^wl \^w\^l](#sfuta-ctrl-w-03) | [\^wL](#sfuta-ctrl-w-02) | 
| [\^wn \^w\^n](#sfuta-ctrl-w-04) | [\^wo \^w\^o](#sfuta-ctrl-w-04) | [\^wp \^w\^p](#sfuta-ctrl-w-03) | [\^wP](#sfuta-ctrl-w-03) | [\^wq \^w\^q](#sfuta-ctrl-w-04) | [\^wr \^w\^r](#sfuta-ctrl-w-02) | [\^wR](#sfuta-ctrl-w-02) | [\^ws \^w\^s](#sfuta-ctrl-w-04) | [\^wS](#sfuta-ctrl-w-04) |
| [\^wt \^w\^t](#sfuta-ctrl-w-03) | [\^wT](#sfuta-ctrl-w-02) | [\^wv \^w\^v](#sfuta-ctrl-w-04) | [\^ww \^w\^w](#sfuta-ctrl-w-03) | [\^wW](#sfuta-ctrl-w-03) | [\^wx \^w\^x](#sfuta-ctrl-w-02) | [\^wz \^w\^z](#sfuta-ctrl-w-04) |
| [\^w+](#sfuta-ctrl-w-01) | [\^w\-](#sfuta-ctrl-w-01) | [\^w\<](#sfuta-ctrl-w-01) | [\^w\=](#sfuta-ctrl-w-01) | [\^w\>](#sfuta-ctrl-w-01) | [\^w\|](#sfuta-ctrl-w-01) | [\^w\] \^w\^\]](#sfuta-ctrl-w-05) | [\^w\^ \^w\^\^](#sfuta-ctrl-w-04) | [\^w_ \^w\^_](#sfuta-ctrl-w-01) | [\^w}](#sfuta-ctrl-w-05) |
| [\^w\<Down\>](#sfuta-ctrl-w-03) | [\^w\<Left\>](#sfuta-ctrl-w-03) | [\^w\<Right\>](#sfuta-ctrl-w-03) | [\^w\<Up\>](#sfuta-ctrl-w-03)



## \[ \]

| [\[c  \]c](#sfuta-bracket-01) | [\[d  \]d \[D  \]D \[^d  \]^d ](#sfuta-bracket-02) | [\[f  \]f](#sfuta-bracket-03) | [\[i  \]i \[I  \]I \[^i  \]^i](#sfuta-bracket-04) | 
| [\[m  \]m \[M  \]M](#sfuta-bracket-05) | [\[p  \]p \[P  \]P](#sfuta-bracket-06) | [\[s  \]s \[S  \]S](#sfuta-bracket-07) | [\[z  \]z](#sfuta-bracket-08) |
| [\['  \]'](#sfuta-bracket-09) | [\[*  \]*](#sfuta-bracket-10) | [\[(  \])](#sfuta-bracket-11) | [\[\` \]\`](#sfuta-bracket-12) | [\[/  \]/](#sfuta-bracket-13) | [\[\{ \]\}](#sfuta-bracket-14) |
| [\]\] \]\[ \[\[ \[\]](#sfuta-bracket-15) | [\]\# \[&#35;](#sfuta-bracket-16) |


# <span id="sfuta-ctrl-w-01"></span>ウィンドウサイズ変更

以下キーで操作

```
^w= ^w+ ^w- ^w> ^w< ^w_ ^w^_ ^w|
```

## ^w\= 

全てのウィンドウの高さと幅の大きさをほぼ同じにする

 
## ^w+ ^w\- ^w\> ^w\< ^w_  ^w^_ ^w\|
以下表に従い、カレントウィンドウのサイズを変更する

|キー|方向|量|説明|
|:-- |:-- |:--: |:-- |
|^w\+    |高+ |1   |カレントウィンドウを1行分高くする |
|^w\-    |高- |1   |カレントウィンドウを1行分低くする |
|^w\_    |高+ |Max |カレントウィンドウの高さを可能な限り高くする |
|^w^\_   |高+ |Max |^w\_と同じ  |
|^w\>    |幅+ |1   |カレントウィンドウを1桁分広くする |
|^w\<    |幅- |1   |カレントウィンドウを1行分狭くする |
|^w&#124;|幅+ |Max |カレントウィンドウの幅を可能な限り広くする |

[Indexへ](#index)

# <span id="sfuta-ctrl-w-02"></span>ウィンドウの配置を変更する

以下キーで操作

```
^wr ^w^r ^wx ^w^x ^wR ^wK ^wJ ^wH ^wL ^wT
```

動作は下記表を参照

|キー|動作 |説明|
|:--  |:-- |:-- |
|^wr  |右/下回転 |同じ段/列のウィンドウの位置を右/下に1回転し、再配置する |
|^w^r |右/下回転 |^wrと同じ |
|^wR  |左/上回転 |同じ段/列のウィンドウの位置を左/上に1回転し、再配置する |
|^wx  |交換     |カレントウィンドウと次のウィンドウの配置を入れ替える<br>※次のウィンドウがない場合は前のウィンドウ|
|^w^x |交換     |^wxと同じ |
|^wK  |最上段   |カレントウィンドウを最上段に再配置し、幅を最大にする |
|^wJ  |最下段   |カレントウィンドウを最下段に再配置し、幅を最大にする |
|^wH  |最左列   |カレントウィンドウを最左列に再配置し、高さを最大にする |
|^wL  |最右列   |カレントウィンドウを最右列に再配置し、高さを最大にする |
|^wT  |新規タブ |新規タブを開き、カレントウィンドウをそこに配置する |

[Indexへ](#index)

# <span id="sfuta-ctrl-w-03"></span>ウィンドウ間でカーソルの移動を行う

以下キーで操作

```
^wh ^w^h ^w<Left> ^wj ^w^j ^w<Down>
^wk ^w^k ^w<Up> ^wl ^w^l ^w<Right>
^ww ^w^w ^wW ^wt ^w^t ^wb ^w^b ^wp ^w^p ^w^P
```

動作は下記表を参照


|キー|位置 |説明|
|:--  |:-- |:-- |
|^wh ^w^h ^w\<Left\> |左  |左のウィンドウにカーソルを移動 |
|^wj ^w^j ^w\<Down\> |下  |下のウィンドウにカーソルを移動 |
|^wk ^w^k ^w\<Up\>   |上  |上のウィンドウにカーソルを移動 |
|^wl ^w^l ^w\<Right\>|右  |右のウィンドウにカーソルを移動 |
|^ww ^w^w            |次  |次のウィンドウにカーソルを移動 |
|^wW                 |前  |前のウィンドウにカーソルを移動 |
|^wt ^w^t            |最初|一番左上のウィンドウにカーソルを移動 |
|^wb ^w^b            |最後|一番右下のウィンドウにカーソルを移動 |
|^wp ^w^p            |直前|直前のウィンドウにカーソルを移動 |
|^wP                 |-  |プレビューウィンドウにカーソルを移動 |

[Indexへ](#index)


# <span id="sfuta-ctrl-w-04"></span>ウィンドウを開く/閉じる

以下キーで操作

```
^ws ^w^s ^wS ^wv ^w^v ^wn ^w^n ^w^ ^w^^
^wc ^w^c ^wq ^w^q ^wo ^w^o ^wz ^w^z
```

動作は下記表を参照

|キー|概要 |詳細|
|:--  |:-- |:-- |
|^ws ^w^s ^wS |横分割  |カレントウィンドウを横に分割 |
|^wv ^w^v     |縦分割  |カレントウィンドウを縦に分割 |
|^wn ^w^n     |新規    |新規ウィンドウを開く|
|^w^ ^w^^     |前を開く |直前のバッファを新規ウィンドウで開く<br>※`:sp #`と同じ|
|^wc ^w^c     |閉じる   |カレントウィンドウを閉じる|
|^wq ^w^q     |終了     |カレントウィンドウを終了する(`:quit`と同じ)|
|^wo ^w^o     |他を閉じる|カレントウィンドウ以外を全て閉じる(`:only`と同じ)|
|^wz ^w^z     |プレビューを閉じる|プレビューウィンドウを閉じる|

## 補足
- `^w^c`は`^c`のキーバインドが「中断」だと使えない
- 閉じる処理(`^wc ^wo`)に関し、`hidden`オプションがonの場合、閉じたファイルは隠れバッファとなる

[Indexへ](#index)

# <span id="sfuta-ctrl-w-05"></span>カーソル位置のタグ名/ファイル名を開く

以下キーで操作

```
^w] ^w^] ^wg] ^wf ^w^f ^wF ^wgf ^wgF
^wd ^w^d ^wi ^w^i ^w} ^wg}
```

動作は下記表を参照

|キー|動作|
|:--  |:-- |
|^w\] ^w^\] |カーソル配下の宣言元を新規ウィンドウで開く |
|^wg\]      |カーソル配下の宣言元を新規ウィンドウで開く |
|^wf ^w^f   |カーソル配下のファイルを新規ウィンドウで開く |
|^wF        |カーソル配下のファイルを新規ウィンドウで開く |
|[^w}       |カーソル配下の宣言元をプレビューウィンドウで開く |
|[^wg}      |カーソル配下の宣言元をプレビューウィンドウで開く |
|^wgf       |カーソル配下のファイルを新規タブで開く |
|^wgF       |カーソル配下のファイルを新規タブで開く |
|^wd ^w^d   |カーソル配下のキーワードを含むマクロ定義を<br>新規ウィンドウで開く |
|^wi ^w^i   |カーソル配下のキーワードの最初の1行目に移動して、<br>新規ウィンドウを開く |


[Indexへ](#index)

---
---

# <span id="sfuta-bracket-01"></span> \[c  \]c

diff差分の前/次に移動する

[Indexへ](#index)

# <span id="sfuta-bracket-02"></span> \[d  \]d \[D  \]D \[^d  \]^d 

## \[d
カーソル下のマクロをファイルの先頭から検索して、定義を表示

## \]d
カーソル下のマクロを現在位置から検索して、定義を表示

## \[D
カーソル下のマクロをファイルの先頭から検索して、ファイル名、行番号、定義内容を表示

## \]D
カーソル下のマクロを現在位置から検索して、ファイル名、行番号、定義内容を表示

## \[^d
カーソル下のマクロをファイルの先頭から検索して、マクロの定義位置にジャンプする

## \]^d
カーソル下のマクロを現在位置から検索して、マクロの定義位置にジャンプする

**注意**
ここでいうマクロはC言語等で扱うマクロのことを指す

[Indexへ](#index)


# <span id="sfuta-bracket-03"></span> \[f  \]f

カーソル配下もしくは後ろにあるパスを開く
**例えば)**
`tmp.txt 2`なら`./tmp.txt`を開く
※`gf`と同じ。非推奨


[Indexへ](#index)

# <span id="sfuta-bracket-04"></span> \[i  \]i \[I  \]I \[^i  \]^i

## \[i
カーソル下のキーワードをファイルの先頭から検索して、キーワードを含む1行を表示

## \]i
カーソル下のキーワードを現在位置から検索して、キーワードを含む1行を表示

## \[I
カーソル下のキーワードをファイルの先頭から検索して、キーワードを含む1行とファイル名、行番号を表示

## \]I
カーソル下のキーワードを現在位置から検索して、キーワードを含む1行とファイル名、行番号を表示

## \[^i
カーソル下のキーワードをファイルの先頭から検索して、キーワードを含む1行にジャンプする

## \]^i
カーソル下のキーワードを現在位置から検索して、キーワードを含む1行にジャンプする


### 補足
検索にて、コメント文とみなした行は無視する

```
# 以下vim helpからcommentsの説明を引用
'comments' 'com'	文字列	(既定では
				"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-")
			バッファについてローカル
```

[Indexへ](#index)

# <span id="sfuta-bracket-05"></span>\[m  \]m \[M  \]M

## \[m  \]m

前/次のメソッドの初めの`{`に移動する。前/次のメソッドがない場合はクラスの初め/終わりに移動する

## \[M  \]M

前/次のメソッドの終わりの`}`に移動する。前/次のメソッドがない場合はクラスの初め/終わりに移動する

[Indexへ](#index)

#<span id="sfuta-bracket-06"></span>\[p  \]p \[P  \]P

# \]p

インデント調整して、後ろに貼り付け

# \[p  \]p \[P  \]P

インデント調整して、前に貼り付け

## 補足

- インデント調整する点を除き、`p P`と同じ動作
- 貼り付け内容が一行以下の場合はインデント調整しない

[Indexへ](#index)

# <span id="sfuta-bracket-07"></span>\[s  \]s \[S  \]S

以下の表に従い、スペルミスの単語の前/次へ移動する

|キー|方向|動作|
|:-:|:-:|:--|
|\[s |後 |次のスペルミスの単語へ移動。                     |
|\]s |前 |前のスペルミスの単語へ移動。行をまたぐ単語は認識しない|
|\[S |後 |次のスペルミスの単語へ移動。他地域、まれな単語へ移動しない|
|\]S |前 |前のスペルミスの単語へ移動。他地域、まれな単語へ移動しない|


## 補足

該当機能使用のため`:set spell`の実行が必要

[Indexへ](#index)

# <span id="sfuta-bracket-08"></span>\[z  \]z

現在開いている折り畳みの先頭(`[z`)/末尾(`]z`)に移動する。
すでに先頭(`[z`)/末尾(`]z`)にいる場合は外側の折り畳みの
先頭(`[z`)/末尾(`]z`)に移動する


[Indexへ](#index)

# <span id="sfuta-bracket-09"></span>\['  \]'

カーソル位置より一番近い前/次の小文字のマークがある行の最初の非空白文字へ移動

**参考**
[vimのノーマルコマンドまとめ(その1)-m](http://qiita.com/sfuta/items/0de4ead865c15e9e9b68#m)

[Indexへ](#index)

# <span id="sfuta-bracket-10"></span>\[*  \]*

前/次のCコメントの始まり/終わりに移動する
※1.Cコメントの始まり/終わりは`/* */`を指す
※2. \[/  \]/と同じ

[Indexへ](#index)

# <span id="sfuta-bracket-11"></span>\[(  \])

## \[(
カーソルから前の位置にあるマッチがない`(`へ移動する

## \])
カーソルから後ろの位置にあるマッチがない`)`へ移動する

[Indexへ](#index)

# <span id="sfuta-bracket-12"></span>\[\` \]\`

カーソル位置より一番近い前/次の小文字のマーク位置へ移動

**参考**
[vimのノーマルコマンドまとめ(その1)-m](http://qiita.com/sfuta/items/0de4ead865c15e9e9b68#m)

[Indexへ](#index)

# <span id="sfuta-bracket-13"></span>\[/  \]/

前/次のCコメントの始まり/終わりに移動する
※1.Cコメントの始まり/終わりは`/* */`を指す
※2. \[*  \]*と同じ

[Indexへ](#index)

# <span id="sfuta-bracket-14"></span>\[\{ \]\}

## \[{
カーソルから前の位置にあるマッチがない`{`へ移動する

## \]}
カーソルから後ろの位置にあるマッチがない`}`へ移動する

[Indexへ](#index)

# <span id="sfuta-bracket-15"></span>\]\] \]\[ \[\[ \[\]

## \]\] 
セクション前方、もしくは`{`ではじまる次の場所に移動する

## \]\[
セクション前方、もしくは`}`ではじまる次の場所に移動する

## \[\[ 
セクション後方、もしくは`{`ではじまる次の場所に移動する

## \[\]
セクション後方、もしくは`}`ではじまる次の場所に移動する

### 補足
セクションは`sections`オプションで定義することができる。
値は`nroff`(Unixで使用している画面整形システム)のマクロで定義する。
例えば、既定値の`SHNHH HUnhsh`は`.SH``.NH``.H``.HU``.nh``.sh`を表す。
**参考**

[Indexへ](#index)

# <span id="sfuta-bracket-16"></span> \]\# \[&#35;

\#if \#else \#endif の間を行き来する

## 補足
C言語等の「\#if \#else \#endif」移動のための専用コマンド

[Indexへ](#index)