範囲選択


 編集テキスト内の特定の範囲を選択して、各種の編集操作の対象部分を限定することが できます。選択されている部分のテキストは、画面内で、所定の文字色と背景色で 表示されます。ちなみに、初期環境では、それぞれ、白色と紺色になります。 これらの色は、環境設定の「テキスト表示」→「基本設定」の「表示色」で、カスタマイズできます。

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

■範囲選択の形態

 本エディタでは、次の3形態の範囲選択があります。

 このうちのどの選択範囲に対しても、基本的に、各種の編集操作が同様に行なえます。 例えば、矩形選択範囲に対しても、文字選択範囲や行範囲選択と同様に、 英字大小変換/全角半角変換などが行なえるだけでなく、外部プログラムの起動時に、 その矩形選択範囲の文字列を標準入力にして、 その範囲を標準出力と置換することも可能です。

 また、非等幅フォント(プロポーショナルフォント)使用時でも、 オーバーヘッドや処理速度の低下なしに、どの形態の範囲選択でも可能です。

 現在、どの形態の範囲選択が行なわれているのか、あるいは、 範囲選択していない状態なのかは、ステータスバーに表示されます。

≪ 注意 ≫

 編集テキスト内の同じ範囲を選択しても、範囲選択の形態によって、操作結果が 異なる場合があります。例えば、ある行範囲の選択は、「行範囲選択」でも、 「文字範囲選択」でも行なえますが、「慣用語句入力」「メール」分類内の「各選択部を引用部化」を 実行すると、「行範囲選択」されたテキストでは、その各行の先頭部に引用符が 付加されますが、「文字範囲選択」されたテキストでは、その先頭部にしか引用符が 付加されません。なお、「慣用語句入力」HTMLタグでは特に、 この3形態の範囲選択の使い分けが重要な項目がたくさんあります。

■マウス操作による範囲選択

文字範囲の選択

 編集テキスト上で選択したい文字範囲の開始位置から終了位置までを ドラッグ(左ボタンを押したまま移動)すると、その範囲の文字列が選択されます。
 文字範囲が選択されている時に、編集テキスト上で、Shift+左クリックすると、 カーソルがそこに移動して、文字選択範囲の終点がその位置に変わります。この時、 文字選択範囲の始点は変わりません。
 選択範囲がない時に、編集テキスト上で、Shift+左クリックすると、 カーソルがそこに移動しますが、その直前のカーソル位置から、現在位置までの 範囲の文字列が選択されます。

行範囲の選択

 行番号欄内を、左クリックするとその表示行が選択されます。また、 選択したい行範囲の開始行から終了行までの行番号欄をドラッグ (左ボタンを押したまま移動)すると、その範囲の表示行が選択されます。
 行範囲が選択されている時に、行番号欄か編集テキスト上を、 Shift+左クリックすると、その行にカーソルが移動して、行選択範囲は、 その行までになります。この時、行選択範囲の開始行は変わりません。
 なお、編集ウィンドウ内のテキスト表示領域の左端には、 若干の余白がありますが、その余白部を左クリックしても、行範囲選択が 行なえます。行番号欄が非表示の時には、この余白部が使えます。

矩形範囲の選択

 編集テキスト上で選択したい矩形範囲の開始位置から終了位置までを、 Ctrl+ドラッグ(Ctrlキーと左ボタンを押したまま移動)すると、 その矩形範囲が選択されます。なお、Ctrl+ドラッグは、初期環境では、 Alt+ドラッグでも、可能です。
 矩形範囲が選択されている時に、編集テキスト上で、Shift+左クリックすると、 カーソルがそこに移動して、矩形選択範囲の終点がその位置に変わります。 この時、矩形選択範囲の始点は変わりません。

所定の文字範囲の選択

 編集テキスト上で左ダブルクリックすると、その位置を含む所定の文字範囲が 選択されます。ここで、所定の文字範囲というのは、次のどれかです。

このうちのどれになるかは、基本的に、ダブルクリックした位置にある文字が、 このうちのどれに属するかに依ります。ただ、括弧の囲み範囲になるのは、 その位置の文字が、左括弧または右括弧である場合に限ります。
 なお、この左ダブルクリックの機能は、多数の環境での初期設定になっていますが、 別の機能(タグジャンプ等)に初期設定されている環境もあります。

特定パターンに一致する文字範囲の選択

 編集テキスト上で、Ctrl+左ダブルクリックすると、その位置周辺で、 特定パターンを検索して一致する部分があれば、その文字範囲が選択されます。 ここで、「特定パターン」というのは、環境設定の「編集」→「特定範囲の選択」で指定されているパターンです。 このパターンは、正規表現で、3候補まで指定可能です。 また、「その位置周辺」というのは、同環境設定で指定された検索範囲のことです。
 なお、この Ctrl+左ダブルクリックの機能は、初期環境での割り当てですが、 必要に応じて任意に変更できます。

【補足説明】

 上記のように、マウス操作で、文字範囲、行範囲、矩形範囲を選択する場合、 ドラッグを行ないますが、その際、マウスポインタが、テキスト表示領域外に 出ると、画面が自動的にスクロールします。これで、マウスボタンを押しながら でも、任意のテキスト部が表示できます。なお、この時の自動スクロールの速度は、 マウスポインタがテキスト表示領域を離れるほど速くなります。そのため、 ゆっくりスクロールさせたい場合は、マウスポインタがテキスト表示領域から 少しだけ出るようにします。

■Shiftキー併用による範囲選択

 環境設定の「カーソル」→「移動特性」
  「カーソル移動時、Shiftキー併用でテキスト選択」
のチェックが ON の場合、Shiftキーを押した状態で、カーソルを移動すると、 テキストの選択範囲が、次のように変わります。

 文字範囲、行範囲、矩形範囲のどれかが選択されている時に、Shiftキーを押した状態で、 カーソルを移動すると、その選択範囲の終端が、そのカーソル位置に変わります。この時、 その選択の形態とその範囲の始端は変わりません。

 選択範囲がない時に、Shiftキーを押した状態で、カーソルを移動すると、 文字範囲の選択が開始されます。その際、その移動直前の位置が その選択範囲の始点になって、その移動後の位置が終点になります。

 このような Shiftキー併用による範囲選択は、単に左右上下のカーソル移動時だけでなく、 行頭/行末、テキスト先頭/末尾への移動時など、どのようなカーソル移動時にも、 行なえます。但し、ファンクションキー操作では、Shiftキー併用でカーソル移動しても、 このような範囲選択は行なわれません。

■選択開始コマンドによる範囲選択

 今まで述べた操作では、Shiftキーを押さないで、カーソルを移動すると、 範囲選択状態は、解除されてしまいます。しかし、「選択開始コマンド」を実行すると、 それ以降、Shiftキーを押さなくても、通常のカーソル移動で、その選択範囲を 変えることができます。

 「選択開始コマンド」には、次の3種があります。なお、下記で、各コマンドの右側に、 それを実行するキーを示しています。これは、初期環境での割り当てです。

・文字範囲の選択開始  F5
・行範囲の選択開始  F6
・矩形範囲の選択開始  F7

 このいずれの「選択開始コマンド」でも、それを実行した時点で、 選択範囲が無ければ、現カーソル位置が、それぞれの範囲選択の始端と終端になります。 以降、その始端はそのまま固定されていますが、カーソルが移動すると、 その選択範囲の終端は、その移動に伴って変わります。

 一方、既に選択範囲がある時に、「選択開始コマンド」を実行すると、 その選択範囲の始端と終端はそのままですが、 選択の種別がそれに応じて変わります。 その後のカーソル移動に関しては、上記と同様です。

 単純な範囲選択では、前述の Shiftキー併用による方法のほうが便利ですが、 複雑なカーソル移動で範囲選択する場合には、この範囲選択方法のほうが便利です。 また、Shiftキー併用での範囲選択を行なわないように環境設定した場合には、 この範囲選択方法は必須です。

 ちなみに、キー操作だけで、矩形範囲を選択する場合、普通のやり方では、 カーソルを矩形の始端へ移動して、矩形範囲選択を開始(初期環境では F7 押下)し、 カーソルを矩形の終端まで移動します。一方、次のようにすることもできます。 前述の Shiftキー併用で、カーソルを矩形範囲の始端から終端まで移動して、 文字範囲選択状態にしておいて、最後に F7 を押して矩形範囲選択に変えます。

 なお、選択開始コマンドの実行で保持されている範囲選択状態は、
  ・選択状態を解除
のコマンドで、解除することができます。これは、初期状態では、ESC キーに 割り当てられています。

■範囲選択コマンド一覧

 次に、範囲選択関連のコマンドの一覧を示します。このなかには、既に説明したものも あります。

コマンド機能説明
文字範囲の選択開始 文字範囲のテキスト選択を開始します
行範囲の選択開始 行範囲のテキスト選択を開始します
矩形範囲の選択開始 矩形範囲のテキスト選択を開始します
選択状態を解除 テキストの選択状態を解除します
現カーソル行を選択※1 現カーソル位置の論理行頭から論理行末までを選択します
全て選択※2 テキストの全範囲を選択します
所定の範囲を選択※3 現カーソル位置前後の所定範囲(単語等)を選択します
指定の範囲を選択※4 現カーソル位置前後の環境設定での指定範囲を選択します
選択範囲の始終点逆転※5 選択範囲の始点と終点を入れ替えます
選択範囲を編集選択範囲のテキストを別のウィンドウで編集します
【注釈】
※1初期環境で、この機能は、Ctrl+= キーに割り当てられています。
※2初期環境で、この機能は、Ctrl+A キーと、メニューバーの「編集」内に割り当てられています。
※3この機能は、前述の「所定の文字範囲の選択」の通りです。
※4この機能は、前述の「特定パターンに一致する文字範囲の選択」の通りです。
※5初期環境で、この機能は、メニューバーの「編集」内に割り当てられています。

■選択テキストのドラッグ&ドロップ

 マウスポインタの形状は、非選択範囲のテキスト上では、IBeam 型ですが、 選択範囲のテキスト上では、通常の矢印型になります。これは、その選択範囲の テキストをドラッグできること示しています。

 選択範囲のテキストのドラッグを開始すると、マウスポインタの形状が、若干 変わって、その矢印の根元にグレーの小さい長方形が現れます。 このドラッグ中は、マウスの移動に伴って、カーソルも移動します。 そのカーソルを、ドロップ先まで移動させます。

 ドロップすると、その選択範囲のテキストが、その位置に移動します。 移動ではなく、コピーしたい場合は、Ctrlキーを押した状態で、ドロップします。 ちなみに、Ctrlキーを押すと、マウスポインタの形状に [+] のマークが付くので、 コピーされる状態であることが分かります。

 このドラッグ操作を途中で中断したい場合は、ESC キーを押します。また、 選択範囲のテキスト上でドロップすると、中断と同じことになります。

 このドラッグ&ドロップは、どの形態の選択範囲に対しても行なえます。 文字範囲選択と行範囲選択の場合、その選択テキストは、ドロップ位置に 挿入されます。矩形範囲選択の場合、その選択テキストは、ドロップ位置から 矩形状に挿入されます。

 このドラッグ&ドロップは、現編集テキスト内だけでなく、 別の編集ウィンドウにある編集テキスト間でも行なえます。 また、この機能をサポートしているアプリケーションであれば、 その間でも行なえます。 但し、他のアプリケーションとの場合、矩形選択範囲のテキストの扱いが 異なるため、通常、そのやり取りはできません。

 なお、このドラッグ&ドロップによるテキストの移動やコピーでは、 クリップボードは介しません。

■選択範囲の別ウィンドウでの編集

 選択範囲のテキストを、別のウィンドウで編集することができます。 それには、まず、対象とする範囲のテキストを選択します。 これは、矩形範囲でも可能です。 次に、「選択範囲を編集」のコマンドを実行します。 この機能は、初期環境では、メインメニューの「編集」内にあります。

 さて、この実行によって、-Select- というタイトルの編集ウィンドウが開きます。 そこに、編集対象の選択範囲のテキストが表示されます。 このウィンドウでは、各種の編集操作が、通常の場合と同様に行なえます。 但し、「保存」の動作が異なります。

 この -Select- ウィンドウでの「保存」は、「選択範囲を編集」を実行した 元のウィンドウ内の現選択範囲のテキストに対して行なわれます。つまり、 元の選択範囲のテキストが、-Select- ウィンドウ内の全テキストに置き換えられます。

 一方、「名前を付けて保存」では、一般の場合と同様に、その保存先は、ファイルになります。

 -Select- ウィンドウの表示中でも、「選択範囲を編集」を実行した 元のウィンドウに戻って、操作を行なうことができます。 その際、選択範囲が変わると、その範囲に対して、 -Select- ウィンドウでの「保存」が行なわれるので、注意が必要です。 もし、その範囲選択が解除されていれば、 現カーソル位置に、-Select- ウィンドウ内の全テキストが挿入されます。

 なお、この「選択範囲の別ウィンドウでの編集」機能は、ご寄付を頂いた方への「特典」になっています。特典がないと、この機能は、本エディタの起動後、 2回までしか実行できません。

■選択範囲の特殊編集

 「選択範囲の特殊編集」では、選択範囲を保持したまま、 特殊な編集操作(下記赤色文字の機能)が行なえます。 例えば、以下のようなテキストがあったとします。 これを、C言語のマクロ定義文に変えてみます。

PEACH   0 桃*
APPLE   1 りんご*
BANANA  2 バナナ*
 ここで、カーソルが、1行目の行頭にあるとして、次のようにキー操作します。
(1)[F7](矩形選択)キーを押して、矩形選択範囲の特殊編集モードを開始
(2)[↓] キーを2回押して、この3行の先頭から幅0の矩形範囲を選択
(3)[Ctrl+V] キーを押して、 クリップボードの内容(ここでは「#define  」という文字列が 入っているとします)を、各行に同時に「貼り付け」
 すると、以下のようになります。
#define  PEACH   0 桃*
#define  APPLE   1 りんご*
#define  BANANA  2 バナナ*
 次に、[→] キーを何回か押して、カーソルを「2」の直後(「バナナ」の手前)まで移動します。
#define  PEACH   0 桃*
#define  APPLE   1 りんご*
#define  BANANA  2 バナナ*
 次に、[Tab] キーを押して、タブコードを各行に同時に挿入します。
#define  PEACH   0     桃*
#define  APPLE   1     りんご*
#define  BANANA  2     バナナ*
 次に、「//」と打ち込んで、キー入力文字を各行に同時に挿入します。
#define  PEACH   0    // 桃*
#define  APPLE   1    // りんご*
#define  BANANA  2    // バナナ*
 次に、[End] キーを押して、カーソルを(3行目の)行末に移動します。
#define  PEACH   0    // 桃*
#define  APPLE   1    // りんご*
#define  BANANA  2    // バナナ*
 次に、[BackSpace] キーを押して、選択範囲の各行の末尾の1字を同時に削除 (ここでは、各行末の「*」を削除)します。
#define  PEACH   0    // 桃
#define  APPLE   1    // りんご
#define  BANANA  2    // バナナ
 最後に、[ESC] キーを押して、矩形選択範囲の特殊編集モードを解除します。
#define  PEACH   0    // 桃
#define  APPLE   1    // りんご
#define  BANANA  2    // バナナ

 なお、以上のキー操作では、初期環境のキー機能割り当てが前提になっています。

●特殊編集モードの開始と解除

 選択範囲の特殊編集を行なうには、環境設定の「各種編集モード」の「選択範囲の特殊編集を行なう」を、ON に しておく必要があります。ちなみに、初期環境では、ON になっています。 なお、このモードに慣れるまでは、若干の違和感があるかもしれませんが、 慣れると非常に便利です。

 3形態の範囲選択があることは、既に述べましたが、 この各形態ごとに、特殊編集の動作も、若干異なります(詳細後述)。 開始は、初期環境では、次のキーで行ないます。

 F5文字選択範囲の特殊編集を開始
 F6行選択範囲の特殊編集を開始
 F7矩形選択範囲の特殊編集を開始

 このキーは、前述の「選択開始コマンドによる範囲選択」と同じです。 つまり、これらのコマンドは、選択範囲の特殊編集を行なう環境にある時、 その開始を兼ねます。そのため、その開始専用のコマンドはありません。

 選択範囲の特殊編集状態になっている時、ステータスバーには、青色で、その範囲選択の形態が 表示されます。

 選択範囲の特殊編集状態を、解除するには、
  ・選択状態を解除
のコマンドを実行します。これは、初期状態では、ESC キーに割り当てられています。
 また、「選択範囲の全文字を削除(下記各表内参照)」を行なった時も、 この選択状態は解除されます。

 次に、特殊編集の機能を、各選択範囲の形態ごとに、使用頻度が高いと思われる形態の順に、 説明します。なお、下記の操作キーの機能は、初期環境で割り当てられているものです。 これら以外の機能は、特殊編集モードには、特に依存しません。

●矩形選択範囲の特殊編集

 矩形範囲の順方向選択時( 始端桁 ≦ 終端桁 )と、逆方向選択時( 始端桁 > 終端桁 )の 特殊編集は、下表のようになります。

操作キー 順方向選択時 逆方向選択時
文字入力キー 各末尾に同時挿入 各先頭に同時挿入
Ctrl+V 各末尾に同時貼り付け 各先頭に同時貼り付け
Tab 各末尾に同時挿入 各先頭に同時挿入
BackSpace 各末尾の1字を同時削除 選択範囲の全文字を削除
Delete 選択範囲の全文字を削除 各先頭の1字を同時削除
●行選択範囲の特殊編集

 行範囲の順方向選択時( 始端行 ≦ 終端行 )と、逆方向選択時( 始端行 > 終端行 )の 特殊編集は、下表のようになります。

操作キー 順方向選択時 逆方向選択時
文字入力キー 各行末に同時挿入 各行頭に同時挿入
Ctrl+V 各行末に同時貼り付け 各行頭に同時貼り付け
Tab 各行末に同時挿入 各行頭に同時挿入
BackSpace 各行末の1字を同時削除 選択範囲の全文字を削除
Delete 選択範囲の全文字を削除 各行頭の1字を同時削除
●文字選択範囲の特殊編集

 文字範囲の順方向選択時( 始端文字位置 ≦ 終端文字位置 )と、 逆方向選択時( 始端文字位置 > 終端文字位置 )の特殊編集は、下表のようになります。

操作キー 順方向選択時 逆方向選択時
文字入力キー 末尾に挿入 先頭に挿入
Ctrl+V 末尾に貼り付け 先頭に貼り付け
Tab 末尾に挿入 先頭に挿入
BackSpace 末尾の1字削除 選択範囲の全文字を削除
Delete 選択範囲の全文字を削除 先頭の1字削除