Up: 目次   [Index]


移動コマンド

*motion.txt*    For Vim バージョン 8.1.  Last change: 2019 Nov 16


		  VIMリファレンスマニュアル	  by Bram Moolenaar

カーソルの移動

これらのコマンドはカーソルの位置を變へます。移動先の位置がスクリーンの外側であればカーソルを表示するためにスクリーンをスクロールさせます (’scrolljump’ と ’scrolloff’ オプションも參照してください)。

1. 移動とオペレータ|operator|
2. 左右の移動|left-right-motions|
3. 上下の移動|up-down-motions|
4. 單語單位の移動|word-motions|
5. オブジェクト單位で移動|object-motions|
6. オブジェクト單位で選擇|object-select|
7. マーク|mark-motions|
8. ジャンプ|jump-motions|
9. 樣々な移動|various-motions|

一般的な注意:

ファイルのどの場所にゐるかを知るには "CTRL-G" コマンド |CTRL-G| か "g CTRL-G" コマンド |g_CTRL-G| を使つてください。’ruler’ オプションをセットしてゐればステータス行にカーソルの位置が表示し續けられます (ちよつとだけ Vim を遲くします)。

經驗を積んだユーザーは hjkl キーを使ふのをそれらが常に指の下にあるといふ理由で好みます。初心者はしばしば hjkl キーの動作を知らないので矢印キーを使ふのを好みます。hjkl がどんな動きをするのか覺えるのはキーボードを見ればすぐわかります。j を下矢印と見立ててみてください。

virtualedit’ オプションをセットすると、文字がない位置や文字の眞ん中にもカーソルを移動できるやうになります。

1. 移動とオペレータ

移動コマンドはオペレータコマンドの後に續けることができ、カーソルが移動する閒のテキストにそのオペレータコマンドを施すことができます。つまりは移動前と移動後のカーソル位置の閒のテキストです。オペレータコマンドは一般的にテキストを削除したり變更したりするのに使はれます。下記のオペレータコマンドを使ふことができます:

|c|c變更
|d|d削除
|y|yレジスタにヤンクする (テキストは變更しません)
|~|~大文字/小文字を入れ換へる (’tildeop’ がセットされてゐれば)
|g~|g~大文字/小文字を入れ換へる
|gu|gu小文字にする
|gU|gU大文字にする
|!|!外部コマンドを使つてフィルターに通す
|=|=equalprg’ を使つてフィルターに通すか、値が空であれば C のインデントを行ふ
|gq|gqテキストを整形する
|gw|gwカーソルを移動させすにテキストを整形する
|g?|g?ROT13 エンコーディング
|>|>右にシフトする
|<|<左にシフトする
|zf|zf折り疊みを作成する
|g@|g@オプション ’operatorfunc’ に設定された函數を呼ぶ

移動コマンドにカウントが前置されてゐてかつオペレータコマンドにカウントが前置されてゐれば 2 つのカウントが掛け合はされます。例: "2d3w" は 6 つの單語を削除します。

オペレータが終了すると、カーソルはだいたいオペレータを受けたテキストの始めに置かれます。例へば、"yfe" はカーソルを動かしませんが、"yFe" はカーソルをヤンクのスタートした "e" の左側に移動します。

オペレータは行全體もしくは開始位置と終了位置の閒の文字に對して施されます。一般的に、行をまたいで移動するコマンドは行に對して施され(行單位)、行內を移動するコマンドは文字に對して施されます(文字單位)。しかしながらいくつかの例外はあります。

文字單位の移動は內包的 (inclusive) か排他的 (exclusive) のどちらかです。內包的な場合は移動の最初と最後の位置がオペレータの對象に含まれますが、排他的な場合はバッファの最後に向かつて最後の文字は對象に含まれません。行單位の移動は常に最初と最後の位置が含まれます。

どの移動コマンドが行單位であり、內包的であり、排他的であるかはコマンドのそばに書かれてゐます。しかしながら 2 つの例外があります:

  1. 移動コマンドが排他的で移動後の位置が1桁目であれば、移動の最後は一行前の行の最後に動かされ、移動コマンドは內包的になります。例: "}" は段落の後の最初の行まで移動しますが "d}" はその行を含めません。
  2. 移動コマンドが排他的で、移動後の位置が 1 桁目でかつ移動初めの位置がその行の最初の非空白文字かその手前の位置であれば、移動コマンドは行單位になります。例: 段落が空白文字で始まつてゐて、カーソルが最初の非空白文字に位置してゐるとすれば "d}" は段落中のすべての行を最初の空白も含めて削除します。それから put コマンドを行へば削除された行はカーソルの位置の下から插入されます。

オペレータが待機してゐるとき (オペレータコマンドがタイプされてゐて移動コマンドはまだタイプされてゐない狀態 ) でのみ動作するマップを作成することができます。|:omap| を參照。

初めにオペレータコマンドを指定してそれから移動コマンドを打つ、といふ風にする代はりにビジュアルモードを使ふこともできます: テキストの最初を "v" でマークしてからカーソルをテキストの終はりまで移動させます。さうするとその範圍に對してオペレータコマンドを打つことで處理を施すことができます。テキストの初めとカーソル位置の閒はハイライトされてゐますので、どの部分のテキストにオペレータが施されるのかを目で確認することができます。かうすることで自由度が上がりますが、打ち込むキーストロークは增え、そしてリドゥ機能が制限されます。ビジュアルモードの章もご覽下さい。|Visual-mode|

移動に ":" コマンドを使ふことができます。例へば "d:call FindEnd()"。しかし、コマンドが 1 行以上になると "." で繰り返すことができません。 これは繰り返せます:

d:call search("f")<CR>

これは繰り返せません:

d:if 1<CR>
call search("f")<CR>
endif<CR>

Note:
":" を使つた全ての移動は、排他的な文字單位になることに注意してください。

移動を行單位、文字單位、ブロック單位にする

移動があなたの望むタイプと違ふ場合は、オペレータコマンドの後に "v", "V", CTRL-V を使ふことで別のタイプにすることができます。

例:

dj

は 2 行を削除します。

dvj

はカーソル位置からカーソルの 1 個下の文字の手前までを削除します。

d<C-V>j

はカーソル位置とカーソルの 1 個下の文字を削除します。

行單位の移動に文字單位・ブロック單位の移動をさせるときは注意してください。桁が必ずしも定義されてゐないかもしれません。

v

オペレータコマンドと移動コマンドの閒で使はれたとき: 移動コマンドが行單位であつても、オペレータコマンドが文字單位で機能するやうにします。移動コマンドが行單位のときは排他的 |exclusive| になります。移動コマンドが既に文字單位の場合には、內包的/排他的を切り替へます。これによつて排他的な移動を內包的にしたり、その逆にしたりできます。

V

オペレータコマンドと移動コマンドの閒で使はれたとき: 移動コマンドが文字單位であつても、オペレータコマンドが行單位で機能するやうにします。

CTRL-V

オペレータコマンドと移動コマンドの閒で使はれたとき: オペレータコマンドがブロック單位で機能するやうにします。これは移動の前後のカーソル位置を端點とする矩形範圍を選擇したのと同じやうに動作します。

2. 左右の移動

この節で說明するコマンドはどれも、カーソルをカレント行の指定の位置に移動させます。これらのコマンドは行の先頭と末尾でストップします。例外は "$" で、カウントを指定した場合は下の行へ移動します。’whichwrap’ をオンにすると、これらのコマンドが行をまたいで移動するやうになります。

h または
<Left> または
CTRL-H または
<BS>

[count] 文字左に移動します。|exclusive|。

Note:
<BS> キーには文字を削除させたければ次のマッピングを使つてください:

:map CTRL-V<BS>         X

("CTRL-V<BS>" を入力するには CTRL-V キーをタイプした後 <BS> キーをタイプしてください) <BS> キーがうまく動作しない場合は |:fixdel| を參照してください。

l または
<Right> または
<Space>

[count] 文字右に移動します。|exclusive|。行末での擧動を調節するにはオプション ’whichwrap’ を參照して下さい。

0

その行の最初の文字に移動します。|exclusive|。

<Home>

その行の最初の文字に移動します。|exclusive|。上下に移動するときは同じ論理桁位置に留まります。(可能であれば)。他のほとんどのコマンドは同じ物理桁位置に留まります。<Home> は "1|" と同じやうに動作し、"0" との違ひは行が <Tab> で始まる場合です。

^

その行の最初の非空白文字に移動します。|exclusive|。

$ または
<End>

その行の最後に移動します。カウントが指定された場合は、[count - 1] 行下にも移動します。|inclusive| の動作。ビジュアルモードではカーソルは行の最後の文字の後へ移動します。

virtualedit’ がオンのときには、"$" によつてカーソルが行末の先から行の最後の文字へバックするかもしれません。

g_

[count - 1] 行下の最後の非空白文字へ移動。|inclusive|。

g0 または
g<Home>

行が折り返されてゐる場合 (’wrap’ オン): スクリーン行の初めの文字に移動。|exclusive|。スクリーンより廣い行の場合に "0" と違ふ動作になります。

行が折り返されてゐない場合は (’wrap’ オフ): スクリーン上の現在の行でもつとも左の文字に移動します。最初の文字がスクリーン上にない場合に "0" とは違ふ動作になります。

g^

行が折り返されてゐる場合 (’wrap’ オン): スクリーン行の最初の非空白文字に移動します。|exclusive|。スクリーンより廣い行の場合に "^" とは違ふ動作になります。

行が折り返されてゐない場合は (’wrap’ オフ): スクリーン上の現在の行でもつとも左側にある非空白文字に移動します。最初の非空白文字がスクリーン上にない場合に "^" とは違ふ動作になります。

gm

"g0" と似てゐますがスクリーンの幅の眞ん中に移動します (もしくは可能な限り眞ん中に向かつて右に)。

gM

"g0" と似てゐますが行のテキストの眞ん中に移動します。

カウントあり: 行のテキストのこの割合まで。したがつて、"10gM" はテキストの始まり近くにあり、"90gM" はテキストの終はり近くにあります。

g$ または
g<End>

行が折り返されてゐる場合 (’wrap’ オン): スクリーン行の最後の文字に、そして [count - 1] スクリーン行下に移動します。|inclusive|。行がスクリーンより廣い場合に "$" と違ふ動作になります。

行が折り返されてゐない場合 (’wrap’ オフ): スクリーン上に表示されてゐる現在の行の文字のうち最も右に位置するものに移動します。行の最後の文字がスクリーン上にないかカウントが使はれた場合に "$" とは違ふ動作になります。

さらに、縱方向への移動は、行末でなく同じ桁になります。’virtualedit’ が有效である場合、スクリーン行の末尾に移動します。

|

現在の行の [count] スクリーン桁位置に移動します。|exclusive|。Ceci n’est pas une pipe. {譯注: 「これはパイプではない」。同名のマグリットの繪がある}

f{char}

右に向かつて [count] 番目に現れる {char} に移動し、カーソルがその {char} 上に置かれます。|inclusive|。{char} はダイグラフ |digraph-arg| でも構ひません。

encoding’ が Unicode にセットされてゐるときは、composing character が使へます。|utf-8-char-arg| を參照。

|:lmap| マッピングが {char} に適用されます。插入モード時の CTRL-^ コマンドでこれの on/off を切り替へられます |i_CTRL-^|。

F{char}

左に向かつて [count] 番目に現れる {char} に移動し、カーソルがその {char} 上に置かれます。|exclusive|。{char} は |f| コマンドと同樣に入力できます。

t{char}

右に向かつて [count] 番目に現れる {char} まで移動します。カーソルは {char} の左側の文字に置かれます。|inclusive|。

{char} は |f| コマンドと同樣に入力できます。

T{char}

左に向かつて [count] 番目に現れる {char} まで移動します。カーソルは {char} の右側の文字に置かれます。|exclusive|。

{char} は |f| コマンドと同樣に入力できます。

;

[count] 回最後の f, t, F, T を繰り返します。|cpo-;| 參照。

,

[count] 回最後の f, t, F, T を反對方向に繰り返します。|cpo-;| 參照。

3. 上下の移動

k または
<Up> または
CTRL-P

[count] 行上に移動 (行單位 |linewise|)

j または
<Down> または
CTRL-J または
<NL> または
CTRL-N

[count] 行下に移動 (行單位 |linewise|)

gk または
g<Up>

[count] 表示行上に移動。|exclusive|。行が折り返されてゐる場合とオペレータコマンドとともに使はれた場合は ’k’ と違ふ動作になります (行單位ですから)。

gj or g<Down>

[count] 表示行下に移動。|exclusive|。行が折り返されてゐる場合とオペレータコマンドとともに使はれた場合は ’j’ と違ふ動作になります (行單位ですから)。

- <minus>

[count] 行上の最初の非空白文字に移動します (行單位 |linewise|)

+ または
CTRL-M または
<CR>

[count] 行下の最初の非空白文字に移動します (行單位 |linewise|)

_ <underscore>

[count] -1 行下の最初の非空白文字に移動します (行單位 |linewise|)

G

[count] 行目の最初の非空白文字に移動します (行單位 |linewise|)。カウントの前置がなければ最後の行に移動します。’startofline’ がセットされてゐなければ同じ桁位置に移動します。

G はジャンプモーション (|jump-motions|) の 1 つです。

<C-End>

[count] 行目へ移動。|inclusive|。カウントの前置がなければ最後の行の最後の文字へ移動します。

<C-Home> または
gg

[count] 行目の最初の非空白文字に移動します (行單位 |linewise|)。

カウントの前置がなければ最初の行に移動します。’startofline’ がセットされてゐなければ同じ桁位置に移動します。

:[range]

[range] 內の最後の行へカーソルを移動します。[range] は單に 1 個の數字であつてもかまひません。例: ":1" や ":’m"。

|G| と違つてこのコマンドはジャンプリスト (|jumplist|) を變更しません。

{count}%

ファイルの {count} パーセントの位置の最初の非空白文字に移動します (行單位 |linewise|)。新しい行番號を計算するのに次の式が使はれます:

({count} * number-of-lines + 99) / 100

startofline’ オプションも參照してください。

:[range]go[to] [count]
[count]go

バッファ中の [count] バイト目に移動します。デフォルトでは [count] は 1 で、ファイルの最初になつてゐます。

[range] が指定された場合は最後の數字が使はれます。行の終はりを示す文字が數へられるかどうかは ’fileformat’ の設定によります。

|line2byte()| 函數と ’statusline’ の ’o’ オプションも參照。

{|+byte_offset| 機能なしでコンパイルされた場合は使へません}

これらのコマンドは指定された行に移動します。最初の行もしくは最後の行に到達した場合はそれ以上動きません。最初の 2 つのコマンドはカーソルを桁位置を變更する最後のコマンドの後の位置と (可能であれば) 同じ桁位置に動かします。"$" コマンドは例外でカーソルは行の最後の位置に置かれます。

[count] をつけて "k", "-", CTRL-P を實行したが、カーソルより上に [count] 分の行がなかつた場合、オプション ’cpo’ がフラグ "-" を含むならばエラーになります。|cpo--|

4. 單語單位の移動

<S-Right> または
w

[count] word 前方に。|exclusive|

<C-Right> または
W

[count] WORD 前方に。|exclusive|

e

[count] word 前方の單語の終はりに。|inclusive|

w や b と異なり、空行では止まりません。

E

[count] WORD 前方の單語の終はりに。|inclusive|

w や b と異なり、空行では止まりません。

<S-Left> または
b

[count] word 後方に。|exclusive|

<C-Left> または
B

[count] WORD 後方に。|exclusive|

ge

[count] word 後方の單語の最後に。|inclusive|

gE

[count] WORD 後方の單語の最後に。|inclusive|

これらのコマンドは word もしくは WORD 單位で移動します。 word はアルファベット、數字、アンダースコア、もしくは他の非空白文字の連續で構成され、ホワイトスペース (スペース、タブ、<EOL>) で區切られます。これらは ’iskeyword’ オプションで變更することができます。空行も word とみなされます。 WORD は非空白文字の連續で構成され、ホワイトスペースで區切られます。空行もまた 1 つの WORD と見なされます。

折り疊まれた一聯の行は 1 文字からなる1單語と數へられます。"w" と "W", "e" と "E" は折り疊まれた行の範圍の後の最初の word や WORD の初め/終はりに移動します。"b" と "B" は折り疊みの前の最初の word や WORD の初めに移動します。

特殊なケース: カーソルが非空白文字の上にあれば "cw" と "cW" は "ce" と "cE" のやうに扱はれます。これは "cw" が單語を變更するコマンドだと解釋されるからで、單語には續くホワイトスペースは含まれてゐないからです。

もう 1 つの特殊なケース: オペレータコマンドと移動コマンド "w" を組み合はせたときカーソルがその上を移動した最後の單語が行末にあつた場合、その單語の終はりがオペレータの對象になるテキストの終はりになります。次の行の最初の單語ではありません。

オリジナルの Vi の "e" の實裝はかなりバギーでした。例へば、前の行が空行であつた場合 "e" コマンドを打つても行の最初の文字に止まつたままになりました。しかし"2e" と打つとこのことは起こりません。Vim では "ee" と "2e" は同じで、こちらの方が理にかなつてゐます。しかしながら、このことは Vi と Vim との閒に少し非互換性を生じさせてゐることになります。

5. オブジェクト單位で移動

(

[count] 文後方に。|exclusive|

)

[count] 文前方に。|exclusive|

{

[count] 段落後方に。|exclusive|

}

[count] 段落前方に。|exclusive|

]]

[count] セクション前方に、もしくは 1 桁目が ’{’ で始まる次の場所に。オペレータコマンドの後で使はれた場合は1桁目の ’}’ の下でも止まります。|exclusive|

Note:
しばしば |exclusive-linewise| になる。

][

[count] セクション前方に、もしくは 1 桁目が ’}’ で始まる次の場所に。|exclusive|

Note:
しばしば |exclusive-linewise| になる。

[[

[count] セクション後方に、もしくは 1 桁目が ’{’ で始まる前の場所に。|exclusive|

Note:
しばしば |exclusive-linewise| になる。

[]

[count] セクション後方に、もしくは 1 桁目が ’}’ で始まる前の場所に。|exclusive|

Note:
しばしば |exclusive-linewise| になる。

これらのコマンドは 3 種類のテキストのまとまりの單位で移動します。

文は ’.’, ’!’, ’?’ で終はり、その後に行末かスペースもしくはタブが續くものとして定義されます。任意の數の閉ぢ ’)’, ’]’, ’"’, ”’ 文字が ’.’, ’!’, ’?’ の後に、そして改行もしくはスペースかタブの前に現れてもよいです。段落とセクションの境界は文の境界でもあります。

もし ’J’ フラグが ’cpoptions’ にある場合は句讀點の後に少なくとも 2 つのスペースがある必要があります; <Tab> はホワイトスペースとして認識されません。文の定義を變更することはできません。

段落はそれぞれ空行の後から始まり、そしてまた段落マクロのセットからそれぞれ始まります。段落マクロは ’paragraphs’ オプションで指定されてゐる文字のペアです。デフォルトで "IPLPPPQPP TPHPLIPpLpItpplpipbp" で、".IP", ".LP", などのマクロに一致します (これらは nroff のマクロです。ですのでドットは 1 桁目になければなりません)。セクションの境界は段落の境界でもあります。空行 (ホワイトスペースのみを含む行) は、段落の境界ではないといふことに注意してください。

これは ’{’ か ’}’ を1桁目には含んでゐないといふことにも注意してください。’cpoptions’ にフラグ "{" が入つてゐると1桁目の "{" が段落の境界とみなされるやうになります。|posix|

セクションは 1 桁目の改ページ (form-feed) (<C-L>) の後から始まり、そしてセクションマクロのセットからそれぞれ始まります。セクションマクロは ’sections’ オプションで定義される文字のペアです。デフォルトは "SHNHH HUnhsh" で ".SH", ".NH", ".H", ".HU", ".nh", ".sh" といつた nroff マクロでセクションを開始するものを定義してゐます。

"]" と "[" コマンドは1桁目の ’{’ もしくは ’}’ でストップします。これは C のプログラムで函數の最初か最後を見つけるのに便利です。2 番目にタイプされたタイプの括弧が探されるといふことに留意しておいてください。

もし ’{’ か ’}’ が 1 桁目にはないけれど、とにかく "[[" と "]]" を使つて檢索したい場合は次のマッピングを使つてみてください:

:map [[ ?{<CR>w99[{
:map ][ /}<CR>b99]}
:map ]] j0[[%/{<CR>
:map [] k$][%?}<CR>

[これらはそのままタイプしてください。參照 |<>|]

6. オブジェクト單位で選擇

次のものはビジュアルモードかオペレータコマンドの後でのみ使ふことができる一聯のコマンドを示してゐます。"a" で始まるコマンドは "a" (1 つの) まとまりをホワイトスペースを含めて選擇します。"i" で始まるコマンドはまとまりの "inner" (內部) をホワイトスペースを含まずに選擇するか、もしくはホワイトスペースのみを選擇します。ですので、"inner" コマンドは常に "a" コマンドより少なくテキストを選擇することになります。

これらのコマンドはコンパイル時に |+textobjects| 機能を無效にしてゐた場合には使へません。

最後に使はれた檢索パターンによる操作をするには ‘gn‘ と ‘gN‘ を參照。

aw

"a word"、[count] word 選擇します (參照 |word|)。

單語の前後に續いてゐるホワイトスペースもともに含められますがカウントはされません。

行單位ビジュアルモードで使はれたときは、"aw" は文字單位ビジュアルモードに切り替へます。

iw

"inner word"、[count] word 選擇します (參照 |word|)。

word の閒のホワイトスペースもカウントされます。

行單位ビジュアルモードで使はれたときは、"iw" は文字單位ビジュアルモードに切り替へます。

aW

"a WORD"、[count] WORD 選擇します (參照 |WORD|)。

單語の前後に續いてゐるホワイトスペースも含められますがカウントはされません。

行單位ビジュアルモードで使はれたときは、"aW" は文字單位ビジュアルモードに切り替へます。

iW

"inner WORD"、[count] WORD 選擇します (參照 |WORD|)。

ホワイトスペースもカウントされます。

行單位ビジュアルモードで使はれたときは、"iW" は文字單位ビジュアルモードに切り替へます。

as

"a sentence"、[count] 文選擇します (參照 |sentence|)。

ビジュアルモードで使はれたときは、文字單位になります。

is

"inner sentence"、[count] 文の內部を選擇します (參照 |sentence|)。

ビジュアルモードで使はれたときは、文字單位になります。

ap

"a paragraph"、[count] 段落選擇します (參照 |paragraph|)。

例外: 空行 (空白だけからなる) も段落の境界になります。ビジュアルモードで使はれたときは、行單位になります。

ip

"inner paragraph"、[count] 段落の內部を選擇します(參照 |paragraph|)。

例外: 空行 (空白だけからなる) も段落の境界になります。ビジュアルモードで使はれたときは、行單位になります。

a] or a[

"a [] block"、[count] ’[’ ’]’ block を選擇します。このコマンドは後方に [count] 番目に現れる ’[’ を探し、それから對應する ’]’ を探します。そしてその 2 つに圍まれたテキストを ’[’ と ’]’ も含めて選擇します。

ビジュアルモードで使はれたときは、文字單位になります。

i] or i[

"inner [] block"、[count] ’[’ ’]’ block の內部を選擇します。このコマンドは後方に [count] 番目に現れる ’[’ を探し、それから對應する ’]’ を探します。そしてその 2 つに圍まれたテキストを ’[’ と ’]’ を除いて選擇します。

ビジュアルモードで使はれたときは、文字單位になります。

a) or a( or ab

"a block"、[count] block 選擇します。"[count] [(" からそれに對應する ’)’ までで、’(’ と ’)’ を含みます (參照 |[(|)。括弧の外側の空白は含みません。

ビジュアルモードで使はれたときは、文字單位になります。

i) or i( or ib

"inner block"、[count] block の內部を選擇します。"[count] [(" からそれに對應する ’)’ までで、’(’ と ’)’ を除きます(參照 |[(|)。

ビジュアルモードで使はれたときは、文字單位になります。

a> or a<

"a <> block"、[count] <> block 選擇します。[count] 番目に現れる ’<’ を檢索し、それに對應する ’>’ までを ’<’ と ’>’ を含めて選擇します。

ビジュアルモードで使はれたときは、文字單位になります。

i> or i<

"inner <> block"、[count] <> block の內部を選擇します。[count] 番目に現れる ’<’ を檢索し、それに對應する ’>’ までを ’<’ と ’>’ を除いて選擇します。

ビジュアルモードで使はれたときは、文字單位になります。

at

"a tag block"、[count] 個のタグブロックを選擇します。後方の [count] 番目の對應しない "<aaa>" からそれに對應する "</aaa>" までを含みます。詳しくは |tag-blocks| を參照してください。

ビジュアルモードで使はれたときは文字單位になります。

it

"inner tag block"、[count]個のタグブロックを選擇します。後方の [count] 番目の對應しない "<aaa>" からそれに對應する "</aaa>" までで、"<aaa>" と "</aaa>" を除きます。詳しくは |tag-blocks| を參照してください。

ビジュアルモードで使はれたときは文字單位になります。

a} or a{ or aB

"a Block"、[count] Block 選擇します。"[count] [{" からそれに對應する ’}’ までで ’{’ と ’}’ を含みます (參照 |[{|)。

ビジュアルモードで使はれたときは、文字單位になります。

i} or i{ or iB

"inner Block"、[count] Block 選擇します。"[count] [{" からそれに對應する ’}’ までで ’{’ と ’}’ を除きます(參照 |[{|)。

ビジュアルモードで使はれたときは、文字單位になります。

a" or a’ or a‘

"a quoted string"。前の引用符から次の引用符までを選擇します。オプション ’quoteescape’ を使つてエスケープされた引用符をスキップします。

1 行內でだけ動作します。

カーソルを引用符の上において實行されると、行の先頭から檢索し、どの引用符のペアが文字列をなすかを調べます。後に空白文字があると、それも含まれます。ない場合、前に空白文字があれば含まれます。

ビジュアルモードで使はれたときは文字單位になります。ビジュアルモードでこのオブジェクトが繰り返し使はれると、別の文字列を含むやうに選擇範圍を擴大します。現在のところ、カウントは使はれません。

i" or i’ or i‘

a", a’, a‘ と同樣ですが、引用符を含まづ、繰り返し使はれたとき選擇範圍を擴大しません。

特別な場合: カウントに2が指定された場合引用符が含まれます。ただし a"/a’/a‘ とは違ひ、前後の空白文字は含まれません。

オペレータコマンドの後に使はれた場合:

ブロック以外のオブジェクト:

"a" コマンド: オペレータコマンドはオブジェクトとオブジェクトの後に續くホワイトスペースに對して施されます。オブジェクトの後にホワイトスペースがないか、もしくはオブジェクトの前のホワイトスペースにカーソルが位置してゐる場合オブジェクトの前のホワイトスペースも含まれます。

"inner" コマンド: カーソルがオブジェクト上にあればオペレータコマンドはオブジェクトに對して施されます。カーソルがホワイトスペース上にあればホワイトスペースに對して施されます。

ブロックオブジェクト:

オペレータコマンドはカーソルがその內側に位置してゐるブロック、もしくは圍んでゐる括弧上にカーソルがあるブロックに對して施されます。"inner" コマンドは圍んでゐる括弧以外に對して施され、"a" コマンドの場合は括弧も含められます。

ビジュアルモードで使はれた場合:

ビジュアル範圍の初めと終はりが同一の場合(單に "v" と打つただけの場合):

オペレータコマンドを使ふ場合と同樣1つのオブジェクトが選擇されます。

ビジュアル範圍の初めと終はりが同一でない場合:

ブロック以外のオブジェクトの場合はビジュアル範圍を1オブジェクト分廣げるか、もしくは次のオブジェクトまでのホワイトスペースまで廣げます。"a" オブジェクトの場合はそれら兩方を含みます。廣げる方向はカーソルがビジュアル範圍のどちら側にあるかによります。つまりブロックオブジェクトの場合はブロックは1レベル外側に廣げられます。

實例として削除コマンドのリストを擧げます。小さいオブジェクトから大きいオブジェクトの順で竝べられてゐます。1 文字と行全體の削除については今までにも存在していた vi 移動コマンドが使はれてゐるといふことに注意してください。

"dl"1 文字削除 ("x" と同じです) |dl|
"diw"inner word を削除
"daw"a word を削除
"diW"inner WORD を削除 (|WORD| を參照)
"daW"a WORD を削除 (|WORD| を參照)
"dgn"次に檢索パターンにマッチするものを削除
"dd"1 行削除 |dd|
"dis"inner sentence を削除
"das"a sentence を削除
"dib"inner ’(’ ’)’ block を削除
"dab"a ’(’ ’)’ block を削除
"dip"inner paragraph を削除
"dap"a paragraph を削除
"diB"inner ’{’ ’}’ Block を削除
"daB"a ’{’ ’}’ Block を削除

移動コマンドを使ふ場合とオブジェクトを使ふ場合の違ひに留意しておいてください。移動コマンドの場合はカーソルの位置から移動後の位置までに處理を施します。オブジェクトを使つた場合はカーソルがオブジェクトの中のどこに位置してゐてもオペレータはオブジェクト全體に施されます。例として "dw" と "daw" を比べてみませう: "dw" はカーソルの位置から次の word の初めまでを削除し、"daw" はカーソルの位置の單語と前後のスペースを削除します。

タグブロック

テキストオブジェクト "it" と "at" では HTML や XML の對應するタグの閒のブロックを選擇しようとします。しかしこれらは完全な互換ではないため、いくつかの制限があります。

通常の方法は <tag> から對應する </tag> までを選擇します。"at" はそのタグ自身を含み、"it" はタグ自身を除きます。しかし "it" が繰り返し使はれるとタグ自身が含まれます(さうでないと何も變はらない)。また、中身が何もないタグブロックの上で "it" を使ふと開始タグが選擇されます。

"<aaa/>" はスキップされます。本來 XML では大文字・小文字の違ひは區別されますが、Vim はその違ひを無視します。

HTML では <br> や <meta ...> のやうに對應する終了タグを持たないタグもありえます。これらは無視されます。

このテキストオブジェクトはミスも許容します。對應する開始タグがない終了タグは無視されます。

7. マーク

マークへジャンプするには2つの方法があります:

  1. ‘ (バッククォート) で : カーソルは指定された位置に置かれます。|exclusive|
  2. ’ (シングルクォート)で: カーソルは指定された位置の行の最初の非空白文字に置かれ移動は行單位です。
m{a-zA-Z}

カーソル位置を {a-zA-Z} にマークします(これは移動コマンドではありません。ですのでカーソルは動きません)。

m’ or m‘

直前位置マークをセットします。"”" もしくは "“" コマンドでこの位置に移動できます。(移動コマンドではありません。ですのでカーソルは動きません)。

m[ or m]

マーク |'[| or |']| をセットします。オペレータコマンドが複數のコマンドでシミュレートされるときに便利です。(移動コマンドではありません。ですのでカーソルは動きません)。

m< or m>

マーク |'<| or |'>| をセットします。‘gv‘ コマンドで選擇される範圍を變更するのに便利です。(移動コマンドではありません。ですのでカーソルは動きません)。

Note:
ビジュアルモードは設定できません。開始と終了の位置のみ設定できます。

:[range]ma[rk] {a-zA-Z’}

[range] の範圍の最後の行番號の 0 桁目を {a-zA-Z} にマークします。デフォルトはカーソル行です。

:[range]k{a-zA-Z’}

:mark コマンドと同じですが、マーク名の前のスペースは插入しなくてもよいです。

’{a-z} ‘{a-z}

カレントバッファのマーク {a-z} へジャンプ。

’{A-Z0-9} ‘{A-Z0-9}

マーク {A-Z0-9} を含むファイル・位置へジャンプ。(別のファイルにある場合は移動コマンドにはなりません)。

g’{mark} g‘{mark}

{mark} へジャンプするが、カレントバッファ內で移動する場合にはジャンプリストを變更しない。例:

g`"

これはファイル內の最後の記憶してゐる位置にジャンプする。$VIMRUNTIME/vimrc_example.vim を參照。|:keepjumps| も參照。

:marks

現在のマークを全てリストします(移動コマンドではありません)。|'(|, |')|, |'{| と |'}| マークはリストされません。1 桁目は桁番號 0 となります。

:marks {arg}

{arg} で指定されるマークをリストします(移動コマンドではありません)。例:

:marks aB

マーク ’a’ と ’B’ をリストします。

:delm[arks] {marks}

指定されたマークを削除します。削除できるマークは A-Z と 0-9 などです。マーク ’ は削除できません。それらはダッシュで區切られたマーク名のリストを與へることで指定できます。スペースは無視されます。例:

:delmarks aマーク a を削除する
:delmarks a b 1マーク a, b, 1 を削除する
:delmarks Aaマーク A, a を削除する
:delmarks p-zp から z までのマークを削除する
:delmarks ^.[]マーク ^ . [ ] を削除する
:delmarks \"マーク " を削除する
:delm[arks]!

A-Z, 0-9 を除くカレントバッファのすべてのマークを削除します。

マークはどのやうにしても見えません。マークは單に覺えておかれるファイル中の位置に過ぎません。マークと名前付きレジスタを混同しないやうにしてください、まつたく別のものです。

’a - ’z小文字のマークです。1 つのファイル中で有效です。
’A - ’Z大文字のマークで、ファイルマークとも呼ばれます。ファイル閒でも有效です。
’0 - ’9番號マークです。.viminfo ファイルによつてセットされます。

小文字のマーク ’a から ’z まではマークのあるファイルがバッファリストに存在する限り覺えておかれます。もしファイルをバッファリストから削除するとそのファイルに關するマーク一は全て失はれます。またマークを含んでゐる行を削除するとそのマークは消されます。

小文字のマークはオペレータコマンドとともに使ふことができます。例: "d’t" は現在のカーソル位置からマーク ’t’ までの行を削除します。Hint: マーク ’t’ を Top 位置に設定したり、’b’ を Bottom 位置に設定したりします。小文字のマークはアンドゥとリドゥによつて復元することができます。

大文字のマーク ’A から ’Z はファイル名を含んでゐます。ファイルからファイルに移動するのに使ふことができます。大文字のマークをオペレータコマンドとともに使ふにはマークは現在のファイルになければなりません。また大文字のマークの場合は行を插入/削除したり一時的に他のファイルを編輯したりしてもマークのある行番號は覺えておかれます。'viminfo’ オプションの値が空でなければ大文字のマークは .viminfo ファイルに保持されます。|viminfo-file-marks| を參照。

番號マーク ’0 から ’9 まではこれらとはまつたく異なります。直接セットすることはできず、viminfo ファイル |viminfo-file| を使つてゐる場合にのみ存在します。基本的に ’0 は最後に Vim を終了したときのカーソル位置であり、’1 は最後から 1 個前の位置、などなどです。特定のファイルを番號マークに保存しないやうにするには ’viminfo’ の "r" フラグを使つてください。|viminfo-file-marks| を參照。

’[ or ‘[

直前に變更またはヤンクされたテキストの最初の文字へ移動します。

’] or ‘]

直前に變更またはヤンクされたテキストの最後の文字へ移動します。

なんらかのオペレータコマンドを實行した後は、カーソルはオペレータを施したテキストの初めに置かれます。プットコマンド ("p" もしくは "P") の後は、カーソルは插入された最初の行に位置する場合と最後に插入された文字に位置する場合があります。上の 4 つのコマンドはカーソルをどちらかの端に位置させます。

例: 10 行ヤンクした後、その行の內の最後の行に移動したい場合は: "10Y’]"。數行を "p" コマンドで插入した後、1 番下に插入された行に移動したい場合は: "p’]"。これはすでに插入濟みのテキストに關しても動作させることができます。

Note:
矩形ビジュアルモードを使つてゐるのでない限り、テキストの削除の後は始めと終はりの位置は同じです。これらのコマンドは、現在のファイルに對してまだ變更がされてゐない場合は動作しません。

’< or ‘<

現在のバッファで最後に選擇されたビジュアルエリアの最初の行 (’<) または最初の文字 (‘<) に移動します。ブロックモードでは最初の行の最後の文字になる場合もあります (選擇の開始位置による)。

’> or ‘>

現在のバッファで最後に選擇されたビジュアルエリアの最後の行 (’<) または最後の文字 (‘<) に移動します。ブロックモードでは最後の行の最初の文字になる場合もあります(選擇の ’selection’ が適用され、位置はビジュアルエリアの直後に開始位置による)。

” or “

カーソルがジャンプする直前にゐた、もしくは最後の "m’" か "m‘" コマンドが行はれた位置に移動します。|:keepjumps| コマンドモディファイヤが使はれた場合にはセットされません。|restore-position| も參照。

’" or ‘"

現在のバッファを最後に終了した時のカーソル位置に移動します。デフォルトで最初の行の最初の文字に移動します。それぞれの開いたファイルでこれをどのやうにして使ふかについては |last-position-jump| をご覽下さい。

ウィンドウごとに 1 つではなく、バッファに對して 1 つの位置が記憶されます。バッファがあるウィンドウに表示されてゐる閒はその位置は變はりません。

’^ or ‘^

最後に插入モードが終了したときのカーソル位置に移動します。これは |gi| コマンドで使はれます。|:keepjumps| コマンドモディファイヤが使はれたときはセットされません。

’. or ‘.

最後に變更された場所に移動します。變更が始まつた場所かその近くです。1 つのコマンドが複數の變更をすることもあります。その場合は、變更の最後の近くになります。例へば、單語を入力をしたときは、最後の文字の上になります。さらに古い變更へジャンプするには |g;| が使へます。

’( or ‘(

|(| コマンドのやうに、現在の文の最初に移動します。

’) or ‘)

|)| コマンドのやうに、現在の文の最後に移動します。

’{ or ‘{

|{| コマンドのやうに、現在の段落の最初に移動します。

’} or ‘}

|}| コマンドのやうに、現在の段落の最後に移動します。

これらのコマンドは、それ自身はマークではなく、マークへジャンプします:

]’

カーソルがある行から [count] 個先の小文字のマークがある行の最初の非空白文字へ移動します。

]‘

カーソル位置以降の [count] 個先の小文字のマークへ移動します。

{Vi にはありません}

[’

カーソルがある行から [count] 個前の小文字のマークがある行の最初の非空白文字へ移動します。

[‘

カーソル位置より [count] 個前の小文字のマークへ移動します。

:loc[kmarks] {command}

マークを調整することなく {command} を實行します。{譯注: 普通にコマンドを實行したときはマーク位置が調整される} これは、完了したときの行數が實行前と變はらないやうな變更をするときに便利です。

警告:
行數が變はつた場合には、變更箇所以降のマークは以前の行番號を持ち續けるので、別の行に移動することになります。

以下のものが行の削除・插入後に調整されません:

以下のものは調整されます:

:kee[pmarks] {command}

現在のところ、フィルターコマンド |:range!| にだけ效果があります:

どちらの場合にも、フィルタされたテキスト以降のマークは通常通りテキストに一致するやう調整されます。’cpoptions’ オプション中に ’R’ フラグがない場合、これは ":keepmarks" を使ふのと同じ效果があります。

:keepj[umps] {command}

{command} の實行中の移動でマーク |''|, |'.|, |'^| と |jumplist| や |changelist| を變更しないやうにします。

自動的に變更やテキストの插入を行ひ、ユーザーがその位置に行きたくないといふ場合に便利です。例:タイムスタンプ "Last change" を更新するとき:

:let lnum = line(".")
:keepjumps normal gg
:call SetLastChange()
:keepjumps exe "normal " . lnum . "G"

Note:
":keepjumps" はコマンドごとに使はねばなりません。函數を呼び出すとその函數の中のコマンドはジャンプリストを變へてしまひます。また、":keepjumps exe ’command ’" とすると、この "command" はジャンプリストを變へてしまひます。さうでなくて ":exe ’keepjumps command’" としてください。

8. ジャンプ

「ジャンプ」はたいていカーソルを數行移動するコマンドです。もしもカーソルを「ジャンプ」させるなら、ジャンプする前のカーソルの位置は覺えておかれます。その位置を含む行を削除したり變更したりしてゐなければ、"”" と "“" コマンドを使つてその位置に戾ることができます。次のコマンドは「ジャンプ」コマンドです: "’", "‘", "G", "/", "?","n", "N", "%", "(", ")", "[[", "]]", "{","}", ":s", ":tag", "L", "M", "H" そして新しいファイルの編輯を始めるコマンドです。これらのコマンドのうちのどれかを使つてカーソルを「ジャンプ」させた場合、ジャンプする前のカーソルの位置は覺えておかれます。その位置を含む行を削除したり變更したりしてゐなければ、"”" と "“" コマンドを使つてその位置に戾ることができます。

CTRL-O

ジャンプリストの中の [count] だけ古いカーソル位置に移動します (移動コマンドではありません)。

{|+jumplist| 機能なしのときは使用できない}

<Tab> または
CTRL-I

ジャンプリストの中の [count] だけ新しいカーソル位置に移動します (移動コマンドではありません)。

{|+jumplist| 機能なしのときは使用できない}

:ju[mps]

ジャンプリストを表示させます(移動コマンドではありません)。

{|+jumplist| 機能なしのときは使用できない}

:cle[arjumps]

現在のウィンドウのジャンプリストを空にします。

{|+jumplist| 機能なしのときは使用できない}

ジャンプはジャンプリストに覺えておかれ、CTRL-OCTRL-I コマンドで前の古い位置に移動し、そして再び新しい位置に戾ることができます。このやうにしてジャンプリストの中を上下に移動することができます。ジャンプリストはそれぞれのウィンドウで分かれてをり、エントリの最大の數は 50 に固定されてゐます。

{|+jumplist| 機能なしのときは使用できない}

例へば、3 回ジャンプを行つた後ではジャンプリストは次のやうになつてゐます:

 jump line  col file/text
   3     1    0 some text
   2    70    0 another line
   1  1154   23 end.
>

"file/text" 欄はファイル名か現在のファイルであればジャンプするテキストを表示してゐます (インデントは取り除かれ、そして長い行はウィンドウに合ふやうに短くカットされます)。

現在 1167 行目にゐるとして、CTRL-O コマンドを使ふとカーソルは 1154 行目に移動します。結果として次のやうになります:

 jump line  col file/text
   2     1    0 some text
   1    70    0 another line
>  0  1154   23 end.
   1  1167    0 foo bar

ポインターは最後に使はれたジャンプ位置にセットされます。次の CTRL-O コマンドはエントリの上に、次の CTRL-I コマンドはエントリの下に移動するのに使ひます。ポインターが最後のエントリの下に位置してゐる場合、このことは前に CTRL-I もしくは CTRL-O を使つてゐないことを意味します。この場合 CTRL-O コマンドを使ふとカーソル位置がジャンプリストにくはへられます。さうしてその CTRL-O コマンドを使ふ前の位置に戾ることもできます。この場合は 1167 行目です。

さらに CTRL-O コマンドを實行することで 70 行目と 1 行目に移動し、CTRL-I コマンドを使ふことで再び 1154 行目と 1167 行目に戾ることができます。"jump" 欄の數はこの場所に移動するのに何囘の CTRL-O もしくは CTRL-I コマンドが必要なのかを示してゐることも覺えておいてください。

ジャンプコマンドを使ふと現在の行がジャンプリストの最後に加へられます。同じ行がすでにジャンプリストにあつた場合はそれは削除され、結果としては CTRL-O を繰り返してゐると以前の場所には一度だけ戾ることになります。

|:keepjumps| コマンド修飾子が使はれた場合、ジャンプ操作はリストに記憶されません。また、他の場合にもジャンプ操作は記憶されません。例. |:global| の中。明示的にジャンプリストに追加するには "m’" でマーク ’ を設定します。

Note:
setpos() を呼んでもこれはしません。

CTRL-O コマンドを行つて 1154 行目に移動した後、他のジャンプコマンド (例へば: "G") を實行したとするとジャンプリストは次のやうになります:

 jump line  col file/text
   4     1    0 some text
   3    70    0 another line
   2  1167    0 foo bar
   1  1154   23 end.
>

行が削除されたり插入された場合は行番號も調整されますが、保存しないで (":n!" コマンドなどを使つて) 編輯を中斷した場合は失敗します。

ウィンドウを分割すると、ジャンプリストは新しいウィンドウにコピーされます。

viminfo’ オプションに項目 ’ を含めてゐると、viminfo ファイルにジャンプリストが保存され、Vim を起動したときに復元されます。

變更リストへのジャンプ

變更がなされたとき、カーソル位置が記憶されます。アンドゥできる全ての變更に對し、それが前の變更に近くない限り、1 つの位置が記憶されます。變更點やアンドゥされた位置へジャンプするのに、以下の 2 つのコマンドを使ふことができます。

g;

變更リスト中の [count] 個前の位置に移動します。[count] が前の變更箇所の數より大きければ、最も古い變更箇所へ移動します。それ以上古い變更が無ければエラーメッセージが表示されます。(移動コマンドではありません)

{|+jumplist| 機能なしのときは使用できない}

g,

變更リスト中の [count] 個後の位置に移動します。|g;| の逆方向で、あとは同樣です。(移動コマンドではありません)

{|+jumplist| 機能なしのときは使用できない}

count を使ふと、可能な限り前/後にジャンプできます。つまり、"999g;" とすると履歷に殘つてゐる最初の變更箇所へジャンプできます。變更リストのエントリの數は固定されてゐて、|jumplist| のものと同じです。

アンドゥ可能な變更が 2 回、同じ行の ’textwidth’ よりも小さい桁で行はれたときは、後者だけが記憶されます。これは "xxxxx" のやうな一聯の小さな變更をリストに殘すのを避けるためです。’textwidth’ が 0 のときは ’wrapmargin’ が使はれます。

wrapmargin’ もセットされてゐないときは 79 となります。詳細: 速度が落ちるのを避けるため、計算には文字數でなくバイト數が使はれます (これはマルチバイトエンコーディングに對してのみ關係します)。

Note:
テキストが插入または削除されると、カーソル位置が變更箇所と少しずれるかもしれません。(特に行が削除されたときは)

|:keepjumps| コマンドモディファイヤが使はれたときは變更箇所は記憶されません。

:changes

變更リストを表示します。文字 ">" のついてゐるエントリは現在の位置であることを示してゐます。變更が行はれると ">" は最新のエントリの下になり、‘g;‘ で最新のエントリの場所に移動できることを表します。1 列目はその場所に移動するのに必要な count を示してゐます。例:

change line  col text
   3      9    8 bla bla bla
   2     11   57 foo is a bar
   1     14   54 the latest changed line
>

‘3g;‘ とすると 9 行目に移動します。すると次の ‘:changes‘ の出力はかうなります:

change line  col text
>   0     9    8 bla bla bla
    1    11   57 foo is a bar
    2    14   54 the latest changed line

この狀態で "g," とすると 11 行目に移動し、"2g," とすると 14 行目に移動します。

9. 樣々な移動

%

現在の行のカーソルの後もしくは下の次のアイテムを檢索しその對應するものにジャンプします |inclusive|。アイテムは次のものです:

([{}])

丸括弧もしくは(波/角)括弧 (これは ’matchpairs’ オプションで變更できます)

/* */

C スタイルのコメントの始めと終はり

#if, #ifdef, #else, #elif, #endif

C プリプロセッサー條件命令 (カーソルが # の上にあるか ([{ が後にないとき)

他のアイテムに對しては matchit プラグインが使へます。|matchit-install| を參照。このプラグインを使ふと、コメント內の對應する括弧をスキップするといふ效果もあります。

cpoptions’ が "M" |cpo-M| を含んでゐる場合、丸括弧と大括弧の前のバックスラッシュは考慮されません。"M" がない場合はバックスラッシュの數が考慮され、偶數個と奇數個は對應しないやうになります。つまり、" ( \) )" や "\( ( \)" となつてゐるとき、それぞれ最初と最後の括弧が對應します。

%’ 文字 |cpo-%| が ’cpoptions’ にない場合、1 つの行の中の丸括弧/大括弧の數が偶數ではなく、そして現在行と 1 つ前の行がバックスラッシュで終はつてゐない限り、二重引用符の中の丸括弧と大括弧は無視されます。’(’, ’{’, ’[’, ’]’, ’}’, ’)’ も無視されます (シングル引用符の中の丸括弧と大括弧)。このことは C ではうまく動作しますが Perl ではあんまりうまくないことに注意してください。Perl では文字列にシングル引用符も使はれるのです。

コメント內にある括弧もさうでない括弧も同樣に扱はれます。matchit プラグイン |matchit-install| を使ふか、コメント內の括弧に對しては前後に引用符を書くことで、コメント內の括弧を認識して區別できます。

カウントの前置はできません({count}% はファイルの {count} パーセントの位置に移動します)。’%’ を #if/#else/#endif 上で使ふと動作は行單位になります。

[(

[count] 前のマッチするものがない ’(’ に移動します。|exclusive|

[{

[count] 前のマッチするものがない ’{’ に移動します。|exclusive|

])

[count] 次のマッチするものがない ’)’ に移動します。|exclusive|

]}

[count] 次のマッチするものがない ’}’ に移動します。|exclusive|

上の 4 つのコマンドは現在のコードブロックの最初か最後に移動するのに使ふことができます。’(’, ’)’, ’{’, ’}’ 上で "%" コマンドを實行するのに似てゐますが、この場合コードブロック內のどこにゐても實行することができます。C プログラムで非常に役に立ちます。例: "case x:" にゐる時に "[{" を實行することで switch 文の所に戾ります。

]m

[count] 次のメソッドの始めに移動します (Java もしくは似たやうな構造の言語用)。メソッドの始まりの前でなければ、クラスの始めか終はりに移動します。カーソルの後に ’{’ が見つからなければエラーとなります。|exclusive|

]M

[count] 次のメソッドの終はりに移動します (Java もしくは似たやうな構造の言語用)。メソッドの終はりの前でなければ、クラスの始めか終はりに移動します。カーソルの後に ’}’ が見つからなけばエラーとなります。|exclusive|

[m

[count] 前のメソッドの始めに移動します (Java もしくは似たやうな構造の言語用)。メソッドの始まりの後でなければ、クラスの始めか終はりに移動します。カーソルの前に ’{’ が見つからなければエラーとなります。|exclusive|

[M

[count] 前のメソッドの終はりに移動します (Java もしくは似たやうな構造の言語用)。メソッドの終はりの後でなければ、クラスの始めか終はりに移動します。カーソルの前に ’}’ が見つからなければエラーとなります。|exclusive|

上記の 2 つのコマンドはファイルがメソッドとともにクラスを含んでゐることを前提としてゐます。クラスの定義は ’{’ と ’}’ で圍まれてゐることです。クラスの中のそれぞれのメソッドもまた ’{’ と ’}’ で圍まれてゐます。このことは Java 言語にも當てはまります。ファイルは次のやうなものです:

// comment
class foo {
    int method_one() {
        body_one();
    }
    int method_two() {
        body_two();
    }
}

"body_two()" にカーソルをおいて始めてみませう。"[m" とすると "method_two()" の始めの ’{’ に移動します (當然 method が長いともつと便利です)。"2[m" とすると "method_one()" の始めに移動します。"3[m" とするとクラスの最初に移動します。

[#

[count] 前のマッチするものがない "#if" か "#else" に移動します。|exclusive|

]#

[count] 次のマッチするものがない "#else" か "#endif" に移動します。|exclusive|

これらの 2 つのコマンドは #if/#else/#endif を含む C のプログラムで使ひます。これを使ふと #if/#else/#endif の最初か最後に移動することができます (その場合現在の行も含みます)。それから "%" を使ふことでマッチする行に移動することができます。

[* または
[/

[count] 前の C コメントの始まり "/*" に移動します。|exclusive|

]* または
]/

[count] 次の C コメントの終はり "*/" に移動します。|exclusive|

H

スクリーンの最上行から [count] 行目 (デフォルト: スクリーンの最上行) の最初の非空白文字に移動します (行單位 |linewise|)。’startofline’ オプションも參照してください。テキストがスクロールするやうなオペレータ待機モードでない限り、カーソル位置は ’scrolloff’ オプションに合ふやうに調整されます。例へば、"yH" は畫面上に見えてゐる先頭の行からカーソル行までを (含めて) ヤンクします。

M

スクリーンの中央の最初の非空白文字に移動します (行單位 |linewise|)。’startofline’ オプションも參照してください。

L

スクリーンの最下行から [count] 行目 (デフォルト: スクリーンの最下行) の最初の非空白文字に移動します (行單位 |linewise|)。’startofline’ オプションも參照してください。テキストがスクロールするやうなオペレータ待機モードでない限り、カーソル位置は ’scrolloff’ オプションに合ふやうに調整されます。例へば、"yL" はカーソル行から畫面上に見えてゐる最後の行までを (含めて) ヤンクします。

<LeftMouse>

スクリーン上でマウスがクリックされた場所に移動します |exclusive|。參照 |<LeftMouse>|。もしその位置がステータス行の中であると、そのウィンドウがアクティブなウィンドウとなりカーソルは動きません。


Up: 目次   [Index]