JPS6313097A - カ−ソル制御方法 - Google Patents

カ−ソル制御方法

Info

Publication number
JPS6313097A
JPS6313097A JP61156145A JP15614586A JPS6313097A JP S6313097 A JPS6313097 A JP S6313097A JP 61156145 A JP61156145 A JP 61156145A JP 15614586 A JP15614586 A JP 15614586A JP S6313097 A JPS6313097 A JP S6313097A
Authority
JP
Japan
Prior art keywords
cursor
character
mode
key
keys
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP61156145A
Other languages
English (en)
Inventor
黒須 正明
武市 宣之
安村 通晃
湯浦 克彦
高田 綾子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP61156145A priority Critical patent/JPS6313097A/ja
Publication of JPS6313097A publication Critical patent/JPS6313097A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Digital Computer Display Output (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、情報処理装置におけるテキスト編集処理のた
めのカーソル制御に関し、特に、論理的なブロック構造
を持つ言語(例えばLISPのようなリスト処理言語)
のための画面エディタと共に用いられるカーソルの制御
に関する。
〔従来の技術〕
言語処理における編集作業(削除、移動、訂正、挿入等
)をサポートするテキストエディタは、編集対象テキス
トの管理の方式によって、行エディタと画面エディタに
大別される。行エディタは。
主にテレタイプ型端末で使用するために開発されたもの
で、特定の行に対するポインタによって編集対象を管理
する。したがって1編集操作の実行後に改めて対象を再
表示させないと編集結果が確認できないという点で、行
エディタは不便である。。
他方1画面エディタでは、対象テキストが画面上に表示
され1画面上のテキストに直接に編集操作を適用するこ
とができ、したがって、操作の誤りが減少し、作業能率
が向上する。画面上の操作適用位置を明示し、それによ
り画面エディタによる直接編集操作を容易にする目的で
、−文字分に相当する画面領域が、輝度反転、下線付加
その他各種の形式で強調表示され、このような強調表示
は。
文字カーソル、又は通常単にカーソルと呼ばれる。
オペレータは、カーソルを所望の位置に移動して、編集
操作の対象を指定することができる。
例えば、ある画面エディタでは、テキスト中の特定の部
分を削除するのに、第2図に示すような操作手順を踏ん
でいる。これはワードプロセッサなどのテキストエディ
タによく見られる方式であるが、まず第2図(A)のよ
うに、削除したい領域の先頭位置1に文字カーソル(こ
の例では下線)を移動し、削除位置開始の指示を与える
。次に、第2図CB)のように、削除したい領域の末尾
2まで文字カーソルを移動し、そこで削除の実行を指示
する・なお、図中点線で囲った部分は輝度反転領域を示
す。すると画面には、第2図(C)のような編集結果が
表示される。従来の文字カーソルを使用した画面エディ
タでは、このような手順によって、テキスト中の特定部
分を削除していた。
ところで、プログラムを編集対象とした場合には、一般
の文書の場合と異なり、別プログラム呼出し部分、反復
処理部分、判定処理部分、多方向分岐部分など、プログ
ラムの論理上のブロック構造に対応した領域を処理単位
とすることが多い。
プログラムのこのような領域の範囲が論理的に明確な場
合には、必ずしもその領域の先頭と末尾の2回に分けて
編集処理のための範囲指定を行なう必要はなく、その範
囲の一部(先頭か末尾、場合によってはその途中の任意
の位置)を指定するだけで充分なはずである。
しかるに、従来の多くの画面エディタでは、プログラム
のブロック構造を編集しようとする場合にも、第2図に
示したのと同様の操作手順を必要としていた。第3図に
示す手順は、従来の画面エディタを用いて、LISP言
語のソースプログラムを編集している例である。LIS
P言語では。
リストと呼ばれるデータ構造が基本となっており、それ
を、対応する左括弧と右括弧の階層的使用によって表現
している。この言語では、プログラムもデータ同様、リ
スト構造によって表現している。
したがって、プログラムのブロック構造は、様々な深さ
の括弧の入れ子によって表現されている。
第3図に示す例は、プログラムの一部(部分ブロック)
を他所へ移動しようとした場合で、最初に、第3図(A
)のように移動対象の先頭位置3に文字カーソルをあわ
せ、移動指示キーを押すことにより移動処理の開始を指
示する。次に、第3図(B)のように、文字カーソルを
移動対象の末尾位置4まで移動する。ここで再度移動指
示キーを押すことにより移動範囲の末尾を指定すると、
第3図(C)のように、移動対象の範囲(ここではリス
ト構造におけるあるまとまった部分、すなわち部分リス
ト)5が強調表示(例えば輝度反転)される。
更に第3図(D)のように、文字カーソルを移動先6に
移し、実行キーを押すと、第3図(E)のように、輝度
反転していた部分が、指定された移動位置に移り、移動
処理を完了する。このように、従来の画面エディタでは
、プログラムのブロックを単位として移動する場合であ
っても、その先頭と末尾の両方を位置指定しなければな
らなかった。
LISP言語では、ブロック構造が対をなす左右の括弧
によって挾まれた部分リストの階層的集積として表現さ
れているため、各ブロックの範囲の確定が容易であるが
、他の言語の場合でも、ブロックの範囲は比較的容易に
確定することができる。例えば、PASCAL言語にお
ける“begin”と“end”や、C言語における“
(”と14 ) ljなどは、プログラムの論理的ブロ
ック構造を明示するための表現手段であり、特定のブロ
ックを指すのには、 ” b e g i n”と“e
nd ’″、あるいはII(11と11 ) IIのど
ちらか一方だけを指摘すれば充分なはずである。
第4図は、プログラムの外部表現(文字列表記)と内部
表明(リスト構造)の対応関係を、LISPプログラム
の場合について示す。第4図(A)は、L’ISPプロ
グラムの外部表現である括弧付きの記法、同(B)はそ
れに対応したプログラムの内部構造の模式図である。L
ISP言語には、何種類かのデータオブジェクトが存在
し、それらはセルと呼ばれている。第4図(B)におけ
る横長のセルはコンス(CONS)セルと呼ばれ、前半
部(CAR部)と後半部(CDR部)の2つのポインタ
部からなっている6図では矢印によってポインタを表し
ている。矢印の代りに斜線が入っている場所は、ニル(
N I L)と呼ばれ、リストがそこで終了することを
示している。また、縦長のセルはシンボル(SYMBO
L)セルと呼ばれ。
それぞれ固有の名前(図では、AないしF)を持ってい
る。
コンスセルに含まれるポインタは、コンスセルを含む任
意の他のデータオブジェクトを指しており、このような
コンスセルが縦方向または横方向に連続することにより
、リスト構造が構成されている。
すなわち、第4図(A)の括弧により表現されたリスト
構造中の部分リストは、皆、(B)における特定のコン
スセルに対応している。例えば、(A)における (B  (CD)  (E  F)) という部分リストアの位置は、(B)のコンスセル11
に対応し1部分リストアの先頭にあるBというシンボル
8の位置は、(B)のコンスセル12に、以下、部分リ
スト9の位置はコンスセル13、シンボルC1oの位置
はコンスセル14に各々対応している。
したがって、第4図(A)のリストから、例えば部分リ
スト9の位置にある内容を削除したい場合には、コンス
セル13を削除する(コンスセル12をコンスセル15
に直接繋ぐ)ことにより。
その下に繋っている部分を本体がら切離してしまえばよ
い。すなわち、LISPプログラムの編集中にその部分
リストを削除したい場合には、対応するコンスセルを指
定し、削除すればよいことになる。この操作を前述の文
字カーソルによる位置指定方式の下で行なうには、まず
、部分リスト9の左括弧16の位置にカーソルを移動し
て、先頭を指定し、次いで、右括弧17の位置までカー
ソルを再び移動して、末尾を指定するという手順をとら
なければならない。
もつとも、従来のLISP専用エディタの中には、カー
ソルがある括弧位置に来ると、それと対をなす括弧の位
置にカーソルを移して短期間そこに保持するもの(例え
ば、Digital  EquipmentCorp、
 1984 、 VAX LISP Editor M
anual(AA −Y923A−TE) 、あるいは
、対をなす他方の括弧をブリンク、輝度変化等により強
調表示するものがあり、これらは、LISPプログラム
のブロック構造の把握を容易にする。
また、他のいくつかのLISP専用エディタは、部分リ
ストを強調表示し、この部分リストを編集操作の対象の
単位として扱う(例えば、XEROXCorp、 19
83 、 Interlisp Reference 
Manual)。
これらは、ブロック(部分リスト)を単位とする編集作
業には便利であるが1文字車位の編集操作には使えない
〔発明が解決しようとする問題点〕
前述のように、通常の文字カーソル方式では、プログラ
ムのようなブロック構造を持つテキストに対してすら、
編集操作において、その都度カーソルを動かして、先頭
と末尾の双方を指定しなければならない。特に、LIS
Pプログラムの場合、多数の同一方向の括弧が並ぶこと
が多く(例えば文末における右括弧の列)、このような
箇所では、特別の注意が必要となり、かつ、指定誤りが
生じやすい6編集対象のブロック全体を単一のカーソル
操作で指定できれば、編集時間は短縮され、誤指定も防
止できるから1作業効率が著しく改善されよう。
また、LISP専用エディタにおける。対をなす他方の
括弧を自動的に強調表示する前述の機能は、ブロック構
造の把握を容易にし、誤指定を防ぐ効果を持つには違い
ないが、それに止まり、そ −のブロックを直接に編集
操作の対象とすることを可能にするものではない。しか
も、この機能は、カーソルが括弧の位置にある時にしか
働かない点、及び、その結果として、指定する部分リス
トのレベルの変更には、所望の部分リストに対応する右
又は左括弧の位置まで、文字カーソルを移動することが
必要である点でも、不満足なものである。
更に、リスト構造におけるブロックを編集対象の単位と
する従来のLISP専用エディタは、ブロック単位での
編集操作には偉力を発揮するけれども、シンボル名の部
分訂正や、右又は左括弧だけの削除又は挿入などのよう
な1文字車位の編集操作ができず、そのため、総合的な
編集効率はさほど良くない。
本発明は1通常の文字カーソルとブロックを指定するカ
ーソルとを、オペレータが必要に応じて直ちに使い分け
ることができるようなカーソル方式を実現し、それによ
り、ブロック構造を持つテキストの編集作業の効率を、
大幅に改善することを意図する。
〔問題点を解決するための手段〕
本発明は、通常の文字カーソルが機能する文字カーソル
モードと、構造カーソル(本明細書において、テキスト
データのブロック構造から定まる種種のレベルのブロッ
ク領域の強調表示による指示をいう)が機能する構造カ
ーソルモードの間で、モードを都合よく切換える。カー
ソルキーの一つとカーソルキーの機能の修正を指示する
指示キーの双方が押された時のカーソル制御ステップは
、その時のモードが文字カーソルモードにあれば、構造
カーソルモードへの切換えを行なうとともに、それまで
文字カーソルが示していた文字位置を含むブロック領域
に構造カーソルを適用する。他方、カーソルキーの一つ
が単独で押された時のカーソル制御ステップは、その時
のモードが構造カーソルモードにあれば、文字カーソル
モードへの切換えを行なう。
〔作用〕
文字カーソルモードにおいては、通常の文字カーソルに
よるのと同様な1文字車位での編集操作を行なうことが
でき、構造カーソルモードにおいては、構造カーソルが
示すブロックの全体に対して、直接に編集操作を行なう
ことができる。文字カーソルモードにおいて、オペレー
タが、編集対象ブロック中の任意の文字位置を文字カー
ソルで指定し、次いで、カーソルキーの一つと指示キー
を同時に押すと、モードは構造カーソルモードに切換ね
り、構造カーソルが所望ブロックに属する全文字位置を
指示し、このブロックを対象として所要の編集操作を施
すことができる。構造カーソルモードから文字カーソル
モードへの切換えは、カーソルキーを単独で押すことに
よって行なうことができる。
〔実施例〕
以下において、LISP言語とPASCAL言語にそれ
ぞれ適用された本発明の詳細な説明する。
第5図は、本発明の実施に用いられる計算機システムの
概要を示し、この計算機システムは、キーボード18.
キーボードドライバ19.主制御部20、表示バッファ
21.CRTドライバ22、CRT23、ファイル24
.及びメモリ25からなる。メモリ25は、ワークエリ
ア251、エディタプログラム252、文字フォント2
53、及びテキストバッファ254を含む。
編集動作が指示されると、主制御部20は、エディタプ
ログラム252を読出して、実行する。
このエディタプログラムに従って、まず、編集対象であ
るプログラムテキストがファイル24から読出され、テ
キストバッファ254に文字コードデータとして保存さ
れる。ここに収められたテキストデータは、第4図(A
)のような形式に対応する文字コード列である1次いで
、テキストバッファ254の内容は構文解析を受け、そ
の結果がワークエリア251に保存される。ここに収め
られたデータは、コンスセル、シンボルセル等を単位と
して、第4図(B)の形式をとる。主制御部20は、テ
キストバッファ254の内容の所要部分を切出して、文
字フォント253を用いて表示用のビットパターンに変
換し、表示バッファ21に送る1表示バッファ21内に
おいて、文字カーソル及び構造カーソルは、それらの表
示位置に対応する領域に、下線、輝度反転、ブリンク、
高輝度、色変換、又はその他の適当な強調表示を示すデ
ータとして展開される。表示バッファ21の内容は、C
RTドライバ22を経て、CRT23上に表示される。
キーボード18は、次に述べるように1文字キー、カー
ソルキー、編集機能キーなどを有し、これらの打鍵情報
は、キーボードドライバ19を経て主制御部20に送ら
れる。主制御部20は、打鍵情報に応答して、各種の編
集処理を行ない、特に、後述するカーソル制御を遂行す
る。
第6図は、第5図におけるキーボード18の詳細を示す
、キーボード18には、少なくとも、英数カナ記号等の
文字を入力するための文字キ一部26、挿入、削除等の
編集処理を指示するための編集キ一部27、カーソルの
移動を制御するためのカーソルキ一部28、及びシフト
キー29が設けられる。カーソルキ一部28は、上下左
右の各方向の矢印が付されたカーソルキーからなり、こ
れらを用いてカーソルの方向に関する制御を行なうこと
ができる。また、後で詳述するように、シフトキー29
は、カーソルキーと同時に押されると、カーソルキーの
機能を修正する指示キーとして機能し、カーソルの状態
を変化させる。
カーソルの状態の遷移は、次の手順に従う。まず、カー
ソルキーが押された時に、カーソルが構造カーソルであ
れば、カーソルを文字カーソルに変更し、構造カーソル
が指示していた部分リストの先頭に位置づける。カーソ
ルが文字カーソルの場合には、指定された方向に文字カ
ーソルを移動する。指示キーとしてのシフトキーとカー
ソルキーとが同時に押された時に、カーソルが文字カー
ソルであれば、カーソルを構造カーソルに変更し、その
文字を含む部分リストの範囲全体を構造カーソルとして
強調表示する。カーソルが構造カーソルであれば、指定
された方向に構造カーソルの範囲を移動する。
第7図は、エディタによる画面表示構成の例である0画
面は、大別して4つの領域に分かれている。すなわち、
ヘッダ表示部3o、テキスト表示部31.システムメツ
セージ表示部32、コマンド入力部33である。テキス
ト表示部31には、テキストのカラム位置を示すスケー
ル行34、テキストの行番号を示す行番号フィールド3
5、それとプログラムソースを表示するテキストフィー
ルド36とが含まれている。なお、以下の画面表示例を
示す図面では、この形式を簡略化して、テキスト表示部
31のテキストフィールド36だけを示すことにする。
次に、カーソルキー28とシフトキー29を使ったカー
ソル操作の手順を、第4図のデータに関して説明する。
カーソルの種別が文字カーソルの状態でカーソルキーを
押すと1画面中の文字カーソルを文字単位で移動するこ
とができる。表示画面における文字カーソルの動きは、
カーソルキー上に記された矢印の方向と同じである。こ
のカーソル状態で、編集キーにより各種操作を行なう場
合には、第3図に示したような手順にしたがうことにな
る。
画面に文字カーソルが表示されている状態で。
シフトキー29を押しながら任意のカーソルキーを押す
と、カーソル種別が構造カーソルに変わり、その時点で
文字カーソルのあった位置に対応した構造カーソルが、
画面に表示される0例えば、第4図で、文字カーソルが
左括弧16の下にある時、シフトキーを押しながら任意
のカーソルキーを押すと、カーソルは(CD)という部
分リスト9の範囲全体を示す構造カーソルになる。なお
、範囲9を示す構造カーソルへの移行は、左括弧16の
位置からばかりでなく、他の幾つかのカーソル位置から
カーソル変更によって行なうことが可能である。例えば
右括弧17や、CとDとの中間にある空白37は、左括
弧16と同じリスト水準を示すものと解釈され、その何
れかに文字カーソルがある状態で、シフトキーとカーソ
ルキーとを押せば、範囲9を示す構造カーソルが得られ
る。
構造カーソルが表示された状態で、シフトキーを押しな
がらカーソルキーを押すと、構造カーツ 。
ルを移動することができる。すなわち、シフトキーと上
矢印カーソルキーを押せば現在のレベルの次の上位レベ
ルへ、シフトキーと下矢印カーソルキーを押せば現在の
ベレルの次の下位レベルへ、また、シフトキーと左矢印
カーソルキーを押せば現在のレベルと同じレベルにおけ
る一つ手前の部分リストへ、シフトキーと右矢印カーソ
ルキーを押せば現在と同じレベルにおける一つ後の部分
リストへと、それぞれ構造カーソルの範囲を移動させる
。したがって、構造カーソルが第4図(A)のプログラ
ムテキストで(CD)という部分リスト9の範囲を示し
ている状態、すなわち、第4図(B)のリスト構造でコ
ンスセル13を指した状態で、シフトキーと上矢印カー
ソルキーを押すと、コンスセル13の一つ上位レベルに
あるコンスセル19へと指示対象が変化し、それに伴な
って表示画面上での構造カーソルは、CB (CD) 
(EF))という部分リストアの範囲を示すことになる
。また、構造カーソルが範囲9を示している状態で、シ
フトキーと下矢印カーソルキーを押すと。
指示する対象はコンスセル13からコンスセル14へと
変化し、表示画面上での構造カーソルはシンボルCIO
を指すことになる。構造カーソルが部分リスト9を指す
状態でシフトキーと左矢印カーソルキーを押すと、構造
カーソルは部分リスト9からシンボルB8へ移動する。
これは、リスト構造においては、コンスセル13からコ
ンスセル12に指示対象を移動したことに相当する。こ
のようにして、構造カーソルの状態では、シフトキーと
カーソルキーを併用することにより、構造カーソルの指
示範囲を移動・変更することができる。
この機能を利用しながら編集キーによって各種編集操作
を実行すると、後述する手順によって、編集の範囲指定
を容易に行なうことができる。
画面に構造カーソルが示された状態で、シフトキーを押
さずに任意のカーソルキーを押すと、カーソル種別が文
字カーソルに変わり、構造力、−ツルが示していたレベ
ルにおける最前方の文字位置に、文字カーソルが表示さ
れる6例えば、構造カーソルが部分リスト9を指した状
態で、カーソルキーのみを押して文字カーソルへの変更
を行なうと1文字カーソルは左括弧16の下に表示され
る。
同じ水準のリスト構造を一意に指す場所としては、他に
右括弧17あるいはCとDの中間にある空白37などが
あるが、それらの中で最も左にあるものとして左括弧1
6が選択されるわけである。
構造カーソルを利用した編集操作手順の一例を第8図に
示す。これは、第3図の編集作業と同じ内容を構造カー
ソルを利用して実施した場合である。最初の状態(A)
では、文字カーソル38が移動対象となる部分リスト(
(=nO)1)の先頭に位置している。そこで、シフト
キーを押しながらカーソルキーを押すと、(B)に示す
ように、カーソルが構造カーソル39(この例では輝度
反転表示)に変化する6次に移動キーにより移動処理を
指定すると、構造カーソル39で示された範囲が移動対
象として確定する。次にカーソルキーを押すことにより
、カーソルを文字カーソルに変え、それを移動先40に
移動する。そこで実行キーを押すと、(C)のように移
動処理が完了する。
構造カーソルを利用した第8図の操作手順は1文字カー
ソルによる第3図の手順に比べて、移動範囲の末尾位置
を指定するための文字カーソル移動操作と、末尾位置指
示操作とが無くなっており、その分だけ作業効率が改善
されている。途中、カーソル種別の変換操作が2度入っ
ているが、任意のカーソルキー(とシフトキー)を押す
だけの操作であり、その操作の手間は問題にならない。
前述の例は、小さな部分リストを指定する場合であった
が、実際の編集作業では、何行にもわたる部分リストを
指定しなければならないことがある。LISP言語では
右括弧が幾つもまとまっていることが多く、このような
所で処理範囲の末尾位置として右括弧を指定するときに
は、カーソル位置決め操作に手間取る。例えば、 というリストの中で、Eの左にある左括弧に対応した右
括弧を右端の括弧群の中から探すためには、慎重さと若
干の時間とを必要とする。その点、構造カーソルでは、
そのような細部の検討をする必要がないため、!W集対
象が複雑であればあるほど、文字カーソルだけの場合に
比べて編集操作効率の改善効果は大きい。
次に、カーソルの制御過程の詳細を、第1図のフローチ
ャートと第5図のシステム構成図に基づいて説明する。
既に述べたように、ワークエリア251には第4図(B
)のようなリスト構造のプログラムが保存されており、
テキストバッファ254には第4図(A)のような文字
列データとしてのプログラムが保存されている。本エデ
ィタでは、構造カーソルは、ワークエリア中のある部分
リストを指し、文字カーソルは、テキストバッファ中の
ある文字位置を指している。テキストバッファ254で
は、文字カーソル位置の他に、指定された任意の文字位
置の強調表示を指示することができるので、カーソルの
モードが構造カーソルの状態では、後述するように、対
応する部分リストの内容を、ワークエリアからテキスト
バッファに文字列として展開する際に、構造カーソルが
指す部分リスト中の文字列に強調表示の指示を付けるこ
とにより、構造カーソルの表示を制御している。
エディタは、まず、第1図のステップ41がら43に示
すように、CRTに表示する範囲をテキストバッファ2
54から切出し、それをビットパターンに変換した後、
表示バッファ21に転送する。CRTドライバ22は、
その内容をCRT23に表示し、その状態でキーボード
18からの入力を待つ。キーボード18からキーコード
が入力されると、主制御部20は、その内容に応じて処
理を4方向に分岐させる。すなわち、そのコードがカー
ソルキーコードであった場合には1、文字カーソルのた
めの処理を実行すためステップ44に、それがシフトキ
ーと共に押されたカーソルキーコードであった場合には
、構造カーソルのための処理を実行するためステップ4
8に、それが通常の文字キーコードであった場合には、
それをテキストに入れるためステップ53に、またそれ
が編集キーコードであった場合には、該当する編集機能
を実行するためにステップ55に進む6カーソルキーが
押された場合、まず、現在のカーソルのモードを調べ(
44)、それが文字カーソルモードであれば、テキスト
バッファ中の文字カーソル位置を、上下左右の指定方向
に移動する(45)だけである。他方、判定44の結果
、現在のモードが構造カーソルモードであれば、モード
を文字カーソルモードに切替えた(46)後、ワークエ
リア中の構造カーソルが指す部分リストの先頭に対応す
る文字位置をテキストバッファ中に求め、それを新しい
文字カーソル位置とする(47)、その際の処理は、ワ
ークエリア中のリスト構造にもとづいて、テキストバッ
ファ中の文字表現を得るというものであり、LISPの
出力関数(PRINT)と同じ処理機構を利用する。
シフトキーと同時にカーソルキーが押された場合には、
現在のカーソルのモードを調べ(48)、それが構造カ
ーソルモードの場合には、まず、ワークエリア中の部分
リストを指す構造カーソルを、指定方向の部分リストに
移動させる(49)、すなわち、シフトキーと上矢印カ
ーソルキーの場合には、現在のレベルの次の上位レベル
の部分リストに、シフトキーと上矢印カーソルキーの場
合には、現在のレベルの次の下位レベルの先頭にある部
分リストに、シフトキーと左矢印カーソルキーの場合に
は、現在のレベルトと同じレベルにおける一つ手前の部
分リストに、シフトキーと右矢印カーソルキーの場合に
は、現在のレベルと同じレベルにおける一つ後の部分リ
ストに、それぞれ構造カーソルを移動させる。その際に
、指定された方向に部分リストが存在しない場合には、
エラーを警告する。次に、ワークエリアにおける構造カ
ーソル位置に対応したテキストバッファ中の文字列の位
置を求め、それらの文字に対して強調表示を指示する(
52)。この場合の処理も、ワークエリア中のリスト構
造にもとづいて、テキストバッファ中の文字表現(と文
字位置)を得るというものであり、LISPの出力関数
(P RI NT)と同じ処理機構を利用する。他方、
判定48の結果、現在のモードが文字カーソルモードで
あれば、まずモードを構造カーソルモードに変え(50
)、それから、テキストバッファ中の文字カーソル位置
に対応した構造カーソルを、ワークエリア中のリスト構
造の中に位置づける(51)。この際の処理は、ステッ
プ47や52における処理とは反対に、テキストバッフ
ァ中の文字表現からワークエリア中の、リスト構造(の
位置)を得るというものであり、LISPの入力関数(
READ)と同じ処理機構を利用する。構造カーソルの
確定後、テキストバッファにその結果を反映させる(5
2)。
文字キーが押された場合には、テキストバッファ中の文
字カーソル位置に、入力された文字を入れ(53)、そ
れから文字カーソル位置を一文字分進める(54)。
編集キーが押された場合には、挿入、削除等の指定処理
をテキストバッファ及びワークエリアに対して適用し、
その内容を更新する(55)。
以上の各処理が実行された後、更新されたテキストバッ
ファの内容から任意の表示範囲を切出して、CRTへの
再表示が行なわれる(41.42)。
第9図は、他の実施例として、PASCAL言語のプロ
グラムの編集時における画面表示の推移の例を示す。こ
こでは、(A)の画面で、カーソル56が位置している
beginという予約語と、それに対応したend 、
という予約語ではさまれた範囲全体を削除する操作が行
なわれようとしている。
まず、カーソルがbeginという予約語の(先頭文字
すの)場所にあるので、ここでシフトキーとカーソルキ
ーを同時に押すと、カーソルが構造カーソル57に変わ
り、そのレベルでの予約語begin全体を指すように
なる(B)。次に、シフトキーとカーソルキー(上方向
矢印)を押すと、その上位レベルのブロック構造である
begin read(ah);すrite(ah) 
end、の全体58に構造カーソルが移行する(C)。
ここで削除キーを押すと、その時の構造カーソルの範囲
全体が削除される(D)。なお、削除実行後は、構造カ
ーソルが指すべき対象が無くなってしまっているので、
カーソルは自動的に文字カーソルのモードに戻り、削除
されたブロックのあった先頭文字位1!i59に表示さ
れる。
第10図は、LISP言語の場合の第4図に対応する表
現で、第9図に示したPASCAL言語のソースプログ
ラム(A)と、それを構文解析した結果であるリスト構
造(B)とを示す。リスト構造の表現には、LISPの
場合と同様なセルを使用しており、6oはコンスセル、
61はシンボルセル、62はニルである。メモリの中で
、ソースプログラムは、第5図の□テキストバッファ2
54に、また、リスト構造は、ワークエリア251にそ
れぞれ保存されている。この図により第9図の構造カー
ソル制御を説明すると、まず、画面(B)で、シフトキ
ーとカーソルキーが同時に押された段階で、エディタプ
ログラムは、ワークエリア中のリスト構造の中から、b
eginというシンボル63を指すポインタ64を保持
する。これにより、カーソルはbeginという予約語
を指す構造カーソルに変化する。次いで、シフトキーと
上方向矢印カーソルキーが同時に押されると、エディタ
プログラムは、リスト構造を向上きにたどってポインタ
65を保持する。このポインタで指される範囲には、b
eginという予約語からend、という予約語までが
含まれており、画面(C)上では構造カーソル58とし
て表示される。この状態で削除キーが押されると、コン
スセル66の前半部には、ポインタ65の代りにニルが
入れられる。この操作により、ポインタ65で指されて
いたコンスセル67以下の部分は、すべてワークエリア
の中のゴミとして回収されてしまうことになる。また、
表示画面上では、ブロック58が消去され、既に述べた
理由から、カーソルは文字カーソルに戻される。
PASCAL言語の場合のカーソル制御の処理手順は、
第1図に示したLISPの場合と基本的に同じため、詳
細な説明は省略する。
なお、前記両実施例では、文字カーソルモードと構造カ
ーソルモードを、カーソルキーの単独使用と、カーソル
キーとシフトキーとの併用によって識別していたが、こ
れは本発明にとって本質的な点ではない。シフトキーの
かわりに、コントロールキーを使用したり、プログラマ
ブル・ファンクション・キー(PFキー)を使用したり
、特別にキーボードに用意された編集キーを使用しても
差支えない。
また、これらの実施例では、上下の矢印カーソルキーに
リスト構造での下止の移動を割当て、左右の矢印カーソ
ルキーにリスト構造での前後の移動を割当てたが、これ
は、反対の割当て方であっても構わない、前記実施例の
場合は、キーの刻印の上下方向とリスト構造の上下関係
という、概念的な連想性を重視したが、リスト構造をイ
ンデント表示した場合には、同一レベルの部分リストが
縦に頭を揃えて並べられることが多いことから、形態的
な連想性を重視して、同一レベルでの前後の移動を上下
の矢印カーソルキーに割当てた方がむしろ効果的であろ
う。
また、構造カーソルモード、力1ら文字カーソルモード
への切換えの際に文字カーソルを設定する位置は、ブロ
ックの先頭に限られず、他の一定の位置(例えばブロッ
クの末尾)でもよい、あるいは。
押されたカーソルキーが示す方向に従って、先頭。
末尾、上位又は下位ブロックの先頭などの一つに、選択
的に設定されるようにしてもよい。
また、前述の両実施例では、テキストバッファの内容が
コンスセル等を用いた内部表現に変換され、この内部表
現を用いて構造カーソルの制御が行なわれるが、内部表
現の利用は1本発明にとって本質的なものではない。テ
キストバッファの内容、すな゛わち外部表現のみを用い
ても、構造カーソルの制御は容易に実現できる。なぜな
ら、内部表現と外部表現の間には原則として一対一の対
応があり、ブロック構造は、外部表現上の特徴から、マ
シンにより識別できるからである0例えば、ある左括弧
と対をなす右括弧は、テキストバッファの内容を走査し
て、遭遇する左及び右括弧を計数することにより、容易
に検出することができる。
ある予約語17begin11と対をなす予約語11 
en d″′についても同様である。
〔発明の効果〕
以上の説明から明らかなように、本発明によれば、カー
ソルで指示すべき対象に応じて、文字カーソルと構造カ
ーソルが簡単な操作によって効果的に切換えられる。し
たがって、ブロック構造を持つテキストの編集において
、操作手順の簡素化、編集対象の確認の容易化、誤操作
の予防などが達成され、これらを通じて、編集作業の効
率が大幅に改善される。
【図面の簡単な説明】
第1図は本発明によるカーソル制御方法の一実施例のフ
ローチャート、第2図は従来の文字カーソルを用いた編
集操作における表示画面変遷図、第3図は従来の文字カ
ーソルを用いたLISPプログラムの編集操作における
表示画面変遷図、第4図はLISPプログラムの外部表
現と内部表現の対応関係を示す図、第5図は本発明を実
行する計算機システムの一例のブロックダイヤグラム、
第6図は第5図におけるキーボード上のキー配置図、第
7図はLISPプログラムの編集用の画面の−例を示す
図、第8図は本発明を用いたLISPプログラムの編集
における表示画面変遷図、第9図は本発明を用いたPA
SCALプログラムの編集における表示画面変遷図、第
10図はPASCALプログラムの外部表現と内部表現
の関係を示す図である。 18・・・キーボード、19〜22,24.25・・・
データ処理装置、23・・・表示装置、44〜47・・
・カーソルキーが単独で押された時の処理ステップ、4
8〜52・・・カーソルキーと指示キーとが押された時
の処理ステップ。

Claims (1)

  1. 【特許請求の範囲】 1、強調表示機構を有する表示装置と、前記表示装置の
    画面上の強調表示の移動を制御するための一群のカーソ
    ルキー及び前記カーソルキーの機能の修正を指示するた
    めの指示キー並びに編集操作を制御するための一群の編
    集キーを含む複数のキーを有するキーボードと、前記表
    示装置上に論理的なブロック構造を持つ文字列情報を表
    示するとともにその指定された部分を強調表示してその
    部分に指定された編集操作を施すことができるデータ処
    理装置とを備えた情報処理システムにおいて、単一の文
    字位置が強調表示される文字カーソルモードで前記カー
    ソルキーの一つと前記指示キーの双方が押された時に、
    モードをブロック領域が強調表示される構造カーソルモ
    ードに変更するとともに、それまで強調表示されていた
    文字位置を含むブロック領域を強調表示するステップと
    、前記構造カーソルモードで前記カーソルキーの一つが
    単独で押された時に、モードを前記文字カーソルモード
    に変更するステップとを有する、カーソル制御方法。 2、特許請求の範囲1において、カーソルキーの一つと
    指示キーの双方が押された時の前記ステップは、モード
    が前記構造カーソルモードであれば強調表示されるブロ
    ック領域の範囲を押されたカーソルキーに対応する方向
    に変更する代替的ステップを含む、カーソル制御方法。 3、特許請求の範囲1又は2において、カーソルキーの
    一つが単独で押された時の前記ステップは、モードが前
    記文字カーソルモードにあれば強調表示される文字位置
    を押されたカーソルキーに対応する方向に移動する代替
    的ステップを含む、カーソル制御方法。 4、特許請求の範囲1、2又は3において、モードを構
    造カーソルモードから文字カーソルモードに変更する前
    記ステップは、それまで強調表示されていたブロック領
    域中の予め定められた文字位置を強調表示するステップ
    を含む、カーソル制御方法。 5、特許請求の範囲1、2、3又は4において、前記ブ
    ロック構造はリスト構造により表現される、カーソル制
    御方法。
JP61156145A 1986-07-04 1986-07-04 カ−ソル制御方法 Pending JPS6313097A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61156145A JPS6313097A (ja) 1986-07-04 1986-07-04 カ−ソル制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61156145A JPS6313097A (ja) 1986-07-04 1986-07-04 カ−ソル制御方法

Publications (1)

Publication Number Publication Date
JPS6313097A true JPS6313097A (ja) 1988-01-20

Family

ID=15621313

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61156145A Pending JPS6313097A (ja) 1986-07-04 1986-07-04 カ−ソル制御方法

Country Status (1)

Country Link
JP (1) JPS6313097A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5554219A (en) * 1994-01-25 1996-09-10 Dowa Mining Co., Ltd. Process for producing single-crystal bulk zinc selenide

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5554219A (en) * 1994-01-25 1996-09-10 Dowa Mining Co., Ltd. Process for producing single-crystal bulk zinc selenide

Similar Documents

Publication Publication Date Title
JPS6290753A (ja) 文書作成装置
JPS5810238A (ja) 情報作成装置
JP2681627B2 (ja) 文書作成編集装置
JPS6313097A (ja) カ−ソル制御方法
JPH0117184B2 (ja)
JPH0128975B2 (ja)
JP3454987B2 (ja) 文書編集装置及び方法
JP2713924B2 (ja) 文書編集装置
JP2657091B2 (ja) 文書作成装置
JPH0250250A (ja) 文書作成装置
JPS63128424A (ja) デ−タ処理方式
JPS6375964A (ja) 表作成方式
JPH024026A (ja) 文書処理装置
JP3048242B2 (ja) 文字入力装置
JPS62145353A (ja) 日本語処理装置
JPS6312062A (ja) 仮名漢字変換装置
JPH0630096B2 (ja) 日本語処理装置
JPH039475A (ja) Cadシステムにおける回路図入力方式
JPH05314098A (ja) 文書作成装置
JPS60221865A (ja) 文書処理装置
JPS61229161A (ja) 文書作成編集装置
JPS61255467A (ja) 機械翻訳システム
JPH0769915B2 (ja) 文書作成装置
JPH03113566A (ja) 文字変換装置
JPH05100811A (ja) 文章作成装置