カーソル移動


 カーソルの移動とは、編集テキスト内のカーソルの位置(行と桁)が変わることです。 これは、画面のスクロールと密接な関係がありますが、明確に区別されます。 例えば、画面がスクロールしても、カーソルが移動しない(カーソル位置の行と桁が 変わらない)場合もあります。また、カーソルの移動に伴って、画面がスクロールする ことがありますが、それは、カーソルが画面内に入るようにするための副次的な効果に 過ぎません。画面スクロールに関しては、次章で説明します。

 本章では、次の各事項について説明します。

■カーソル移動コマンド一覧

 カーソルを移動するコマンドの一覧を、次に示します。 ここでは、各コマンドに対応する操作キーがあれば、合わせて示しています。 これらは、初期環境での割り当てです。 このうちの基本的なものは、Windows 標準に準拠しています。 なお、各コマンドのキー割り当ては、環境設定の「機能設定」で、任意にカスタマイズできます。

コマンド操作キー(初期環境)
上行へ
下行へ
左字へ
右字へ
行頭へ※1Home
行末へ※2End
論理行頭へ Alt+Home
論理行末へ Alt+End
テキスト先頭へ Ctrl+Home
テキスト末尾へ Ctrl+End
画面の最上行へ※3
画面の最下行へ※3
右の単語の先頭へ Ctrl+→
右の単語の末尾へ
左の単語の先頭へ Ctrl+←
左の単語の末尾へ
1画面上へ※4Ctrl+↑
1画面下へ※4Ctrl+↓
半画面上へ※5
半画面下へ※5
指定行数上へ※6Alt+↑
指定行数下へ※6Alt+↓
指定字数左へ※7Alt+←
指定字数右へ※7Alt+→
次のタブ桁へ Ctrl+Tab
前のタブ桁へ
【注釈】
※1 「行頭へ」の行は、論理行ではなく、表示行になります。
「行頭へ」を、既にカーソルが表示行頭にある時に実行すると、 その行の先頭の空白部を飛ばして、非空白文字の先頭へ移動します。
※2 「行末へ」の行は、論理行ではなく、表示行になります。
「行末へ」を、既にカーソルが表示行末にある時に実行すると、 その行の末尾の空白部を飛ばして、非空白文字の末尾へ移動します。
※3 「画面の最上行へ」と「画面の最下行へ」は、その時点で表示されている 画面の最上行と最下行への移動で、画面のスクロールは行なわれません。
※4 「1画面上へ」と「1画面下へ」は、その時点で表示されている画面の 行数分だけ、上へ/下へ移動します。
※5 「半画面上へ」と「半画面下へ」は、その時点で表示されている画面の 半分の行数分だけ、上へ/下へ移動します。
※6 「指定行数上へ」と「指定行数下へ」の指定行数とは、環境設定の 「カーソル」→「カーソルの移動特性:カーソル移動の指定量」の「行数」です。
※7 「指定字数左へ」と「指定字数右へ」の指定字数とは、環境設定の 「カーソル」→「カーソルの移動特性:カーソル移動の指定量」の「字数」です。

 なお、ジャンプも、基本的には、カーソル移動ですが、ここには含めずに、 「ジャンプ」の章で説明しています。

■マウスでのカーソル移動

 マウスポインタが、本エディタの編集ウィンドウのテキスト表示領域内にあると、 その形状は、IBeam 型になります。その時、左クリックすると、その位置にカーソルが 移動します。
 本エディタの編集ウィンドウを複数開いている時、非アクティブの編集ウィンドウに おいても同様に、そのテキスト表示領域内にマウスポインタを移動すると、その形状は、 IBeam 型になります。そこで、左クリックすると、そこにカーソルが移動します。 その際、その編集ウィンドウが、アクティブになります。
 このようにして、アクティブウィンドウを切り換える際に、カーソルが移動して ほしくない場合もあります。そのような場合、本エディタでは、右クリックを 使います。非アクティブの編集ウィンドウ上で、右クリックすると、そのウィンドウが アクティブになりますが、その右クリックでは、カーソルの移動も、 コンテキストメニューの表示も、行なわれません。但し、タイトルバー上を 右クリックした場合は、システムコンテキストメニューが表示されます。

■カーソル周囲の有余(マージン)

 カーソル移動を行なった時、カーソルがどこに移動しても、画面内にカーソルが 入るように、画面が自動的にスクロールします。もう少し厳密に言うと、 カーソル周辺のある特定範囲のテキストができるだけ画面上に表示されるように、 画面が自動的にスクロールします。
 この特定範囲は、環境設定の「カーソルの移動特性:カーソル周囲の有余」で 設定することができます。ちなみに、初期設定では、この範囲は、 カーソルの上3行、下6行、左右8桁になっています。
 なお、この範囲は、「画面の最上行へ」と「画面の最下行へ」のカーソル移動では、 一時的に無視されます。

■フリーカーソル

 カーソルが行末にある時に、カーソルを右へ移動すると、通常は、次行の先頭へ 移動します。つまり、カーソルは、通常、改行コードのある桁よりも、 右には移動できません。しかし、フリーカーソルモードにしておくと、カーソルを 改行コードよりも右の桁に移動することができます。
 フリーカーソルモードの ON/OFF の切り換えは、一時的にも、恒常的にも行なえます。 一時的な切り換えには、専用のコマンドがあります。このコマンドは、初期環境では、 Shift+Ctrl+F3 と、メニューバーの「設定」→「フリーカーソル ON/OFF」に 割り当てられていますが、任意にカスタマイズできます。
 一方、恒常的な切り換えは、環境設定の「カーソルの移動特性:フリーカーソル」で行ないます。

■移動制限

 フリーカーソルモードでない時、カーソルの右移動で、行末から次行の先頭へ 移動しますが、この移動は、禁止することもできます。また、 フリーカーソルモードであってもなくても、カーソルの左移動で、行頭から前行末へ 移動しますが、この移動も、禁止することもできます。 これらの移動制限は、環境設定の「カーソルの移動特性」で行ないます。

■カーソルの連続移動と移動速度

 カーソルを連続的に移動するには、その操作キーを押し続けます。 例えば、「↓」を押し続けると、カーソルは連続的に下に移動します。 これは、そのキーの「自動リピート」によるものです。

 カーソル移動のうち、

の移動コマンドは、非常によく使いますが、これを、通常の自動リピートごとに 行なった場合、かなり遅く感じられます。そのため、これらのカーソル移動コマンドに 限っては特別に、各自動リピートごとに移動させる行数と字数が指定できるように なっています。

 キーの自動リピートは、OS(Windows)がサポートしていますが、 本エディタ自身でも制御することができます。その場合、細かい設定が可能です。 例えば、自動リピートの周期を、画面の垂直リフレッシュ周期に同期させると、 ある程度のスムーズスクロールが実現します。

 この関連の設定は、環境設定の「カーソルの移動速度」で行ないます。

 なお、カーソルの上下左右の移動機能は、通常、指令キーに割り当てられますが、 もし、ファンクションキーやツールバーなどに割り当てられていて、その操作が 行なわれても、キーの自動リピートは発生しないので、単発の動作になります。

■Shiftキー併用のカーソル移動

 Shiftキーを押した状態で、カーソルを移動すると、テキストの選択範囲が変わる ように設定された環境(参照:「範囲選択:Shiftキー併用による範囲選択」)では、 Shiftキーを併用したカーソル移動のキー割り当てには、注意が必要です。 通常、このようなキーには、何も機能を割り当てません。

 例えば、初期環境では、「→」キーに、カーソルの右移動が割り当てられていますが、 「Shift+→」のキーには、何の機能も割り当てられていません。 これは、「Shift+→」で、テキスト範囲選択を伴ったカーソルの右移動が できるようにするためです。もし、「Shift+→」に何か別の機能が 割り当てられていると、「Shift+→」の操作で、その別の機能が実行されて、 テキスト範囲選択を伴ったカーソルの右移動は、実行されなくなります。