Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

Vim のモーションについて

$
0
0

左右の移動 left-right-motions

この節で説明するコマンドはどれも、カーソルをカレント行の指定の位置に移動させます。これらのコマンドは行の先頭と末尾でストップします。例外は $で、カウントを指定した場合は下の行へ移動します。設定'whichwrap' をオンにすると、これらのコマンドが行をまたいで移動するようになります。
※{count}指定がなければデフォルトでは1が指定される

{conut} h{count}文字分、左に移動します。{count}指定がなければ1文字移動
{conut} l{count}文字分、右に移動します。{count}指定がなければ1文字移動
0その行の最初の文字に移動します
^その行の最初の非空白文字に移動します
$その行の最後に移動します。カウントが指定された場合は、{count - 1}行下にも移動します。ビジュアルモードではカーソルは行の最後の文字の後へ移動します。設定'virtualedit' がオンのときには、$によってカーソルが行末の先から行の最後の文字へバックするかもしれません。
{count} 現在の行の {count} スクリーン桁位置に移動します
{count} f{char}右に向かって {count} 番目に現れる {char} に移動し、カーソルがその {char} 上に置かれます
{count} F{char}左に向かって {count} 番目に現れる {char} に移動し、カーソルがその {char} 上に置かれます
{count} t{char}右に向かって {count} 番目に現れる {char} まで移動します。カーソルは {char} の左側の文字に置かれます
{count} T{char}左に向かって {count} 番目に現れる {char} まで移動します。カーソルは {char} の右側の文字に置かれます
{count} ;{count} 回最後の f, t, F, T を繰り返します
{count} ,{count} 回最後の f, t, F, T を反対方向に繰り返します

上下の移動 up-down-motions

{conut} k{count}行上に移動
{conut} j{count}行下に移動
{count} gk{count} 表示行上に移動。行が折り返されている場合とオペレータコマンドとともに使われた場合は kと違う動作になります(行単位ですから)
{count} gj{count} 表示行下に移動。行が折り返されている場合とオペレータコマンドとともに使われた場合は jと違う動作になります(行単位ですから)
{count} -行上の最初の非空白文字に移動します(行単位)
{count} +行下の最初の非空白文字に移動します(行単位)
{count} _{count} -1 行下の最初の非空白文字に移動します(行単位)
{count} G{count} 行目の最初の非空白文字に移動します(行単位)。カウントの前置がなければ最後の行に移動します。設定'startofline' がセットされていなければ同じ桁位置に移動します。Gはジャンプモーションです
{count} gg{count} 行目の最初の非空白文字に移動します(行単位)。カウントの前置がなければ最初の行に移動します。設定'startofline' がセットされていなければ同じ桁位置に移動します。
{count}%※{count}必須。ファイルの {count} パーセントの位置の最初の非空白文字に移動します

単語単位の移動 word-motions

これらのコマンドは word もしくは WORD 単位で移動します。

word

word はアルファベット、数字、アンダースコア、もしくは他の非空白文字の連続で構成され、ホワイトスペース(スペース、タブ、)で区切られます。これらは設定'iskeyword' オプションで変更することができます。空行も word とみなされます。

WORD

WORD は非空白文字の連続で構成され、ホワイトスペースで区切られます。空行もまた1つの word と WORD と見なされます。折り畳まれた一連の行は1文字からなる1単語と数えられます。wW, eEは折り畳まれた行の範囲の後の最初の word や WORD の初め/終わりに移動します。bBは折り畳みの前の最初の word や WORD の初めに移動します。

特殊なケース: カーソルが非空白文字の上にあれば cwcWcecEのように扱われます。これは cwが単語を変更するコマンドだと解釈されるからで、単語には続くホワイトスペースは含まれていないからです。

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

{count} w{count} word 前方に。
{count} W{count} WORD 前方に。
{count} e{count} word 前方の単語の終わりに。wbと異なり、空行では止まりません。
{count} E{count} WORD 前方の単語の終わりに。wbと異なり、空行では止まりません。
{count} b{count} word 後方に。
{count} B{count} WORD 後方に。
{count} ge{count} word 後方の単語の最後に。
{count} gE{count} WORD 後方の単語の最後に。

オブジェクト単位で移動 object-motions

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

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

sentence

文は ., !, ?で終わり、その後に行末かスペースもしくはタブが続くものとし
て定義されます。任意の数の閉じ ), ], ", '文字が ., !, ?の後
に、そして改行もしくはスペースかタブの前に現れてもよいです。段落とセクションの
境界は文の境界でもあります。
もし 'J' フラグが 'cpoptions' にある場合は句読点の後に少なくとも二つのスペース
がある必要があります; はホワイトスペースとして認識されません。
文の定義を変更することはできません。

参考文献

http://vim-jp.org/vimdoc-ja/motion.html


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>