Section Next | Prev


1.5 カーソル移動

1.5.1 カーソルの移動
カーソルの移動はコマンドモードで行い、主に以下ようになります。
コマンド解説
k, <↑>, マイナス(-) 1行上(ファイルの先頭方向へ)
j, <↓> 1行下(ファイルの末尾方向へ)
l, <→>, スペース 1文字右
h, <←>, <BackSpace>, ^H 1文字左
0(ゼロ) 行の先頭
$行末
<Enter>, <Ret>, <+> 次行の非空白文字
n|(縦棒)今いる行の n 文字目に移動します。
以下の図では、中央のXにあるオレンジの箱を現在カーソルがある位置として、 各カーソル移動コマンドを入力した直後に移動する先を示しています。
	
1.5.2 画面上でのカ−ソル移動
他に画面上でカーソルを動かすコマンドには次のものがあります。
コマンド解説
カーソルの直接移動
H 画面上の最初の行にカーソルを移す。(Home)
たとえば 3H は画面上の上から3行目にカーソルを移す。
M 画面上の中央行にカーソルを移す。(Middle)
L 画面上の最終行にカーソルを移す。
たとえば 3L は画面上の下から3行目にカーソルを移す。
nG ファイル上の行番号n番目へ移動。
先頭であれば 1G 。nを省略すると末尾へ移動
:n <Enter> ファイル上の行番号n番目へ移動。
先頭であれば :1 。末尾は $ で代用可能
スクロール移動(画面が移動)
^E画面を1行巻き上げる
^D画面を1/2画面分巻き上げる(Down)
^F画面を1画面分巻き上げる(Forward)
^Y画面を1行巻き下げる
^U画面を1/2画面分巻き下げる(Up)
^B画面を1画面分巻き下げる(Backward)
下の図では黒い四角が現在のカーソル位置を表しています。H, M, L の各コマンド によって、カーソル位置はそれぞれ1行目、10行目、18行目の先頭へ移動します。
(注:一番左の数字は行番号を表しておりデータではありません。)
	
1.5.3 行中でのカーソル移動
vi では、文字数や行といった直接的な位置の移動だけでなく、単語や段落といった論理的な単位での移動ができます。 以下はカーソルを単語単位で移動させるコマンドです。
コマンド解説
w 現在位置の右にある単語の先頭にカーソルを移す。
b 現在位置の左にある単語の先頭にカーソルを移す。
e 現在位置の右にある英字または特殊文字が連続する最後の文字にカーソルを移す。
W 現在位置の右側にある空白で区切られた単語の先頭にカーソルを移す。
B 現在位置の左側にある空白で区切られた単語の先頭にカーソルを移す。
E 空白で区切られた単語の終りにカーソルを移す。
ここで, w,b,e と W,B,E の単語の定義の違いについてまとめます。
小文字コマンド w,b,e の単語とは英数字の連続または、非英数字の連続をさし、 大文字コマンド W,B,E の空白で区切られた単語とは一つ以上の空白で区切られた 文字列をさします。

下図は文字列「 ab(!),cd[@] ef{$}, gh. 」がある時に先のコマンドで、 どのようにカーソルが移動するかを表したものです。
0(ゼロ) は始めにカーソルがあった位置で、コマンドによりカーソルが移動する 場所を順に数値で示しています。
たとえば w(小文字)コマンドの例では、最初カーソルが a の場所にあり、w を入力 する度に ( 、 c 、 [ ... と移動している様子をまとめています。

	
1.5.4 その他のカーソル移動
vi で特徴的なカーソル移動として、段落、章といった論理的な固まりを扱うカーソル 移動があります。
	
文(sentence)
文とはピリオド(.), 感嘆符(!), 疑問符(?) の後に1つ以上の空白か、 改行で終わる文字列をいいます。
なお文に関する仕様は実装によって細かく異なります。

段落(Paragraph)
段落は空行で囲まれた文の集合をいいます。
nroff を利用している場合はヘッダマクロ(.SH, .PH) により段落を判定します。

カッコ(show match)
対応するカッコへ相互にカーソルを移動するコマンドはパーセント(%) です。
認識する括弧は大括弧[], 中括弧{}, 小括弧() の3種類になります。

章(関数, Section)
章は C プログラム等の一番外側にある大括弧の単位で移動します。
nroff の章マクロ(.SH)単位でも移動します。

その他カーソル移動に関するコマンドは以下のとおりです。

コマンド解説
( と ) 文単位の移動。開く小括弧 ( で先頭方向へ、閉じる小括弧 ) で末尾方向へ1文づつ移動します。
{ と }段落単位の移動。中括弧 {, } で移動します。
[[ と ]]章単位の移動。大括弧2つ [[, ]] で移動
%対応する括弧への移動。押すたびに開く括弧と、閉じる括弧交互に移動します
''(シングルクオート2回)直前に作業していた行へ移動。
Mx と '(シングル)x名前 x (a-z,A-Z)について、Mはその行の先頭を記憶し、 '(シングル)は、その名前をつけた行頭へ移動。
^G現在の状況を表示
ファイル名 [変更有無] 全行数 カーソル位置の全体に占める割合 行,カラム

Section Next | Prev

Copyright ycosSystems 2007, vi/Body15.html