vimのノーマルモードのコマンドまとめ(その1)の続き
Ctrl + w,[,]打鍵が必要なノーマルモードのコマンドのまとめ
version
vim 7.4.2210
^wの機能
ウィンドウサイズ変更
ウィンドウの配置を変更する
ウィンドウ間でカーソルの移動を行う
ウィンドウを開く/閉じる
カーソル位置のタグ名/ファイル名を開く
[ ]の機能
キー | 動作 | キー | 動作 | |
---|---|---|---|---|
c | diffの差分の移動 | d | (C言語等の)マクロ定義の表示 | |
f | ファイルを開く※gfと同じ | i | キーワードを表示 | |
m | メソッドの{} に移動 |
p | インデント調整して貼り付け | |
s | スペルミスの単語に移動 | z | 折り畳みの先頭/末尾に移動 | |
' | マーク位置の行先頭へ移動 | * | C言語のコメントの始まり/終わりに移動 | |
( ) |
(,) へ移動 |
` | マーク位置へ移動 | |
/ | C言語のコメントの始まり/終わりに移動 | { } |
{,} へ移動 |
|
[ ] | セクション移動 | # | #if #else #endif の間を移動 |
Index
^w
| ^wb ^w^b | ^wc ^w^c | ^wd ^w^d | ^wf ^w^f | ^wF | ^wgF | ^wgf | ^wg] | ^wg} |
| ^wh ^w^h | ^wH | ^wi ^w^i | ^wj ^w^j | ^wJ | ^wk ^w^k | ^wK | ^wl ^w^l | ^wL |
| ^wn ^w^n | ^wo ^w^o | ^wp ^w^p | ^wP | ^wq ^w^q | ^wr ^w^r | ^wR | ^ws ^w^s | ^wS |
| ^wt ^w^t | ^wT | ^wv ^w^v | ^ww ^w^w | ^wW | ^wx ^w^x | ^wz ^w^z |
| ^w+ | ^w- | ^w< | ^w= | ^w> | ^w| | ^w] ^w^] | ^w^ ^w^^ | ^w_ ^w^_ | ^w} |
| ^w<Down> | ^w<Left> | ^w<Right> | ^w<Up>
[ ]
| [c ]c | [d ]d [D ]D [^d ]^d | [f ]f | [i ]i [I ]I [^i ]^i |
| [m ]m [M ]M | [p ]p [P ]P | [s ]s [S ]S | [z ]z |
| [' ]' | [* ]* | [( ]) | [` ]` | [/ ]/ | [{ ]} |
| ]] ][ [[ [] | ]# [# |
ウィンドウサイズ変更
以下キーで操作
^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| | 幅+ | Max | カレントウィンドウの幅を可能な限り広くする |
ウィンドウの配置を変更する
以下キーで操作
^wr ^w^r ^wx ^w^x ^wR ^wK ^wJ ^wH ^wL ^wT
動作は下記表を参照
キー | 動作 | 説明 |
---|---|---|
^wr | 右/下回転 | 同じ段/列のウィンドウの位置を右/下に1回転し、再配置する |
^w^r | 右/下回転 | ^wrと同じ |
^wR | 左/上回転 | 同じ段/列のウィンドウの位置を左/上に1回転し、再配置する |
^wx | 交換 | カレントウィンドウと次のウィンドウの配置を入れ替える ※次のウィンドウがない場合は前のウィンドウ |
^w^x | 交換 | ^wxと同じ |
^wK | 最上段 | カレントウィンドウを最上段に再配置し、幅を最大にする |
^wJ | 最下段 | カレントウィンドウを最下段に再配置し、幅を最大にする |
^wH | 最左列 | カレントウィンドウを最左列に再配置し、高さを最大にする |
^wL | 最右列 | カレントウィンドウを最右列に再配置し、高さを最大にする |
^wT | 新規タブ | 新規タブを開き、カレントウィンドウをそこに配置する |
ウィンドウ間でカーソルの移動を行う
以下キーで操作
^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 | - | プレビューウィンドウにカーソルを移動 |
ウィンドウを開く/閉じる
以下キーで操作
^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^^ | 前を開く | 直前のバッファを新規ウィンドウで開く ※ :sp # と同じ |
^wc ^w^c | 閉じる | カレントウィンドウを閉じる |
^wq ^w^q | 終了 | カレントウィンドウを終了する(:quit と同じ) |
^wo ^w^o | 他を閉じる | カレントウィンドウ以外を全て閉じる(:only と同じ) |
^wz ^w^z | プレビューを閉じる | プレビューウィンドウを閉じる |
補足
-
^w^c
は^c
のキーバインドが「中断」だと使えない - 閉じる処理(
^wc ^wo
)に関し、hidden
オプションがonの場合、閉じたファイルは隠れバッファとなる
カーソル位置のタグ名/ファイル名を開く
以下キーで操作
^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 | カーソル配下のキーワードを含むマクロ定義を 新規ウィンドウで開く |
^wi ^w^i | カーソル配下のキーワードの最初の1行目に移動して、 新規ウィンドウを開く |
[c ]c
diff差分の前/次に移動する
[d ]d [D ]D [^d ]^d
[d
カーソル下のマクロをファイルの先頭から検索して、定義を表示
]d
カーソル下のマクロを現在位置から検索して、定義を表示
[D
カーソル下のマクロをファイルの先頭から検索して、ファイル名、行番号、定義内容を表示
]D
カーソル下のマクロを現在位置から検索して、ファイル名、行番号、定義内容を表示
[^d
カーソル下のマクロをファイルの先頭から検索して、マクロの定義位置にジャンプする
]^d
カーソル下のマクロを現在位置から検索して、マクロの定義位置にジャンプする
注意
ここでいうマクロはC言語等で扱うマクロのことを指す
[f ]f
カーソル配下もしくは後ろにあるパスを開く
例えば)
tmp.txt 2
なら./tmp.txt
を開く
※gf
と同じ。非推奨
[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:-")
バッファについてローカル
[m ]m [M ]M
[m ]m
前/次のメソッドの初めの{
に移動する。前/次のメソッドがない場合はクラスの初め/終わりに移動する
[M ]M
前/次のメソッドの終わりの}
に移動する。前/次のメソッドがない場合はクラスの初め/終わりに移動する
#[p ]p [P ]P
]p
インデント調整して、後ろに貼り付け
[p ]p [P ]P
インデント調整して、前に貼り付け
補足
- インデント調整する点を除き、
p P
と同じ動作 - 貼り付け内容が一行以下の場合はインデント調整しない
[s ]s [S ]S
以下の表に従い、スペルミスの単語の前/次へ移動する
キー | 方向 | 動作 |
---|---|---|
[s | 後 | 次のスペルミスの単語へ移動。 |
]s | 前 | 前のスペルミスの単語へ移動。行をまたぐ単語は認識しない |
[S | 後 | 次のスペルミスの単語へ移動。他地域、まれな単語へ移動しない |
]S | 前 | 前のスペルミスの単語へ移動。他地域、まれな単語へ移動しない |
補足
該当機能使用のため:set spell
の実行が必要
[z ]z
現在開いている折り畳みの先頭([z
)/末尾(]z
)に移動する。
すでに先頭([z
)/末尾(]z
)にいる場合は外側の折り畳みの
先頭([z
)/末尾(]z
)に移動する
[' ]'
カーソル位置より一番近い前/次の小文字のマークがある行の最初の非空白文字へ移動
[* ]*
前/次のCコメントの始まり/終わりに移動する
※1.Cコメントの始まり/終わりは/* */
を指す
※2. [/ ]/と同じ
[( ])
[(
カーソルから前の位置にあるマッチがない(
へ移動する
])
カーソルから後ろの位置にあるマッチがない)
へ移動する
[` ]`
カーソル位置より一番近い前/次の小文字のマーク位置へ移動
[/ ]/
前/次のCコメントの始まり/終わりに移動する
※1.Cコメントの始まり/終わりは/* */
を指す
※2. [* ]*と同じ
[{ ]}
[{
カーソルから前の位置にあるマッチがない{
へ移動する
]}
カーソルから後ろの位置にあるマッチがない}
へ移動する
]] ][ [[ []
]]
セクション前方、もしくは{
ではじまる次の場所に移動する
][
セクション前方、もしくは}
ではじまる次の場所に移動する
[[
セクション後方、もしくは{
ではじまる次の場所に移動する
[]
セクション後方、もしくは}
ではじまる次の場所に移動する
補足
セクションはsections
オプションで定義することができる。
値はnroff
(Unixで使用している画面整形システム)のマクロで定義する。
例えば、既定値のSHNHH HUnhsh
は.SH``.NH``.H``.HU``.nh``.sh
を表す。
参考
]# [#
#if #else #endif の間を行き来する
補足
C言語等の「#if #else #endif」移動のための専用コマンド