■ カーソル移動
カーソルとは上図13行目の「ViVi」の直前にある赤い縦棒のことで、文字挿入・削除などを行うときに処理対象となる位置を表すものです。 したがって、効率のよい文書編集を行うためには、カーソルをいかに効率よく目的とする位置に移動することができるかが大変重要となります。
この節では ViVi の様々なカーソル移動方法について説明します。
■ 基本
もっとも基本的なカーソル移動方法には以下の2つがあります。
やりたいこと | 操作方法 |
---|---|
カーソルを上下左右にひとつずつ移動したい | [↑] [↓] [←] [→] カーソルキーを押します |
画面上に表示されている位置にカーソルを移動したい | マウス左ボタンでその部分をクリックします |
カーソルキーによる移動は基本中の基本で、とてもわかりやすい方法です。
短所は移動単位は1文字または1行なので、現在カーソル位置から遠く離れた場所に移動するのに手間がかかるという点です。
また、カーソルキーを押しっぱなしにするとリピート状態になりカーソルが移動し続けますが、目的とする場所でぴったり止めるのは至難の業です。
マウスクリックによるカーソル移動は移動先が画面に見えている場合は素早く行うことができます。 ■ もっと大きな単位で移動
[↑] [↓] [←] [→] カーソルキーは1文字・行単位のカーソル移動ですが、もっと大きな単位で移動するための様々なコマンドがあります。
短所は移動先が画面に見えていない場合にはスクロールを行う必要があるという点です。
また、右手をキーボードからマウスに持ち替える、キーボードに戻るには時間がかかります。
テキストエディタのエキスパートは、ほとんどマウスを使用せず、キーボードだけで文書編集を行うものです。
やりたいこと | 操作方法 |
---|---|
単語単位で文書先頭方向にカーソル移動したい | [Ctrl] + [←] を押します |
単語単位で文書末尾方向にカーソル移動したい | [Ctrl] + [→] を押します |
行頭または行頭の非空白文字位置にカーソル移動したい | [Home] を押します |
行末にカーソル移動したい | [End] を押します |
対応する半角括弧の位置にカーソル移動したい | [Ctrl] + ] を押します |
文書先頭にカーソル移動したい | [Ctrl] + [Home] を押します |
文書の最後([EOF] 位置)にカーソル移動したい | [Ctrl] + [End] を押します |
文書先頭から12行目に移動したい | [Ctrl] + G 12 [Enter] 注意:挿入モードの時のみ有効です |
最後に編集した位置に移動したい | [Alt] + [→] を押します |
マークした位置に移動したい | [検索]-[マーク位置へジャンプ] メニュー |
マークした行に移動したい | [検索]-[マーク行へジャンプ] メニュー |
カーソル位置を文字でマークしたい | [検索]-[現在位置をマーク] メニュー |
いつもいつも [↑] [↓] [←] [→] カーソルキーだけを使って地道に移動するのではなく、
上記のキー操作を場合によって使えるようになれば、あなたも立派な中級者です。
■ vi
vi コマンドでカーソルを上下左右にひとつ移動するには k j h l コマンドを使用します。 h j k l 以外にも、w, b, ]], } など様々なカーソル移動コマンドがあります。
[↑] [↓] [←] [→] カーソルキーとほぼ同じ機能ですが、以下の2つの利点があります。
以下は移動コマンドの一覧です。表の下の方ほど移動量が大きいコマンドです。
やりたいこと | vi コマンド |
---|---|
12文字右にカーソル移動したい | 12l (小文字のエル) |
34行下にカーソル移動したい | 34j |
単語単位で文書末尾方向にカーソル移動したい | w |
単語単位で文書先頭方向にカーソル移動したい | b |
空白で区切られた単語単位で文書末尾方向にカーソル移動したい | W |
空白で区切られた単語単位で文書先頭方向にカーソル移動したい | B |
文書末尾方向に単語末尾までカーソル移動したい | e |
文書末尾方向に空白で区切られた単語末尾までカーソル移動したい | E |
行頭にカーソル移動したい | 0 (数字のゼロ) |
行頭の非空白文字にカーソル移動したい | ^ |
行末にカーソル移動したい | $ |
8カラム目にカーソル移動したい | 8| (縦棒) |
次の行最初の非空白文にカーソル移動したい | [Enter] または + |
前の行最初の非空白文にカーソル移動したい | - |
対応する半角括弧の位置にカーソル移動したい | % |
C/C++ の次の関数・メソッド・クラス定義位置(^\{)に移動したい | ]] |
C/C++ の前の関数・メソッド・クラス定義位置(^\{)に移動したい | [[ |
C/C++ の次のラベル位置に移動したい | ]: |
C/C++ の前のラベル位置に移動したい | [: |
次(文書末尾方向)の空行に移動したい | } |
前(文書先頭方向)の空行に移動したい | { |
画面最上行に移動したい | H |
画面最下行に移動したい | L |
画面中央行に移動したい | M |
画面の上から3行目に移動したい | 3H |
画面の下から5行目に移動したい | 5L |
文書先頭に移動したい | 1G |
文書先頭から12行目に移動したい | 12G または :12 [Enter] |
文書末尾行位置に移動したい | G または :$ [Enter] |
現在行から100行先に移動したい | :+100 [Enter] |
現在行から100行前(文書先頭方向)に移動したい | :-100 [Enter] |
文字 a でマークした位置に移動したい | `a |
文字 b でマークした行に移動したい | 'b |
■ vi上級
vi のエキスパートはカーソル移動に検索(/?nN検索、fFtT;,検索)を多用します。