Macでハイパーテキスト

 Macのキーボードに向かい、あれこれ頭をひねりながら、文章を書く。そんな時に役立つ「ハイパーテキスト機能」をMacで実現する方法をまとめる。

重要2021年5月24日 追記
 MacのOSが「Catalina」以降は、ターミナルで動くシェルの変更が必要である。ハイパーテキスト機能を動かすには、ターミナルで動くシェルを「zsh」から「bash」に変更しなくてはならない。
 ターミナルで動くシェルの確認と変更方法は、「ターミナルの接続」に詳しく記述してある。

Hypertext01

 「ハイパーテキスト」とは、テキスト上の「リンク」から他のファイルなどを操作する仕組みである。図はハイパーテキストのイメージである。

 ハイパーテキスト機能は、Windowsのアプリにもあるが、設定や操作が簡単ではない。「Macでハイパーテキスト」では、指先でのキー操作だけで可能になる。機能も「ファイルを開く」だけではない。編集に役立つ複数の機能があり、使い勝手は格段に優れている。
 「Macでハイパーテキスト」のリンクは次のような文字列である。
 (リンク例)> HyperMac.txt: Macでハイパーテキスト
 「> HyperMac.txt:」がリンク本体である。エディタでは、リンク本体の色が変わる。このリンク本体を含む行または文節を選択して、簡単なキー操作をすると、ハイパーテキスト機能が実行できる。

 例えば、上のリンク行の行頭にキャレットを合わせ、「Control+S」でリンクのある行を選択し、続いて「Command+J」で瞬時にファイル「HyperMac.txt」が開く。ファイルの保存先は、自動的に検索される。マウスを操作してエディタのファイル・メニューから開くのとは比較にならない手早さである。ちなみに、「Control+S」は「controlキー」を押しながら「Sキー」を、「Commnad+J」は「commandキー」を押しながら「Jキー」を押す操作である。テキスト編集の指先をチョイとずらして動かすだけである。ショートカット(近道)という。マウスに手をのばす必要はない。

 リンク先がテキストならエディタ、画像ファイルならプレビュー、フォルダならFinder、WebサイトならSafariでという具合に、リンク先に応じて、OSに事前に設定されたアプリで開く。
 リンク自体は、特別な仕掛けのないピュアなテキストである。

 「Macでハイパーテキスト」では、リンクから次の操作ができる。
 ○リンク先の各種ファイル、フォルダ、Webサイトを開く
 ○リンク形式の文字列から新規のテキスト・ファイルを作る
 ○リンク先のテキスト・ファイルをリンク位置に読み込む
 ○選択部分をテキスト・ファイルに書き出してリンクを置く
 ○Finderで選択したファイルのリンクをテキストにセットする
 ○リンク先のファイルやフォルダを検索し、Finderで表示する
 ○リンク先のファイル名や保存先のフォルダを変更する
 ○リンク先のフォルダ内の項目をリンク形式で一覧表示する
 ○リンク先のテキストを検索し、キーワード情報を表示する

  
 「Macでハイパーテキスト」を動かすために必要な材料は、以下の通りである。
 ○テキスト・エディタ「Jedit Ω」
 ○ターミナル
 ○UNIXのツール(コマンド)

 ターミナルやUNIXのツールは、Macに付属している。
 テキスト・エディタ「Jedit Ω」は、シェアウェアである。他のエディタでは動作しない。
  > http://www.artman21.com/jp/ : アートマン21

 ハイパーテキスト機能は、Macに付属するスクリプト言語で作成する。
 ○アップルスクリプト(AppleScript)
 ○シェルスクリプト(Shell Script)
 スクリプト自体は、OSのバージョンに関係なく動作する。

 動作の仕組みを大ざっぱに表すと下図のようになる。

 エディタで開いてあるテキスト上のリンク情報を「アップルスクリプト」でターミナルに送り、「シェルスクリプト」を起動する。「シェルスクリプト」は、UNIXのツール(コマンド)を動かし、ハイパーテキスト機能を実現する。

 動作に必要なスクリプトは、後でまとめてダウンロードする。

Hyperlinksys

 
 「Macでハイパーテキスト」で扱うデータは、プレーンなテキストである。テキストのエンコーディングは、以下のとおりである。
 ○文字コード「Unicode(UTF-8)」
 ○改行コード「macOS/UNIX(LF)」
 スクリプトは、上のコード形式を前提に作られている。テキストのコード形式はエディタ「Jedit Ω」で設定する。上のコード以外のテキストでは動作しない。

 この後、「Macでハイパーテキスト」の動かし方をまとめる。
 macOSのベースであるUNIXのツールを利用するための環境設定が必要となる。UNIXの初心者には少しややこしいかも知れない。肝心のハイパーテキスト機能が登場するのは後になる。

 次は、「Macでハイパーテキスト」で扱うデータに関連する「フォルダ」と「ファイル」についてまとめる。



フォルダとファイル

 「Macでハイパーテキスト」の動かし方を紹介している。
 データを保存する「フォルダ」についてまとめる。
 ハイパーテキスト機能のためのフォルダには次のルールを設ける。
 ○専用のフォルダを用意し、必要に応じてサブ・フォルダを作る
 ○サブのフォルダの一つに「作業フォルダ」を用意する
 ○フォルダ名はスペースを含まない半角英数字にする
 
(ルール1) 専用のフォルダを用意する
 
Macdeskfolder
 
 図は、ホーム・フォルダ内に作られたフォルダの関係をツリー状に示したものである。この図では、専用フォルダは「書類」フォルダの中に作っているが、ホーム・フォルダ内に「書類」や「ピクチャ」フォルダなどと同列に作ってもよいし、「書類」フォルダ自体を専用フォルダとして利用してもよい。
 図では、「F」マークのついたフォルダがメイン・フォルダであり、その中にデータ保存用のサブ・フォルダが作られている。
 このように一つのメイン・フォルダ内にまとめて構成にする理由は、UNIXのツールで効率的に検索するためである。リンクからファイルを操作するときには、図の「F」フォルダ内を枝分かれしたサブ・フォルダの末端まで検索する。「F」に相当するフォルダが検索のためのポイントとなる。
 ホーム・フォルダ自体を指定することも可能だが、デジカメからダウンロードした大量の画像データなどがあれば、テキスト編集とは関係のないファイルまで検索対象になるので効率が悪い。
 データを保存するサブ・フォルダは、専用フォルダ内に必要に応じて作る。サブ・フォルダには、テキストだけでなく、画像やPDFなど、関連のデータを分類して保存すればよい。
 「Macでハイパーテキスト」の専用フォルダは、既存のフォルダを再構成してもよい。Finderを利用するのが簡単である。また、外付けのHDやUSBメモリに作ることも可能である。ただし、抜き差しを繰り返すUSBメモリでは、Spotlight検索を利用する一部のハイパーテキスト機能に不都合がでるかも知れない。
 ちなみに、「Macでハイパーテキスト」フォルダ内なら、サブ・フォルダ間でのファイルの移動は自由である。リンクをセットし直す必要はない。
 
(ルール2) 専用フォルダ内に「作業フォルダ」を作る
 図では、「W」が作業フォルダである。作業フォルダ内には、索引ファイル、資料ファイル、作業ファイルなどを置く。Macを起動すると、自動的に「ターミナル」というアプリで「作業フォルダ」のファイル一覧を表示する。多くのファイルがあると、一覧性が悪くなる。
 ターミナルについては、後で詳しく述べる。
 
(ルール3) フォルダ名はスペースを含まない半角英数字にする
 全角文字はファイル内容が分かりやすいのは確かだが、現状では、全角文字をうまく扱えないコマンドがある。
 例えば、次のようなファイル名をテキストにリンクとして書き込んでも、UNIXのツールでは検索できない。
     > ダメな file.txt: 使えないファイル名
 全角文字が全てダメなわけではない。原因ははっきりしないが、一部の全角文字の文字コードがからんでいる可能性がある。
 半角スペースを含んだフォルダ名やファイル名も注意が必要である。UNIXでは、半角スペースは「データの区切り」という意味をもつ。スペースの機能をキャンセルするために、半角スペースを含むフォルダ名やファイル名には余分な操作の手間が必要になる。少なくとも、フォルダ名だけは「スペースなしの半角英字」にした方よい。
 この後に登場するスクリプトでは、全角文字や半角スペースを含むフォルダ名やファイル名でも動作するように配慮した。ただし、上の「ダメな file.txt」の例もあるので、一部の機能では不都合の起こる可能性がある。
 
 以下、「Macでハイパーテキスト」のフォルダ名やファイル名についての制限事項である。
 ○ファイルやフォルダ名では、半角英字の大文字と小文字は区別しない。例えば、「TextFile.txt」と「textfile.txt」は、同じものを見なす。
 ○ファイル名やフォルダ名として使えない半角記号がある。
 macOSのベースであるUNIXでは、ファイル名やフォルダ名として使ってはいけない記号がある。半角の「/」や「:」である。これは、フォルダ同士やフォルダとファイルをつなぐ区切り記号と見なされる。「* < ! $ | 」のような記号も、UNIXでは特別な意味を持つ。
 ○ネットのURLとの関連により、ファイルやフォルダ名の先頭に「http、www.、www2」は使用できない。「Macでハイパーテキスト」では、「http、www.、www2」で始まるリンクは、インターネットの「URL」とみて、Safariが起動する。「www.txt、httpsite.jpg、…」のようなファイル名は、Safariが起動してエラーとなる。
 ○テキスト・ファイルには拡張子「.txt」をつける。
 「Macでハイパーテキスト」では、「MacOS.txt、MSDOS.TXT」のように、「.txt」または「.TXT」がついていないファイルは、文字列検索の対象から外すことになる。
 ○テキスト・ファイルには、1行目に見出しを書く。下はその例である。タイトルや年月日などを簡潔に表記する。
 (例)「Macでハイパーテキスト」(作成: 2018.3.24Sat.)
 テキストの1行目は、この後に登場するスクリプトがリンクの見出しとして利用する。
 次は、テキスト上にセットするリンクについてまとめる。
 
 

リンクの形式

 「Macでハイパーテキスト」の動かし方を説明している。
 テキスト上に書き込んだファイル情報を「リンク」という。「ハイパーテキスト」のリンクは「ハイパーリンク」というが、その形式と作成上の注意点についてまとめる。
 
 「Macでハイパーテキスト」のリンクは、特別な仕掛けのないシンプルな文字列である。
(リンクの形式)次の記号でリンク先の文字列を囲む
 ○リンクの開始記号 「> 」 (半角>と半角空白、「」は含まない)
 ○リンクの終了記号 「:」   (半角: 、「」は含まない)
 開始記号と終了記号の間にファイル名やフォルダ名などを記入した文字列がリンクとなる。
 (形式1)標準型のリンク「> リンク先の名前:」
 (形式2)フル表示型のリンク「> パス/リンク先の名前:」
 リンク本体以外のメモなど含んだ行全体がリンクとして機能する。
 リンクへのファイル名などの表記ルールについて説明する。
 ○リンク先のファイルがテキストの場合は、拡張子「.txt」を省略してもよい。もちろん、ファイル本体に拡張子は必要である。
 ○テキスト以外のファイルのリンクには拡張子をつける。
 ○ファイル名に空白を含む場合は、そのまま空白を入れる。ただし、開始記号「> 」と終了記号「:」の間にファイル名以外の空白を入れると、その空白はファイル名の一部と見なされ、結果的に存在しないファイルとなる。リンクの開始記号「> 」や終了記号「:」の前後なら、空白は自由に挿入できる。
 ○開始記号の先にある「>」は複数重ねて使用してもよいが、終了記号の半角「:」は一つのリンク行に複数あってはいけない。全角の「:」ならよい。ただし、URLの場合は別処理となるのでこのルールは適用されない。 
 ○他にリンク行に使用してはいけない記号がある。半角記号「!」と「$」である。例えば、下のようなリンク行では、リンク本体には問題がなくても、メモにある半角記号「!」や「$」が原因でエラーを起こす。
 (例1)> BigTree.jpg: 「びっくり!」するほど大きな樹
 (例2)> BigMoney.txt: ドル($)を大儲け
 UNIXでは、半角「!」は「否定」を表す記号、半角「$」は「変数」を表す記号だが、誤動作の詳しい原因は分からない。
 
 テキストにリンクをセットするには、直接、エディタで書き込んでもよいが、簡単にリンクをセットするための機能を用意してある。
 下図は、テキストにセットした「標準型のリンク」の例である。エディタではテキスト上のリンク本体には色づけされる。
 
Linkform1
 
 テキスト上のリンクは、削除してもリンク先のファイル等に影響はない。また、「Macでハイパーテキスト」フォルダ内であれば、リンク先のファイル等を別なフォルダに移動しても、リンクはそのまま使える。
 
 ○「Macでハイパーテキスト」フォルダ外のファイルは自動検索の対象とならないので、リンクには「パス」を記述する。パスとは、目的のファイルやフォルダへの経路である。Finderの「表示」で「パスを表示」をチェックしてあると、Finderウインドウの下部に次のような表示が出る。
 Macintosh HD▶ユーザ▶MacUser▶ピクチャ▶MacDesk.jpg
 これが、ファイルへのパスである。ただし、上の表示はFinderのものである。Unix流に記述すると次のようになる。
  /Users/MacUser/Pictures/MacDesk.jpg
 ユーザ名の部分は、記号「~」に置き換えてもよい。
  ~/Pictures/MacDesk.jpg、または~/pictures/macdesk.jpg
 ちなみに、「~」は、半角のチルダで、「ホーム」を表すUNIXの記号である。「Macでハイパーテキスト」では、パスを表記する時はこの記号を利用する。ユーザ名を外に表さなくてもいいし、同じリンクを別なMacで利用する場合にも都合がいい。上のパスをリンクとして表すと次のようになる。
  > ~/Pictures/MacDesk.jpg: パスを表示したリンク
  > ~/pictures/macdesk.jpg: パスを表示したリンク
 英字の大文字と小文字は区別しないから、どちらでもよい。
 ○「ピクチャ、ミュージック、ムービー、書類、…」は、リンクの表記には使えない。Finderがフォルダ名を付け替えて表示しているので、「Macでハイパーテキスト」のベースであるUNIXでは通用しない。
 ○ネットのURLは、フル表記が基準である。「Macでハイパーテキスト」では、先頭が「http」や「www.」や「www2」で始まるリンクは、URLとして処理し、「Safari」が起動する。
 下図は、「フル表示型のリンク例」である。
 
Linkform2
 
(注意点)
 ○通常の文章に「> 」と「:」の組み合わせを用いた場合、通常のテキストもリンクの機能を持つ。例えば、> で始まり:で終わるこの行もリンクとなる。行を選択してハイパーテキスト操作を行えば、「で始まり」がファイル名と認識される。この行を選択してハイパーテキスト機能のキー操作すると「ファイルは存在しない」エラーが出る。もちろん、ハイパーテキスト操作を行わなければ問題はない。
 ○ハイパーテキスト機能を実行するには、リンク本体を含む行や文節を選択してからキー操作をするが、テキスト全体を選択(Command+A)して実行した場合は問題である。ターミナルに送られるテキスト量が膨大になり、ターミナルがエラーを起こす。
 
 次は、「Macでハイパーテキスト」のメインのツールであるエディタ「Jedit Ω」の設定についてまとめる。
 
 

エディタの設定

 「Macでハイパーテキスト」の動かし方を説明している。
 メインのツールであるエディタの設定についてまとめる。エディタは、シェアウエア「Jedit Ω」である。
    > http://www.artman21.com/jp/: アートマン21
 
 「Macでハイパーテキスト」のファイル形式は「プレーンテキスト」である。以下は、できるだけシンプルにするための設定である。その他は、ユーザの好みに合わせて設定可能だが、設定項目が多いので全てをチェックしたわけではない。
(環境設定1)開く
 ○「起動時オプション」は「なにもしない」
 
(環境設定2)保存
 ○「プレーンテキストの時は拡張子".txt"を追加」
 
(環境設定3)エンコーディング
 ○「ファイルを保存するとき」は「Unicode(UTF-8)」
 ○「改行タイプ」は「macOS/Unix(LF)」
 
(環境設定4)書類タイプ
 ○「表示」では「ウインドウ表示、ウインドウ幅に合わせる」
  「不可視文字の表示」は「すべてを隠す」
 ○「書式」では「プレーンテキスト」、「横書き」
  ※エンコーディングは、「環境設定3」と同じ
 
Hypermacset1_2
 
(環境設定5)カラーリング
 テキスト上のリンクを他の文字とは異なるカラーで表示するために必要な設定である。
 ○セットメニューの下部の+ボタンをクリック
 ・タイトルに「Text」と入力 
 ・「正規表現」に「\.txt$|\.TXT$」を入力
  入力するのは「 」の中の記号だけである。
 ・「説明」欄に「HyperLink」と入力、(A=aとDat)にチェック、「開始表現」に「(> )」 、「終了表現」に「:|\n」を入力する。入力するのは「 」の中の記号だけである。「\」を入力するには、「option」キーを押しながら「¥」キーを押せばよい。
 ・「カラー」は、ユーザの好みに応じて設定する。
 
(環境設定6)メニューショートカット、キーバインド
 エディタのショートカット操作で「ハイパーテキスト」機能を動かす。
 「commandキー、controlキー」と文字キーの組み合わせでショートカットを設定する。ショートカットは、ユーザ環境に合わせて変更可能である。
 ショートカットに使用するキーについては、OSやエディタの初期設定との調整が必要である。「macOS」では、カーソル移動からファイル操作まで、アプリ間で共通のショートカットが設定されている。よく使うOSのショートカットとまぎらわしくならないように設定する必要がある。OSの主なショートカットは、下に参考として載せてある。
 使用しないエディタの初期設定のショートカットは削除しておいた方がよい。ショートカットの設定や削除の方法は、「Jedit Ω」の「環境設定」の「メニューショートカット」と「キーバインド」に説明がある。
 ○以下は「ハイパーテキスト機能」に共通のショートカットである。
  ・「キャレットをパラグラフの先頭へ」
  ・「選択部分を1行下まで拡大/縮小する」
 「macOS」では、「キャレットをパラグラフの先頭へ」には「^A」が初期設定されている。「^A」は「Controlキーを押しながらAキーを押す」という操作である。「選択部分を拡大…」は、リンクのある行を選択する操作なので「Controlキー」と操作しやすい文字を組み合わせる。ちなみに、「Control+S」に設定して利用している。ちなみに、「S」は「select」の意味である。ショートカットに使用する文字は、操作を連想する文字にするのが自然である。
 
 以上で、エディタ「Jedit Ω」自体の設定は終わる。
 この後に登場するハイパーテキスト機能へのショートカットの設定は、エディタ「Jedit Ω」のメイン・メニューの「スクリプト」(巻紙マーク)で行う。手順は、登録時に説明する。
 
 最後に、エディタに関わるmacOSの重要な設定がある。
 テキスト・ファイルを開くデフォルトのアプリの設定である。「macOS」では、初期設定は「テキストエディット」になっている。これを「Jedit Ω」に変更する。
(手順1)Finderで、任意のテキスト・ファイル(.txt、.TXT)をセレクトして、ショートカット操作「Command+I」をする。または、トップメニュー「ファイル」の「情報を見る」をクリックする。
(手順2)上の操作で表示されたウインドウの項目「このアプリケーションで開く」をクリックして「Jedit Ω」を設定する。その後で、下にある「すべてを変更」ボタンを押す。「Jedit Ω」が「(デフォルト)」として設定される。
 
 次は、OSの「端末」、「ターミナル」の設定に入る。
 
(参考)便利な「macOS 」のショートカット
 SafariやMailなど、Macのアプリのテキスト編集場面で共通に使えるので便利である。エディタ「Jedit Ω」にもこのショートカットが初期設定されてある。
<Controlキーのショートカット>
 Control+B カーソルを1文字分左に移動する(←)
 Control+F カーソルを1文字分右に移動する(→)
 Control+P カーソルを1行上に移動する(↑)
 Control+N カーソルを1行下に移動する(↓)
 Control+A カーソルを行頭に移動する
 Control+E カーソルを行末に移動する
 Control+H カーソルの左側の1文字を削除する(BS)
 Control+K カーソルから行末までを削除する(バッファに保存)
 Control+Y バッファ内の文字をカーソル位置にペーストする
 Control+O 改行する(RET)
<Commandキーのショートカット>
 Command+X カット
 Command+C コピー
 Command+F 検索
 Command+R 置換
 Command+S 保存する
 Command+W 閉じる
 Command+Q アプリを終了する
 Command+Tab アプリを切り替える
 
 

ターミナルの設定

 「Macでハイパーテキスト」の動かし方を説明している。
 エディタから送ったリンク情報からハイパーテキスト機能を動かす。リンク情報を受け取るのが「ターミナル」というアプリである。ターミナルとはOSの「端末」という意味である。下図のMacのスクリーンの左半分が動作している状態のターミナルのウインドウである。エディタから送ったリンク情報がターミナルに表示されている。ターミナルは、ハイパーテキスト機能を動かす作業台である。
 
Terminal
 
 まず、ターミナルの外観などの基本的な設定を行う。
(設定1)「ターミナル」をDockに登録する。
 ターミナルは、アプリケーション・フォルダの中に隠れている。「ユーティリティ」フォルダにある「ターミナル.app」を、Dockにドラッグ・アンド・ドロップする。
 Dockには黒いテレビ画面のようなアイコンが置かれる。アイコンをクリックするとターミナルが起動し、デスクトップに小さなウインドウが現れる。
 そのウインドウに、キーボードからOSへの指令を打ち込んで実行させる。OSへの指令は「コマンド」という。コマンドは、特定の仕事をこなす小さなツールである。ファイルの一覧を表示したり、ファイルを検索したり、コピーしたりなど、数多くのツールがあり、それらのツール名がコマンドである。「macOS」のベースはUNIXだから、MacにはUNIXの数多くのコマンドが組み込まれている。
 コマンドを試してみる。
 ターミナルをアクティブにすると、キーボードから文字を入力できる。次の文字を入力してリターンキーを押す。文字は半角英字である。
   cd
   ls
 「cd、ls」がコマンドである。「Movies、Public、Downloads、…」のように、ホーム・フォルダの項目が表示される。普段、Finderで見慣れているフォルダ名のはずだが、全て英字である。
 この後登場するハイパーテキスト機能は、いろいろなコマンドを組み合わせたプログラムによって動く。プログラムは「シェルスクリプト」という。
 ターミナルの設定を行う。
 
Hypermacset2
 
(設定2)ターミナルの外観や表示フォントを設定する。
 ターミナルのウインドウの大きさや配色を調整してデスクトップになじませる。また、表示する文字のフォントも見やすく設定する。
 ○ターミナルのメインメニューの「環境設定」を開く。
 ○「環境設定」メニューの「プロファイル」を選ぶ。
 ・左側のサンプル画面の中から好みの一つをクリックして選択し、サンプル画面の下にある歯車マークをクリックする。「プロファイルを複製」をクリックし、ウインドウ名(例:MacDesk)を入力する。
 ・複製した画面を選択すると、プロファイルを編集できる。
 ○まず、プロファイルのメニュー「テキスト」で文字を設定する。
 ・フォントの「変更」ボタンを押して、フォントを選び、サイズを設定する。
 ・文字のカラーは「テキスト」という項目で設定する。
 ・「背景」の「カラーとエフェクト」で、色や透明度を設定する。ウイドウの背景色は、デスクトップ画面になじむ色調に整える。デスクトップが透けて見えるように透明度を高めると、デスクトップとの一体感は高まる。個人の好みで設定する。
 ○プロファイルのメニュー「ウインドウ」の設定する。
 ・「タイトル」は、フォルダ名を表示するので空欄のままがいい。
 ・「ウインドウサイズ」で、画面の大きさを設定する。ウインドウの大きさは、表示する文字の見やすさとの兼ね合いで決める。
 表示状態を確認するために、次のコマンドをターミナルにタイプする。文字やスペースは、すべて半角英字記号である。
      cd /apllications
  ls -l|cat -n
 「l」は半角英小文字のエルである。番号付きファイル一覧が、折り返されずに表示されればよい。
 ○プロファイルのメニュー「詳細」で文字コードを設定する。
 ・「言語環境」の「テキストエンコーディング」を「Unicode(UTF-8)」とする。
 ・下部にある「起動時にロケール環境変数を設定」を’ON’にする。
 ○アレンジが終わったら、画面をデフォルトに登録する。
 ・アレンジした画面を選択状態にして、サンプル画面の下にある「デフォルト」ボタンを押す。アレンジした画面の下に「デフォルト」と表示される。
 以上で、「プロファイル」の設定は終わる。
 
(設定3)ターミナルが起動した時に開く画面を設定する。
 ○「環境設定」メニューの「一般」をクリックする。
 ・「起動時に開く」の「次のプロファイルの新しいウインドウ」から、デフォルトにしたプロファイル名(例:MacDesk)を選ぶ。
 これで、ターミナルを起動したとき、自動的にアレンジしたウインドウが開く。
 ・「環境設定」を閉じ、ターミナルのメニュー「ターミナルを終了」で終了する。
 ・Dockのターミナル・アイコンをクリックして再び起動する。アレンジしたウインドウで開くことを確認する。
 以上で、ターミナル本体の設定は終わる。
 
(設定4)Mac起動時に「ターミナル」が自動的に起動するように設定する。
 ○Macのトップ・メニューから「システム環境設定」の「ユーザとグループ」を開く。
 ・「ログイン項目」を開く。
 ・項目メニューの下にある「+」ボタンを押す。
 ・「ユーティリティ」フォルダ内にある「ターミナル.app」を登録する。
 ○ログイン項目に「ターミナル」が登録されたこと確認する。
 なお、ログイン項目に登録しないで、Dockから「ターミナル」を起動してもよいが、「Macでハイパーテキスト」ではターミナルは必須のアプリである。
 
 以上で、ターミナル自体の設定は終わるが、ターミナルの陰で動くシェル「bash」というプログラムの設定が必要である。シェルの設定は、スクリプトをダウンロードした後で行う。
 次回は、「Macでハイパーテキスト」の「アップルスクリプト」と「シェルスクリプト」を一括ダウンロードして、指定のフォルダに保存する。
 
 

スクリプトのダウンロード

 ハイパーテキスト「Macの仕事机」の動かし方を説明している。
 ハイパーテキスト機能を動かす「アップルスクリプト」と「シェルスクリプト」を一括してダウンロードし、指定のフォルダに保存する。
 
(手順1)スクリプトをダウンロードする。
 
 
(手順2)ダウンロードしたスクリプトを確認する。
 ○Finderで「ダウンロード」フォルダを開く。フォルダ「HyperText_JeditOmega」が作成されていることを確認する。
 ○Finderでダウンロードしたフォルダを開くと、「binScripts、JeditOmegaScripts」の二つのサブフォルダがある。各フォルダにはハイパーテキスト機能のスクリプトが保存されている。
 
(手順3)ダウンロードした「binScripts」フォルダ内のスクリプトを保存するためのフォルダを「ホーム」フォルダに作成する。
 ○Finderで「ホーム」フォルダを開き、メニュー「ファイル」から「新規フォルダ」を選び、「bin」という名前のフォルダを新規に作る。フォルダ名は、スクリプトで利用するので「bin」でなくてはいけない。
 
Copyfolder
 
(手順4)ダウンロードした「binScripts」フォルダ内のスクリプトを全て新たに作成した「bin」フォルダにコピーする。Finderでダウンロードした「binScripts」フォルダを開き、フォルダ内のファイルを「全て選択」して、新たに作成した「bin」フォルダにコピーすればよい。
 ハイパーテキスト機能を実行するのは、「bin」フォルダ内のスクリプトである。これらは、エディタから呼び出されて動くので、ユーザが操作する必要はない。「bin」フォルダには、補助動作をするスクリプトも保存されていて、これらはメインのスクリプトから呼び出されて動作する。「bin」フォルダ内のスクリプトは、ファイル名を変更したり、削除してはいけない。
 
(手順5)ダウンロードした「JeditOmegaScripts」フォルダ内のスクリプトは全て「Jedit Ω」の「scripts」フォルダにコピーする。
 ○「Jedit Ω」を起動し、トップメニューの巻紙マークをクリックする。スクリプトのメニューが表示されるので、下部にある「スクリプトフォルダを表示」をクリックする。
 ○Finderでダウンロードした「JeditOmegaScripts」フォルダ内にある全てのスクリプトを上で開いた「scripts」フォルダにコピーする。
 ○コピーされたスクリプトを確認するには、「Jedit Ω」をアクティブにし、トップメニューのスクリプトメニュー(巻紙マーク)をクリックする。コピーしたスクリプトの一覧が表示されればよい。
(参考)直接、Finderで「Jedit Ω」の「Scripts」を開くには、「ライブラリ」フォルダを開かなくてはならない。Finderのトップメニューの「表示」から「表示オプション」を開き、下部にある「"ライブラリ"フォルダを開く」にチェックを入れる。この操作をしないと「ライブラリ」フォルダはFinderに表示されない。「ライブラリ > Applecation Suport > JeditOmega > scripts」と順にフォルダを開き、「scripts」フォルダにダウンロードした「JeditOmegaScripts」内のファイルをコピーする。
 
 以上の作業により、必要なスクリプトの保存は終わる。実際の動作は、シェルの設定が終わった後で確かめる。 
 次は、設定の終わった「ターミナル」をMacとつなぐためにシェル「bash」というプログラムの設定を行う。
 
(備考)Finderでスクリプトへのマウス操作に注意
 Finderで表示してあるファイルをマウスでダブルクリックすると、ファイルが開く。テキストならエディタ、画像ならプレビューで開く。
 ○アップルスクリプトは、スクリプトエディタが起動してスクリプトの元ファイルを表示する。
 ○シェルスクリプトは、シンプルなテキストファイルであるが、実行権という特性があるので、新たにターミナルのウインドウを開いて動作する。「シェル」の設定が終わっていないと、ターミナルにエラーが表示される。
 
 

ターミナルの接続

 「Macでハイパーテキスト」の動かし方を説明している。

 外観などの設定が終わったターミナルを実際に活用するにはシェル「bash」というプログラムの設定が必要である。設定は、必要な事項をファイルに書き込んで行う。少し分かりにくいかも知れないが、「ハイパーテキスト」機能を動かすためには欠かせないインフラ整備である。

 

重要ターミナルで動くシェルを「bash」に設定する。 ※ 2021年5月24日 追記

 MacのOSが「Catalina」以降は、ターミナルで動くシェルは「zsh」が初期設定となっている。ハイパーテキスト機能を動かすには、ターミナルで動くシェルを「zsh」から「bash」に変更しなくてはならない。
 まず、ターミナルで動いているシェルが何かを確認するために、次のコマンドを打ち込んでみる。
   echo $SHELL
 ターミナルに「/bin/bash」と表示されたなら、下の(手順1)の作業に移る。もし、「/bin/zsh」と表示されたなら、ターミナルで動くシェルを「bash」に変更しなくてはならない。
 ターミナルに次のコマンを打ち込んで、シェルを変更する。
   chsh -s /bin/bash
 ユーザのパスワードの入力を要求される。
 終わったら、ターミナルを再起動して、「echo $SHELL」を打ち込んで、「/bin/bash」と表示されるか確かめる。


(手順1)設定事項をファイルに書き込み、保存する。

 前回、スクリプトをコピーした「bin」フォルダをFinderで開き、フォルダ内にある「bash_profile.txt」をエディタで開く。テキストにある「<設定例1~2> ……」の部分をユーザの環境に合わせて変更する。それ以外の部分は変更しない。<設定例>の項目には、あらかじめ設定例が記述してある。ユーザの環境に合わせてエディタで変更すればよい。

 <設定例1> 「Macでハイパーテキスト」の専用フォルダをスクリプトで検索するためのパスを設定する。

 ○下は、専用フォルダを「MacDesk」というフォルダ名で設けた場合の記述例である。
 「書類」フォルダ内に設けた場合
   export FPATH=$HOME/documents/macdesk

 「ホーム」フォルダ内に専用フォルダを設けた場合
   export FPATH=$HOME/macdesk

 「書類」フォルダを専用フォルダにした場合
   export FPATH=$HOME/documents

 ○ユーザの環境に合わせて設定することになるが、「export FPATH=$HOME/」に続けて専用フォルダへのパスを記述する。「書類、ピクチャ、ムービー、…」のように、Finderに日本語で表示されるフォルダ名は使えない。

 ○「ホーム」フォルダを含めて、フォルダ名にスペースを含んでいる場合は、スペースが区切りと見られ、エラーとなる。半角「" "」で囲まなくてはならない。例えば、上記のフォルダ名にスペースが含まれているなら、次のように記述する。
    export FPATH="$HOME"/documents/macdesk
 または、全体を半角「" "」で囲んでもよい。
      export FPATH="$HOME/documents/mac desk"

 以後、フォルダ名にスペースを含む場合は、「" "」で囲むが、このようにスペース入りのフォルダ名の扱いには注意を要するので、フォルダ名にはスペースを使わない方がよい。

 <設定例2> 「Macでハイパーテキスト」フォルダ内に「作業フォルダ」を設けるが、「作業フォルダ」へのパスも設定しておく必要がある。   作業フォルダ名を「WorkDesk」とした場合は変更しなくてもよい。
   export WDSK=$FPATH/workdesk
 独自の作業フォルダ名を設定した場合は、「export WDSK=$FPATH/」に続けて作業フォルダ名を記述する。

Bashprofile


 <注意> これまでに登場した「$HOME、$FPATH、$WDSK」は、環境変数という特別な変数である。ハイパーテキスト機能のスクリプトに記述されて、セットされたパスを利用する。

 ○「$HOME、$FPATH、$WDSK」の変数名を変更してはいけない。環境変数「$HOME」はシステムで自動的に設定される。

 ○「export PATH=$PATH:~/bin」も環境変数「$PATH」にスクリプトを保存した「bin」フォルダを追加登録している。この部分も変更してはいけない。

 

 

 

 

 

 以上で、ユーザの環境に合わせてターミナルを使えるようにするための設定を行った。

 保存する前に、「# == <設定例1>……… ==」のような、コメント行は削除する。図は、保存状態になった変更後のファイルの例である。一部、カラーが変わっているが関係はない。確認したら、一旦、「bash_profile.txt」を保存する。


重要「環境設定ファイル」として保存する手順  ※ 2021年6月23日 追記
(手順2)保存した「bash_profile.txt」を開き、ファイル名と保存先を変更して保存し直す。

 ○ターミナルの環境設定ファイル名は「.bash_profile」である。ファイル名の先頭は「.」、拡張子「.txt」はない。このファイル名は特殊であり、Fiderでは変更できない。また、「Jedit Ω」の「ファイル / 名称変更」でも保存できない。

 ○(方法ターミナルにUNIXのコマンドをタイプしてファイル名を変更する。

 まず、編集の終わった「bash_profile.txt」を「bin」フォルダから「ホーム」フォルダにコピーする。続いて、ターミナルに次の文字を打ち込み、「ホーム」フォルダを操作対象にする。ターミナルに打ち込む文字は半角である。
   cd
 続いて、ターミナルに次のコマンドを打ち込む。区切りのスペースは半角である。
       mv  bash_profile.txt  .bash_profile
 次のコマンドなら、「bash_profile.txt」は残り、新たに「.bash_profile」が作成される。
   cat  bash_profile.txt  >  .bash_profile

 ○「.bash_profile」は、隠しファイルであり、Finderには表示されない。エディタ「Jedit Ω」のファイル・メニュー「開く」で表示されるウインドウの下部の「オプション」を開き、「隠しファイルも表示する」にチェックを入れておけば、エディタのリストに表示される。設定を変更したり、追加する時は、上の操作をすれば、エディタで編集できる。その場合、新たに「.txt」は付加されない。
 

 以上で、ターミナルの設定は終わる。続いて、設定が正しいかどうか、ターミナルの動作テストを行う。

 

Bashprofilesave_2


(手順3)「ホーム」フォルダに「.bash_profile」を保存したら、ターミナルを終了し、再起動する。設定が正しければ、ターミナルに「作業フォルダ」内のファイルの一覧が番号付きで表示される。ファイルがなくても、次の年月日データが表示される。
  WorkDesk:  2021年 05月 24日(月)16時11分

 もし、上のような状態でターミナルが起動しない場合は、設定が正しくないか、「bin」フォルダのスクリプトが動いていないことになる。
 次のようなエラーがターミナルに表示されることがあるかも知れない。
  osascript: /…/bin/macwork.scpt: No such file or directory
 「.bash_profile」の記述を確認し、「bin」フォルダが「ホーム」フォルダ内に作られ、スクリプトが保存されているかを確認する。

 以下は、ターミナルが正常に動いた場合の動作テストである。
 ユーザの環境に合わせて、「.bash_profile」に書き込んだ設定を確認する。


(手順4)ターミナルの設定のチェックを行う。
 ○ターミナルをアクティブにし、次の半角英字記号を打ち込んでみる。
   open $FPATH
 「Macでハイパーテキスト」の「専用フォルダ」が、Finderで開く。
   open $WDSK
 「Macでハイパーテキスト」の「作業フォルダ」が、Finderで開く。
 もし、ターミナルにエラーメッセージが表示されたり、別なフォルダが開いたなら、「.bash_profile」の環境変数の設定に誤りがあることになる。
 ○ターミナルをアクティブにし、次の半角英字を打ち込んでみる。
   cd
 ターミナルのカーソル表示が「ホーム」フォルダ表す「~」に変わる。
 続いて、次の文字を打ち込む。
   c
 「作業フォルダ」に戻り、ターミナルの画面はクリアされて、カーソル表示が「作業フォルダ」名に変わる。フォルダ内にファイルがあれば、その一覧が番号付きで表示される。次のような表示も出る。
  WorkDesk:  2021年 05月 24日(月)16時18分

 以上が、ターミナルの動作テストである。
 ターミナルは「Macでハイパーテキスト」の作業台である。確実に動作している必要がある。

 次回は、「Macでハイパーテキスト」のメイン機能であるハイパーテキスト機能をエディタに登録する。

 

 

 

 

 

ハイパーテキスト機能を動かす

 「Macでハイパーテキスト」の動かし方を説明している。
 エディタ「Jedit Ω」からハイパーテキスト機能を動かしてみる。
 
(手順1)「Jedit Ω」の「scripts」フォルダにコピーしたスクリプトを動かして、テキストにリンクをセットする。「ターミナル」が開いて、確実に動作していることが前提である。
 ○エディタ「Jedit Ω」で新規のテキストを開く。
 ○リンクをセットする行の行頭にキャレットを移動する。
 ○Finderを開き、「Macでハイパーテキスト」フォルダ内にある任意のサブ・フォルダを選択する。
 ○「Jedit Ω」をアクティブにし、スクリプトメニュー(巻紙マーク)をクリックしてスクリプトの一覧から「ハイパーPut」をクリックする。
 ○テキストのキャレット位置に下のようなリンクが書き込まれる。
  (例)> WorkDesk: - folder -
 エディタの「カラーリング」が設定されていれば、リンク本体が色付けされる。
 ○ターミナルには、アップルスクリプトから送られた情報が表示される。
 
Hyperputjump
 
(手順2)「Macでハイパーテキスト」のメインの機能「ハイパーJump」を動かしてみる。
 ○エディタをアクティブにし、上の(手順1)で作成したリンク行を選択する。
  「キャレットを行頭へ(Control+A)、行を選択(Control+S)」
 ユーザによって、ショートカットの設定は異なる場合があるが、「Macでハイパーテキスト」の動作に必須のショートカットである。
 ○「Jedit Ω」のスクリプトメニューを開き、「ハイパーJump」をクリックする。リンク先のフォルダがFinderで開いたら、ハイパーテキスト機能は正常に動いていることになる。
 ○ターミナルには、送られたリンク情報が表示される。
 上の操作を「Macでハイパーテキスト」フォルダ内のテキストや画像のファイルに対してもテストしてみる。テキストの場合は1行目に見出しが書き込まれていれば、リンクに表示される。 
 
 もし、上の機能が実行できない場合は、これまでの設定を確認する必要がある。アップルスクリプトは、アバウトなところがある反面、気むずかしいところもある。とりあえず、以下の操作を行って動作テストをする。
 ○アップルスクリプト
 エディタの「scripts」フォルダをFinderで表示し、「ハイパーPut」をダブルクリックする。「スクリプトエディタ」が起動し、スクリプトのリストを表示する。「スクリプトエディタ」のツールバーの「ハンマー」マークをクリック(コンパイル)して、スクリプトを保存し直す。同様に、「bin」フォルダ内にあるアップルスクリプト「JeditPaste.scpt」もコンパイルして、保存し直す。
 ○シェルスクルプト
 シンプルなテキストであるが、「実行権」という特性を与えてある。その特性が失われていないか、次のコマンドをターミナルにタイプしてみる。
  ls -l ~/bin/hyperput 
 ターミナルに、次のような表示がでる。
    -rwxr-xr-x@ 1 macuser  staff  1224  3 24 10:49 Users/…/hyperput
 最初「-rwxr-xr-x」に、「x」が三つ揃っているか確かめる。もし、「x」がない場合は、ターミナルで次のコマンドを実行する。
  chmod a+x ~/bin/hyperput
 ○操作や設定によるエラーは、ターミナルに表示されるエラーメッセージを参考に対応することになるので、ここでまとめて説明することはできない。なお、ターミナルに表示されるエラーが下のような場合は、スクリプトからメッセージであり、スクリプトは動作している証拠である。
 (スクリプトからのエラー例)Err2: -- no linked item --
 
 以下は、正常に動いた場合の対応である。
 ○「Jedit Ω」のスクリプトメニューを表示し、「スクリプト設定パネル」をクリックすると、スクリプトにショートカットキーを設定することができる。エディタで表示される操作方法の説明に従って設定すればよい。ちなみに、「ハイパーPut」には「Control+Command+P」、「ハイパーJump」には「Command+J」を割り当てると、機能名と操作キーが一致してわかりやすい。ちなみに、「Command+P」は「印刷」のショートカットであるが、誤って操作したらキャンセルすればよい。
 ○スクリプトへのショートカットの割り当てに特別な制限はないが、OSやエディタの初期設定と競合しないようにする必要がある。
 ○ショートカットを割り当てたら、上の「手順1」と「手順2」のスクリプトを動かす操作をショートカットで行なって、動作を確かめる。
 
 次は、基本となるハイパーテキスト機能の登録と使い方についてまとめる。
 
(備考)ターミナルのウインドウは、Dockに隠してもハイパーテキスト機能は実行できる。ただし、ターミナルは、実行経過やエラーメッセージなどの有用な情報の表示窓である。
 
 

ハイパーテキストの基本操作

 「Macでハイパーテキスト」の動かし方を説明している。
 これまでに取り上げたハイパーテキスト機能の使い方についてまとめる。繰り返しになるが、以下のショートカットは、ハイパーテキスト機能に共通のエディタ操作である。
 ○キャレットをパラグラフの先頭へ(Control+A)
 ○選択部分を1行下まで拡大/縮小する(Control+S)
 ショートカットのキーは、ユーザにより変更が可能である。設定は、エディタ「Jedit Ω」のスクリプトメニュー「スクリプト設定パネル」をクリックして設定する。この後の説明は、上のキー設定を前提に説明する。
 
 以下、これまでに動かしたハイパーテキスト機能についてまとめる。
(名称)ハイパーPut
(機能)テキストにリンクをセットする
(操作)Control+Command+P
 ○リンクをセットしたいファイルやフォルダをFinderで選択する。Commandキーを押しながらクリックすると複数のファイルやフォルダが選択できる。
 ○テキスト上のリンクをセットする位置にキャレットを移動して、エディタで上のショートカット操作をする。
 ○リンク先がテキストなら、ファイルの先頭行が見出しとしてリンクに表示される。拡張子「.txt」はリンクからは省略される。
 
(名称)ハイパーJump
(機能)リンク先のファイルやフォルダを開く
(操作)Command+J
 ○テキストのリンク行を選択(Control+S)してから、上の操作をする。 
 ○リンクを選択しないで「Command+J」操作をすると索引ファイル「Index1.txt」が開く。「作業フォルダ」に索引ファイル「Index1.txt」がないと何も実行されない。索引ファイルについては、後で説明する。
 ○「Macでハイパーテキスト」フォルダ内にリンク先と同名のファイルが複数あると、リンク形式の同名ファイル一覧がエディタで表示される。この中から、再度、「ハイパーJump」の操作をして必要なファイルを開く。同名ファイル一覧は、「作業フォルダ」にファイルとして出力されているので、必要に応じて開くことができる。ファイル名は「zFile.txt」である。
 
Usehyperlink
 
 新たなハイパーテキスト機能を、もう一つ、上の形式で示す。
(名称)ハイパーNew
(機能)リンクから新規のテキスト・ファイルを作成する
(操作)Control+Command+N
 ○索引となるテキストに新規に作成するテキストのファイル名と見出しをリンク形式で書き込む。
    > HyperNew: (例)「ハイパーNew」の使い方
 ○このリンク行を選択(Control+S)し、上のショートカット操作をする。確認のダイアログが表示されるので、確認したらリターンキーを押す。
 ○続いて、「保存するフォルダを指定」するウインドウが表示されるので、保存先のフォルダを選択してリターンキーを押す。残念ながら、この操作ではマウスを使用する。中止するには、ダイアログ表示中に「ESCキー」を押せばよい。
 ○以上の操作により、1行目に見出しが書き込まれた新規ファイルがエディタで開く。
 ○「Macでハイパーテキスト」の専用フォルダ内に同じ名前のファイルがすでに存在しているとエラーになり、ターミナルに同名ファイルの一覧が表示される。リンクのファイル名を変えて、再度、上の操作を行う。
 
 次回は、ハイパーテキスト機能に欠かせない「作業フォルダ」と「索引ファイル」についてまとめる。
 
 

作業フォルダと索引ファイル

 「Macでハイパーテキスト」の動かし方を説明している。
 「作業フォルダ」と「索引ファイル」についてまとめる。「作業フォルダ」は常用のファイルを保存するフォルダで、「索引ファイル」はリンクをまとめたテキストである。
 
○作業フォルダ
 「作業フォルダ」は、「Macでハイパーテキスト」フォルダ内にある特別なフォルダである。Macを起動すると、「作業フォルダ」のファイル一覧がターミナルに表示される。「作業フォルダ」のパスは、シェルの設定ファイル「.bash_profile」で環境変数「$WDSK」に登録され、ハイパーテキスト機能のスクリプトで参照される。
 「作業フォルダ」には、常用のファイルを置く。索引ファイル、資料やメモのファイルなどである。よく利用する資料は「資料ファイル」として、また、メモ用が必要なら「メモファイル」を用意すればよい。
 ハイパーテキスト機能のスクリプトも実行結果のファイルを作業フォルダに出力する。
 「作業フォルダ」内のファイルは、テキストを編集しながら、エディタから「マイ・コマンド」で開くことができる。「マイ・コマンド」については、後で詳しく述べる。
 
Workindex
 
○索引ファイル
 「索引ファイル」は、ファイルやフォルダのリンク集である。よく利用するファイルやフォルダをリンクにして分類・整理してまとめておく。
 総合索引「Index1.txt」と「サブの索引」がある。「総合索引」は、エディタで最初に開くファイルであり、「サブの索引」や常用ファイルやフォルダのリンクを登録する。総合索引「Index1.txt」は、次の方法で簡単に開くことができる。
  1.ターミナルにマイ・コマンド「p」をタイプ
  2.エディタをアクティブにして「Command+J」
 総合索引「Index1.txt」はスクリプトに記述されているので、ファイル名は変更できない。また、必ず「作業フォルダ」に置かなければならない。
 「サブの索引」は、分野別、年別など、必要に応じて用意する。ファイル名は適当に決めてよい。
 新規作成ファイル専用の「索引ファイル」を用意するとよい。リンクを書き込み、そのリンクからハイパーテキスト機能「ハイパーNew」でファイルを作成する。ファイル名は適当に決めてよい。
 「総合索引」のリンクから、サブ索引や編集中のファイルを開いて作業を始める。「索引ファイル」にはテキストばかりではなく、資料の画像やPDF、Webサイトのリンクも登録できる。リンクの作成は、前回説明した「ハイパーPut」や、次に取り上げる「ハイパーLs」機能で簡単にできる。「索引ファイル」は、ファイルの管理にも便利である。
 
○テキストの見出し
 「Macでハイパーテキスト」で扱うテキスト・ファイルは、1行目に見出しを書く。下はその例である。タイトルや年月日を簡潔に表記する。
 (例)「Macでハイパーテキスト」(作成: 2018.3.24Sat.)
 「索引ファイル」を作成するとき、スクリプトがリンクの見出しとして利用する。見出しには、半角記号「: ! $」を使ってはいけない。
 印刷する場合、見出しが邪魔なら、フォントサイズなど印刷に必要な書式を設定した印刷専用の白紙ファイルを「作業フォルダ」に用意しておき、印刷するテキストを読み込んで印刷するとよい。印刷するファイルのリンクをコピーすれば、次回に紹介する「ハイパーIn」でテキスト本体を簡単に読み込むことができる。
 
 次回は、ハイパーテキスト機能の活用について、さらに詳しくまとめる。
 
 

ハイパーテキストの活用

 「Macでハイパーテキスト」の動かし方を説明している。
 ハイパーテキスト機能の活用法と追加のハイパーテキスト機能の使い方をまとめる。
 
Usehl
 
○簡易アウトライナーとして利用する
 多くの章や節で構成される長い文章を作成する場合、まず、全体の構成を項目にして書き並べて全体の構成をきめ、項目ごとに要点を書き込み、しだいに細かい部分まで書き込んでいく方法がある。
 上のような文章作成では、ハイパーテキスト機能が役立つ。まとまったテキスト部分は、下で紹介するハイパーテキスト機能「ハイパーOut」でファイルに書き出す。代わりにリンクが置かれるから、ハイパーテキスト機能「ハイパーJump」で簡単に開くことができる。リンクなら構成の変更は簡単にできる。新たに項目を挿入したいときは、ハイパーテキスト機能「ハイパーNew」を利用する。
 リンクになったテキストを一つのファイルとしてまとめるならば、下で紹介するハイパーテキスト機能「ハイパーIn」を使えばよい。リンクの位置にファイル本体を読み込むことができる。
 これらにより、ハイパーテキスト機能は、簡単なアウトライナーのように使える。
 
○関連するデータを参照する付箋として利用する
 資料ファイルへのリンクは、付箋代わり利用できる。「作業フォルダ」に「メモファイル」を用意して、必要な情報をコピーしておく。ハイパーテキスト機能「ハイパーJump」でメモファイルを開いて資料を参照したり、コピーできる。メモファイルへのリンクは、下のようなファイル名だけで十分である。
 > xTemp1:
 文章が完成したら、上記のようなリンクは削除すればよい。リンクを削除しても、メモファイル本体は残る。ファイルは、後の利用のために「作業フォルダ」に残しておけばよい。また、後述する「ハイパーIn」機能を使えば、リンク位置にファイル本体を読み込むこともできる。長いテキストを引用する場合に便利である。
 また、テキスト本文の中にファイル名を記述しておき、必要に応じて参照することもできる。例えば、「Macの画面」( > MacDesk.jpg: )のようにリンクを付記しておく。このリンクのある行を選択すれば、「ハイパーJump」機能で簡単にファイルの閲覧ができる。エディタでは、文中のリンクは色づけして表示される。
 
 上で紹介した追加のハイパーテキスト機能をまとめる。
(名称)ハイパーOut
(機能)エディタで選択してある部分をファイルに書き出してリンクを置く
(操作)Control+Command+O
 ○まず、ファイルに書き出す部分の先頭行に新しいファイル名をリンク形式で書き込む。
 (例)> HyperOut.txt: 「ハイパーOut」の使い方
 このリンクを1行目にして、書き出す部分を選択し、上のショートカット操作をする。リンクからファイル名が決まるので、必ず、書き出すファイル名のリンクを1行目にして、書き出す部分を選択する。
 ○上のショートカット操作をすると、確認のダイアログが表示されるので、実行するならリターンキー、中止するならESCキーを押す。
 ○続いて、「保存するフォルダを指定」するウインドウが表示されるので、保存先のフォルダを選択してリターンキーを押す。中止するならESCキーを押す。
 ○以上の操作により、選択したテキストが本文となり、1行目に見出しが書き込まれたファイルが作成され、元のテキストには書き出した部分に代わってリンクがセットされる。
 ○「Macでハイパーテキスト」フォルダ内に同名のファイルがあると、ターミナルにエラーが表示され、処理は中止される。
 
(名称)ハイパーIn
(機能)リンク先のテキスト本体をリンクの位置に読み込む
(操作)Control+Command+I
 ○リンクを選択し、上のショートカット操作をすると、リンク先の元ファイルを残すか、削除するかを確認するダイアログが表示される。そのまま残すなら「1」、削除するなら「2」を入力してリターンを押す。「1」がデフォルトで表示されるので、そのままリターンを押すと元ファイルは残る。中止ならESCキーを押す。1または2以外の文字や空白では、「保存」として処理される。
 ○実行するとリンクの代わりに、リンク先のテキスト本体が読み込まれる。テキスト以外のファイルに実行してもエラーとなる。テキストかどうかは、拡張子「.txt」で判定される。
 ○リンク先と同名のファイルが「Macでハイパーテキスト」フォルダ内に複数存在すると、同名ファイルの一覧がフルパスで表示されるので、表示された中から必要なファイルのリンクを選んで、テキストの読み込み部分にコピーし、コピーしたリンクに「ハイパーIn」を実行し直す。
 ○この機能は、小分けして作成したテキストを1本にまとめるためのものだが、資料のテキストを引用する時にも使える。そのため、元ファイルを残すか、破棄するかを選択する。
 
 以上で、テキストの編集に必要なハイパーテキストのメインとなる機能の説明は終わる。次は、リンク先のファイルを操作する補助機能についてまとめる。
 
(備考)スクリプト名を「ハイパーPut、ハイパーIn、ハイパーOut、…」のようにしたのは、スクリプトの機能とショートカットの文字キーを関連づけ、かつ汎用のショートカットとの競合を避けたためである。例えば、「ハイパーOut」はテキストの選択部分をファイルに書き出し、代わりにリンクをセットする機能である。「ハイパーWrite」とでもした方がカッコいいかも知れない。すると、ショートカットは「Command+W」としたくなるが、「Command+W」はmacOSでは「ウインドウを閉じる」である。「Control+Command+W」ならいいが、つい、誤操作をしてしまいそうである。紛らわしい操作を避けるためにカッコいいスクリプト名にしなかった。ちなみに、エディタの「Scripts」フォルダ内のアップルスクリプトは、ファイル名を変更することは可能である。「bin」フォルダ内のスクリプトは、ファイル名を変更してはいけない。
 
 

ハイパー・コマンドの活用

 「Macでハイパーテキスト」の動かし方を説明している。
 リンクからファイルを操作する「ハイパー・コマンド」についてまとめる。
 「macOS」のベースであるUNIXには「ls、find、mv、history」というコマンドがある。「ls(一覧)」はフォルダ内のファイル情報を表示し、「find(検索)」はファイルを検索する。「mv(移動)」はファイル名や保存フォルダを変更し、「history(履歴)」はターミナルで使用したコマンドの履歴を表示する。ファイルの操作では便利なコマンドである。
 これらのコマンドのハイパー版についてまとめる。
 操作の手順は、これまでのハイパーテキスト機能と同じである。
 
Hypercommand
 
(名称)ハイパーList
(機能)フォルダ内にある項目をリンク形式で一覧表示する
(操作)Control+Command+L
 ○一覧表示するフォルダを指定する方法は二つある。
 (方法1)テキストにセットしたフォルダのリンクを選択(Control+S)して、上のショートカット操作をする。フォルダではなくファイルのリンクを選択するとターミナルにエラーが表示される。
 (方法2)リンクを選択しない状態でショートカット操作をする。フォルダを指定するウインドウが表示されるので、フォルダを選択してリターンキーを押す。中止するにはESCキーを押す。
 ○上のいずれの方法でも、フォルダ内の項目のリンク一覧がファイル「zLink.txt」として出力され、エディタで表示される。「zLink.txt」は「作業フォルダ」に出力される。
 ○テキスト・ファイルではリンクに見出しが表示される。あらかじめ「ハイパーList」の実行を想定して、テキストの先頭行に見出しを書き込んでおくとよい。
 ○同名のフォルダが複数あると、フルパスのリンク形式の一覧となってエディタで表示される。この中からフォルダを選び、再度、「ハイパーList」を実行する。
 
(名称)ハイパーFind
(機能)指定した項目を検索する
(操作)Control+Command+F
 ○検索先を指定する方法は二つある。
 (方法1)リンクを選択して上のショートカット操作をすると、「Macでハイパーテキスト」フォルダ内でリンク先を検索し、Finderでセレクトして表示する。
 (方法2)リンクを選択しない状態でショートカット操作をすると、ダイアログが表示される。検索先の名前の一部を入力する。例えば、ダイアログに「desk」と入力すると「MacDesk.txt、HyperDesk.txt、MacDesk006.txt、MacDesk.jpg、…」のように、名前に「desk」が含まれるファイルやフォルダが検索対象になる。英字の大文字小文字は区別しない。続いて、検索先のフォルダを指定するウインドウが表示されるのでフォルダを指定する。ESCキーを押せば、中止となる。
 検索結果は、フルパスのリンク形式の一覧となってエディタで表示される。一覧からリンクを選択して「ハイパーFind」を再実行すると、Finderでセレクトして表示する。
 
(名称)ハイパーMove
(機能)リンク先のファイル名や保存先フォルダを変更する
(操作)Control+Command+M
 ○ファイルのリンクに上のショートカット操作をすると、「ファイル名変更」、「フォルダ変更」、「実行・終了」のボタンのあるダイアログが表示される。
 ○マウスでボタンをクリックすると機能を実行できる。キーボートで操作するには、「Tabキー」でボタンを移動、スペースキーで実行する。
 (ファイル名変更)リンク先のファイル名を変更するには、「ファイル名変更」ボタンを選択し、スペースキーを押す。または、マウスで「ファイル名変更」ボタンをクリックする。新しいファイル名を入力するダイアログが表示されるので、ファイル名をタイプする。「.txt」や「.jpg」の拡張子も入力する。「OK」でリターンを押すか、マウスでクリックする。中止するには、ESCキーを押すか、「キャンセル」ボタンをクリックする。
 (フォルダ変更)リンク先の保存フォルダを変更するには、「フォルダ変更」ボタンをTabキーで選び、スペースキーを押す。マウスでボタンをクリックしてもよい。フォルダ一覧のウインドウが表示されるので、保存先のフォルダを選択して「OK」ボタンでリターンキーを押すかマウスでクリックする。ESCキーを押すか、「キャンセル」ボタンをクリックすると中止となる。
 (実行・終了)上で設定した項目を実行する。ターミナルに確認のデータが表示される。ターミナルに半角英字「y」を入力すると、指定した変更が実行される。半角英字「y」以外の文字を入力すると中止となる。
 ○「ファイル名変更」と「フォルダ変更」はどちらか一方でも、両方でも可能である。中止するときは、変更の設定をしないで「実行・終了」する。
 ファイル名や保存先フォルダの変更は、Finderで行うのが簡単である。「Macでハイパーテキスト」のフォルダ内ならFinderでフォルダを移動してもリンクはそのまま利用できる。「ハイパーMove」を利用するメリットは、同時にリンクの更新ができることである。ファイル名を変更したり、専用フォルダ外に移動しても、リンクは変更後の合わせた表示になる。
 
(名称)ハイパーHistory
(機能)過去に使ったハイパーテキスト機能を実行する
(操作)Control+Command+H
 ○上のショートカット操作をすると、まず、履歴を表示したいハイパーテキスト機能のシェルスクリプト名の入力を求めるダイアログが表示される。ダイアログには「hyperjump」が初期設定されている。必要に応じてダイアログに例示されているスクリプト名を入力すればよい。エディタのスクリプト・メニューに表示されるスクリプト名は使えない。
 ○続いて、履歴の表示数の入力を求めるダイアログが表示される。「100」が初期設定されているのでそのままリターンを押せば、過去、100行分の履歴の中から指定したハイパーテキスト機能の履歴を抽出して表示する。必要に応じて数字を変更すればよい。
 ○履歴はファイル「zHist.txt」に出力し、エディタで表示する。
 ○最初のダイアログを空欄にしてリターンを押すと、前回の操作で作成した履歴ファイル「zHist.txt」が表示される。二番目のダイアログを空欄にすると、Macに保存されている全履歴が表示される。量が多いので、表示までに時間がかかる。
 ○ダイアログの表示中に、ESCキーを押せば、中止となる。
 
 次回は、テキストを「データベース」として活用するための機能についてまとめる。ハイパーテキスト機能も利用できる。
 
 

ファイルの全文検索

 「Macでハイパーテキスト」の動かし方を説明している。
 資料を調べながら、テキストを作成する時に便利に使えるテキストの検索ツールについてまとめる。
 次のテキスト検索機能がある。
 ○キーワードを含む行を抽出する「DB検索」
 ○キーワード情報を抽出する「複合検索」
 
 「DB検索」は、「テキスト・データベース」の検索が主な目的である。「テキスト・データベース」と書けば大げさだが、アイディア・メモや資料を書きため、専用のフォルダに保存した単純なテキスト・ファイル群である。
 「テキスト・データベース」は、資料やメモを専用のテキスト・ファイルに書き足していくだけである。例えば、次のような書式でまとめる。
 表題/(テキスト本文)/出典や記入月日など
 表題、本文、出典などと項目分けしてあるが、書式を統一する必要はない。ひとまとまりのデータは、途中で改行しないことが重要である。DB検索では、キーワードを含む行の改行コード(LF)までをひとまとまりとして抜き出す。改行があれば、そこでデータは分断される。
 サイズの大きいデータなら、標題を共通にして、データは分割する。検索では、キーワードを含む部分が抽出されるが、表題で検索し直せば、全文を抽出できる。関連資料のリンクを書き込んでおけば、関連資料も簡単に閲覧できる。リンクにした資料の保存先は任意である。
 データベースに情報を追加するには、データベース・ファイルの先頭に書き加えていくだけである。分野別に複数のファイルを準備してもよい。専用のフォルダにまとめて保存しておくことが重要である。なお、専用フォルダ内にはサブのフォルダは作らない。検索するのは専用のメインのフォルダだけとなる。
 専用フォルダを作成したら、そのフォルダへのパスをシェルの「変数」に登録しておくと検索時の手間が省ける。
Pathvar  「DB検索」の専用フォルダへのパスをシェル変数に登録する方法を簡単にまとめる。
(手順1)「ホーム」フォルダに保存してあるシェルの設定ファイル「.bash_profile」をエディタで開く。ちなみに、隠しファイルなのでFinderには表示されない。「.bash_profile」については、前に「ターミナルの接続」で説明してある。
(手順2)専用フォルダへのパスを変数「$db」に登録する。例えば、「Macでハイパーテキスト」フォルダ内に「TextDB」として専用フォルダを作ったなら、「.bash_profile」の「shopt -s cdable_vars」の下に次の一行を書き加える。
  db=$FPATH/textdb
 変数「$FPATH」は、設定してあるはずだから、そのまま利用する。「TextDB」などのフォルダ名は、ユーザが自由にきめていいが、変数名「db」は変更してはいけない。
 以下、「DB検索」の使い方をまとめる。
 
Textdb
 
(名称)DB検索
(機能)指定のフォルダ内のテキストを全文検索して、キーワードを含む行を抜き出し、エディタで表示する。サブ・フォルダ内は検索しない。
(操作)Command+D
 ○上のショートカットで起動するとダイアログが表示される。最初に表示されるダイアログには「検索語句」を入力する。半角スペースで区切ってキーワードを二つ指定すると「AND検索」となる。例えば、「ふるさと 駅」と入力すれば、「ふるさと」と「駅」を同時に含む行を検索する。空欄のままリターンキーを押すと、前回の検索で利用したキーワードを自動的に設定する。同じキーワードで、異なるファイルを検索する時には、検索キーワード入力のダイアログを空欄にすればよい。
 ○続いて表示されるダイアログでは、検索するフォルダを指定する。上で登録した変数「$db」が初期設定されているので「DB検索」の専用フォルダを検索するなら、そのままリターンキーを押せばよい。「.bash_profile」に変数「$db」を設定しない状態で「$db」を入力するとターミナルにエラーが表示される。
 ○上のダイアログを空欄にしたり「$db」以外の文字列を入力するとフォルダを指定するウインドウが表示されるので、検索するフォルダを選択する。
 ○テキスト上のリンクが選択してあれば、ダイアログは表示されないで、リンク先が検索対象になる。リンク先はフォルダでもファイルでもよい。
 ○キーワードのあるファイルが検索フォルダ内に存在しない場合は、ターミナルにエラーが表示される。
 ○キーワードの検索数として表示される数字は、キーワードの数ではなく、キーワードを含む行の数である。検索結果は、ファイル「zWord.txt」に書き出される。「作業フォルダ」に保存され、エディタで開く。エディタでの編集は自由にできるが、新たに検索を実行すると書き換えられる。
 
 二番目のダイアログを空欄にして検索フォルダを選択すれば、「テキスト・データベース」以外の検索にも利用できる。ただし、「改行(LF)」で分断されるので、まとまりのあるデータの検索ができるとは限らない。
 次回は、Spotlightの索引を利用してファイルを検索する「複合検索」についてまとめる。
 
 

ファイルの複合検索

 「Macでハイパーテキスト」の動かし方を説明している。
 ファイルの「DB検索」に続いて、「複合検索」についてまとめる。
 
 「複合検索」は、「Spotlight」の索引による検索とテキスト本文の検索を組み合わせて、キーワードを含むファイル群を検索する機能である。サブ・フォルダも含めて広い領域のファイルを検索できる。
 次の二つの機能に分けて動作する。スクリプトも二つに分けてある。
(機能1) Spotlightの「索引」からキーワードを含むファイルを検索し、検索されたテキストを全文検索して、キーワードを含む行数などの情報を一覧にしてエディタで表示する。
(機能2) 上のキーワード情報一覧から、指定のファイルを検索して、キーワードを含むテキスト本文を抜き出し、エディタで表示する。
 以下、二つの機能の使い方をまとめる。
 
Extfind
 
(名称) 複合検索
(機能)指定のフォルダ内のテキストを複合検索して、キーワード情報を一覧表示する
(操作) Command+E
 ○ショートカットで起動すると、ダイアログが表示される。最初のダイアログに検索するキーワードを入力する。半角スペースで区切ると二つのキーワードを指定できる。例えば、「ふるさと 駅」と入力すれば、「ふるさと」と「駅」の両方を含むファイルを検索する。
 ○続いて、検索対象のフォルダを指定するダイアログが表示される。初期設定では環境変数「$FPATH」が表示される。そのままリターンキーを押すと、「Macでハイパーテキスト」のフォルダ領域が検索対象となる。空白にしてリターンキーを押すと、フォルダを選択するウインドウが表示される。ESCキーを押すと中止となる。
 ○フォルダのリンクが選択してあれば、二番目のダイアログは表示されないで、リンク先が検索対象になる。リンク先がファイルの場合は、ターミナルにエラーが表示される。
 ○検索結果は、「作業フォルダ」にファイル「zList.txt」として出力され、エディタで表示される。エディタで編集できるが、新たに「複合検索」を実行すると書き換えられる。
 下は、キーワードを二つ指定して検索したときのエディタに表示される検索結果の例である。
 
  'Extend_Find' output
  検索:'A=ふるさと' | 'B=駅'
  対象:> ~/MacDesk/TextDB/:
  > ~/MacDesk/DataBase/DB1.txt:
    表題:' 言葉データベース'
    検索:'A=19' 'B=6' 'AB=2'
  > ~/MacDesk/DataBase/DB2.txt:
    表題:' 引用資料データベース'
    検索:'A=1' 'B=1' 'AB=1'
      ……(以下略)……
 数字は、検索されたキーワードの数ではなく、キーワードを含む行の数である。上の例では、ファイル「DB1.txt」には「キーワードA(ふるさと)を含む行が19行」、「キーワードB(駅)を含む行が6行」、「キーワードAとBを同時に含む行が2行」あることを示している。
 
(名称)複合表示
(機能)上の「複合検索」の結果、エディタで表示しているキーワード情報の一覧からキーワードを含むテキスト本文を抽出する
(操作) Control+Command+E
 ○「複合検索」で表示されるキーワード情報一覧「zList.txt」でフルパスで表示してあるリンクの部分を選択して、「Control+Command+E」の操作をすると、キーワードを指定するダイアログが表示される。「複合検索」で指定したキーワードは保存されているので、「A」や「B」の指定だけでよい。「A」を入力すると「キーワードAを含む行」、「B」では「キーワードBを含む行」、「AB」では「キーワードAとBを同時に含む行」を指定することになる。初期設定は「AB」となっている。必要に応じて編集して指定する。一つのキーワードだけで「複合検索」した場合は、「B」や「AB」を指定しても「A」として処理される。
 ○選択したリンク先のファイルから指定したキーワード(A、B、AB)を含む行を抽出してファイル「zWord.txt」に書き出し、エディタで表示する。ファイルの編集は自由である。
 ○キーワード情報ファイル「zList.txt」では検索対象のリンクを変更して繰り返し「複合表示」ができる。新たに「複合検索」を実行すると、情報ファイルは書き替えられる。
 
 Spotlightの「索引」を利用するので、広範囲を高速で検索できるが、「Macでハイパーテキスト」のフォルダ領域($FPATH)を指定して、ありふれた言葉をキーワードにすると、膨大な量が検索されるため、表示までに時間がかかる。「複合検索」のキーワードを工夫すれば、「Macでハイパーテキスト」のフォルダ領域がデータベースのように利用できる。
 
 次回は、UNIXのコマンドを簡略化した「マイ・コマンド」についてまとめる。
 
 

マイ・コマンドの活用

 「Macでハイパーテキスト」の動かし方を説明している。
 これまでは、リンクへのショートカットで各種の操作をしてきた。
 ここでは、テキストを編集しながら、「コマンド」で操作する仕組みをまとめる。概要は以下の通りである。
 ○エディタからターミナルに「コマンド」を送る
 ○コマンドは、操作を簡略化した「マイ・コマンド」を使う
 コマンドは、操作命令を文字でタイプする。今流のタッチタイプとはかけ離れているが、キーボードを操作するテキストを編集では、エディタから指先だけで簡単にできる。
 
 「マイ・コマンド」とは、よく利用するUNIXの機能を自分流に設定したシェルスクリプトである。次の三つがあり、連携して動く。コマンド名はいずれも英小文字一文字である。
 ○マイ・コマンド「c」  操作対象のフォルダを変更する
 ○マイ・コマンド「p」  ファイルやフォルダなど、指定の項目を開く
 ○マイ・コマンド「l」 ターミナルにフォルダ内の項目一覧を表示する
 ちなみに、「c」は「cd」、「p」は「open」、「l」は「ls」と、UNIXコマンドの1文字を拝借したものである。
 「作業フォルダ」へのパスを設定した環境変数「$WDSK」を利用する。「$WDSK」の登録方法は、「ターミナルの接続」で説明してある。
 マイ・コマンドの操作は、ターミナルとの対話である。
 
Mycommand
 
 半角英字「c、p、l」がコマンドで、これらをターミナルにタイプする。例えば、「l」とタイプすると、ターミナルで操作対象になっているフォルダの項目一覧が下のような形式で表示される。
    1 HyprDesk.txt: -- 「Macでハイパーテキスト」の動かし方
    2 MacDesk.jpg: -- image file --
    3 TextDataFldr: -- folder  (Item: 211)
     …………
 テキストでは1行目が見出しとして表示され、フォルダには内部にある項目数が表示される。
 「c」では、下のような項目一覧がターミナルに表示される。この一覧では、ファイルのサイズや更新日時などが確認できる。
    1 -rw-r--r--@    1 MacUser staff    4374 1 12 17:44 HyprMac.txt
    2 -rw-r--r--@    1 MacUser staff  98043 2   2 16:52 MacDesk.jpg
    3 drwxr-xr-x  40 MacUser staff      704 2 28 17:15 TextDataFldr
     …………
 どちらのリストでも、先頭に番号が表示される。この番号をマイ・コマンド「p」と「c」が次のように利用する。
  p 1    1番のテキスト・ファイルをエディタで開く
  p 2    2番の画像ファイルをプレビューで開く
  p 3    3番のフォルダをFinderで開く
  c 3    3番のフォルダに移動する
 コマンドの操作対象となるのは、ターミナルに表示されているフォルダ内の項目である。
 
 本来、コマンドはターミナルに、直接、タイプするが、エディタに登録したスクリプト「UNIXコマンド」を使えば、エディタからターミナルにコマンドを送ることができる。
 スクリプト「UNIXコマンド」についてまとめる。
(名称)UNIXコマンド
(機能)エディタからターミナルにコマンドを送る
(操作)Command+U
 ○起動するとダイアログが表示されるので、コマンドをタイプする。
 ○ダイアログには、続けてコマンドの入力ができる。新たに開いたウインドウでダイアログが隠れたら、「Command+Tab」でアクティブにして操作を続ける。
 ○UNIXのコマンドも利用できる。
 ○終了するには「ESC」キーを押す。
 
(操作例)「サブ・フォルダがターミナルの操作対象になっているとき、親フォルダに移動してファイルを開く」を例に、実際のコマンド操作をまとめる。
 ○エディタから「UNIXコマンド」を起動する。表示されたダイアログにコマンドをタイプする。全て半角の文字や記号である。
 ○ターミナルを親フォルダに移動する。
  c ..    「.」は、半角小数点である。
 ターミナルの操作対象が一つ上の親フォルダに変わり、親フォルダ内の項目の番号付きの一覧が表示される。
 ○ダイアログは表示され続けるので、テキストの見出しを確認するなら次のコマンドを入力する。
  l     半角英字のエル
 ○半角セミコロン「;」で区切ると、上のコマンドをまとめて実行することができる。
  c .. ;l
 ○表示された項目一覧を確認し、7番のファイルを開くなら、次のコマンドを入力する。
  p 7
 7番の項目が画像ファイルやフォルダならすぐに開く。テキストの場合はESCキーを押してスクリプト「UNIXコマンド」を終了すると開く。
 ○フォルダ内の項目数が多いと、一覧の表示がターミナルの画面におさまらない。
 以下、「マイ・コマンド」の仕様をまとめる。
 
マイ・コマンド「c」
(名称)c (半角英小文字 c 一文字)
(機能)操作対象のフォルダを変更し、項目一覧を表示する。
(操作)c 番号、c 変数、c パス
 ○項目一覧の番号を指定する
   c 3 一覧にある3番のフォルダに移動
 ○パスを設定した変数を指定する
   c $db 変数「$db」に設定したフォルダに移動
   c "$db" パスに空白がある場合は、" "で囲む
 ○UNIX流のパスを指定する
   c ~/documents/macdesk/textdb   指定のフォルダに移動する
   c ..    一つ上の親フォルダに移動する
   c .     現在のフォルダの項目一覧を再表示する
 ○移動先から「作業フォルダ」に戻り、ファイル一覧を表示する
   c
 
マイ・コマンド「p」
(名称)p (半角英小文字 p 一文字)
(機能)ターミルで表示している項目を指定して開く。
(操作)p 番号、p 変数、p パス
 直接、ターミナルに「p」コマンドをタイプすると指定した項目をすぐに開くが、スクリプト「UNIXコマンド」からテキスト・ファイルを指定した場合は、ESCキーでスクリプトを終了すると開く。間違った指定をするとターミナルにエラーが表示される。
 ○半角スペースで区切って複数指定する
   p 2 3 一覧の番号の2番と3番の項目を開く
 ○一覧で表示されている項目名を指定する
   p macdesk.txt 
 ○パスを設定したフォルダの変数を指定する
   p $db 空白を含むなら p "$db"
 ○番号、ファイル名、変数を混在して指定する
   p 2 macdesk.txt $db
 ○UNIX流のパスを指定する
   p ~/documents   「書類」フォルダをFinderで開く
   p ..   一つ上の親フォルダをFinderで開く
   p .    ターミナルで表示しているフォルダをFinderで開く
 ○引数を指定しない
         p    「作業フォルダ」にある総合索引「Index1.txt」を開く
 
マイ・コマンド「l」
(名称)l (半角英小文字のエル)
(機能)ターミナルで操作対象になっているフォルダ内の項目を一覧表示する。テキストでは1行目が見出しとして表示される。フォルダには内部の項目数が表示される。
(操作)l
 ○「c、p」のように、表示対象を指定しても無効である。
 
 次回は、まとめとして「Macの仕事机」の活用の実際をまとめる。
 
(備考1)マイ・コマンド「l」では、フォルダ内の項目数が多いとターミナルの一画面におさまらずに流れ出てしまうが、次のようにUNIXコマンド「less」と組み合わせて使うこともできる。
  l|less
 ターミナルをアクティブにすると、「Control+P、Control+N」で画面をスクロールできる。「less」を終了するには、半角モードで「q」を押せばよい。
 また、マイ・コマンド「p」で「p .」とタイプすると、フォルダをFinderで開くので、項目数の多いフォルダの確認に便利である。
(備考2)マイ・コマンド「p、l」は「bin」フォルダに保存されているが、マイ・コマンド「c」はターミナルの設定ファイル「.bash_profile」に関数として記述されている。「bin」フォルダに保存したスクリプトは、新たにサブのシェルを起動して動くので、スクリプトでの「cd」コマンドの実行結果が親シェルのターミナルに反映されないからである。
(備考3)「p」コマンドの起動アプリを「Jedit Ω」に限定したシェルスクリプトが「jed」である。「jed ~/.bash_profile」のように、隠しファイルを編集する時に使用できる。
 
 

考えるための道具

 「Macでハイパーテキスト」の動かし方をまとめてきた。
 ハイパーテキスト機能は、Macでの文書づくりに欠かせない道具となった。まさに、「考えるための道具」である。
 Macを起動すると、ターミナルに「作業フォルダ」の項目一覧が表示され、ターミナルがアクティブな状態になる。マイ・コマンド「p」をタイプすると、エディタで「総合索引」が開く。そのリンクを伝わって、サブ索引へ、さらにファイルやフォルダへと展開していく。操作は、キーボードのタッチタイプである。
 以下、これまでの説明してきた要点をまとめる。
 
○作業フォルダでのファイル操作
 作業フォルダのファイルは、リンクから開くことができるのはもちろんだが、リンクがなくても開くことができる。
 ターミナルにマイ・コマンドを「p」とだけタイプすると、エディタ
「Jedit Ω」が起動して総合索引「Index1.txt」が開く。エディタ「Jedit Ω」がすでに起動しているなら、テキストが開いていなくても、エディタをアクティブにして「ハイパーJump」のショートカット(Command+J)で「Index1.txt」が開く。
 「作業フォルダ」にある「Index1.txt」以外のファイルは、ターミナルに表示された項目一覧の番号からマイ・コマンド「p 番号」で開く。スクリプト「UNIXコマンド」を利用すると、エディタからマイ・コマンドを操作して開くことができる。
 
Index1open
 
○コマンドとFinderとの併用
 リンクをセットしていないフォルダやファイルは、ターミナルの画面やエディタの「UNIXコマンド」から操作する。マイ・コマンド「c」でフォルダを移動し、「l」で一覧を表示し、「p」で開く。
 フォルダの移動では、マイ・コマンド「c」とUNIXコマンド「cd」を使い分ける。
  c 3         項目一覧のフォルダの番号を指定して移動
  cd db     変数「$db」に登録したフォルダに移動
 UNIXコマンド「cd」では、変数を表す「$」記号を省略できる。よく利用するフォルダのパスは「.bash_profile」の変数に登録しておけばよい。
  c $db     マイ・コマンド「c」では「$」は必要
  c           「作業フォルダ」に移動、項目一覧を表示
  cd         「ホームフォルダ」に移動、項目表示はなし
 フォルダを移動したら、マイ・コマンド「l」でフォルダ内の項目を表示、マイ・コマンド「p」で開く。
  l            項目一覧を表示、テキストは見出し付き
 フォルダ内の項目数が多いと、「l」で表示される一覧がターミナルの一画面におさまらないが、次のようにFinderでフォルダを開くことができる。
  p .         ターミナルが操作対象のフォルダをFinderで開く
 Finderでは、カーソルキーでセレクターを移動してファイルを選択し、クイックルックで中身を確かめる。セレクターのある項目で「Command+O」のショートカット操作をすると項目が開く。
 
○ウインドウの切り替え
 複数のテキストが開いている中から総合索引「Index1.txt」をアクティブにするには、リンクを選択しないで「ハイパーJump」の操作をする。
 エディタで開いている複数のウインドウを切り替えるには、エディタ「Jedit Ω」の環境設定で「ウインドウ巡回」にショートカット(例:Command+L)を割り当てておく。
 起動中のアプリは、「Command+Tab」操作で切り替える。
 
 これまでに紹介したスクリプトのショートカットの一覧を載せる。
 なお、ショートカットは、ユーザで変更可能である。
 ○ハイパーJump(Command+J)
 ○ハイパーNew(Control+Command+N)
 ○ハイパーPut(Control+Command+P)
 ○ハイパーIn(Control+Command+I)
 ○ハイパーOut(Control+Command+O)
 ○DB検索(Command+D)
 ○複合検索(Command+E)
 ○複合表示(Control+Command+E)
 ○ハイパーLs(Control+Command+L)
 ○ハイパーFind(Control+Command+F)
 ○ハイパーMv(Control+Command+M)
 ○ハイパーHistory(Control+Command+H)
 ○UNIXコマンド(Command+U)
 
 現用のMacは「macOS High Sierra 10.13.4、3.2GHzプロセッサ、8GBメモリ、251GBフラッシュメモリ」、「Macでハイパーテキスト」の専用フォルダは項目数が2045項目、サイズは約617MB、データは日に日に増えていく。フォルダの中身はテキストが中心だが、JPEG画像もかなりある。それらは、分類してサブ・フォルダに保存してある。「Macでハイパーテキスト」の専用フォルダ内なら、ファイルはどのフォルダにあっても、リンクから開くのは一瞬である。ちなみに、フルパス型のリンクなら外付けのHD内の画像も簡単に開くことができる。
 
 以上で、ハイパーテキスト機能を中心としたテキスト編集環境についてまとめた。
 タッチパネルが主流になりつつある。地方の書店の本棚からはUNIX関係の本が姿を消した。キーボードに向かって頭と指を使うテキスト編集では、ターミナルやUNIXコマンドというGUI環境にそぐわないツールが便利に使えることをアピールしたい。
 UNIXのツールをテキスト編集に活用できるのは、エディタ「Jedit Ω」がアップルスクリプトに対応し、自作のスクリプトにショートカットの割り付けができる機能による。
  > http://www.artman21.com/jp/ : アートマン21
 エディタ「Jedit Ω」の開発者に感謝する。
 
 

(補説)エディタを変更する方法

 「Macでハイパーテキスト」では、エディタに「Jedit Ω」を設定している。「Jedit Ω」が発表される前、「Macでハイパーテキスト」のエディタは「Jedit X」だった。「Jedit X」ユーザのために、対応版をアップロードするつもりだったが、残念ながらできなかった。
 
 「Jedit X」に対応させるにはスクリプトの手直しが必要である。スクリプト自体の手直しは簡単である。スクリプトにある「tell application "Jedit Ω"」を「tell application "Jedit X"」に書き直すだけでいい。
 ところが、「Jedit X」をインストールしていないと、この書き直しができない。スクリプトを書き上げたら「コンパイル」という処理をするのだが、「Jedit X」がインストールされていないと、この処理ができないのである。保存さえもできない。スクリプトの作成アプリ「スクリプトエディタ」が「Jedit X」のインストール先の確認を求めるてくるからである。
 
 ここでは、「Jedit Ω」対応版をダウンロードして、「Jedit X」対応に変更する手順を、「ハイパーJump.scpt」スクリプトを例にして具体的にまとめる。当然、「Jedit X」がインストールされていなくてはならない。また、ダウンロードしたアップルスクリプトは、「ダウンロード」フォルダなど、Mac本体のフォルダにコピーして変更の操作を行う。USBメモリでは、スクリプト情報の一部が保存されない。変更が終わったら「Jedit X」に登録する。
(手順1)ダウンロードしたアップルスクリプトのフォルダをFinderで開く。フォルダ内にある「ハイパーJump.scpt」をマウスでダブルクリックする。「スクリプトエディタ.app」が起動し、スクリプトのリストが開く。
Scripteditor_2 (手順2)スクリプトエディタで表示されたリストの「"Jedit Ω"」の部分だけを下記のように「"Jedit X"」に書き換える。
  tell application "Jedit X"
    if exists documents then
     tell front document
      copy selected text to theFile
     end tell
    end if
  end tell
(手順3)書き換えたら、スクリプトエディタのツールバーの「ハンマー」マークのアイコンをクリックする。(コンパイルする)
(手順4)スクリプトエディタの「ファイル」メニューから「保存」をクリックし、スクリプトのリストを閉じる。
(手順5)フォルダ内にある他のアップルスクリプトも、同様に「"Jedit Ω"」を全て「"Jedit X"」に書き換え、「ハンマー」アイコンをクリック(コンパイル)し、保存する。
 
 書き換えの必要なアップルスクリプトは、エディタに登録するスクリプトの他に「bin」フォルダにもある。
(手順6)ダウンロードした「bin」フォルダをFinderで開き、フォルダ内のアップルスクリプト(「….scpt」のファイル)も同様に書き換える。全てのアップルスクリプトが該当するわけではないが、スクリプトを開いて確認して、エディタ名の部分は書き換え、コンパイルして保存する。
 
 シェルスクリプトにもエディタ名を記述してあるスクリプトがある。テキストを開くマイ・コマンド「jed」である。シェルスクリプトはシンプルなテキストだが、実行特性があるので、Finderからマウスのダプルクリックで開くことはできない。
(手順1)シェルスクリプトをエディタで開くには、Finderでシェルスクリプトを選択し、マウスの右クリックでメニューを表示する。その中から「このアプリケーションで開く」をクリックして、エディタを指定して開く。
(手順2)エディタで開いたら、下の部分のエディタ名を「Jedit X.app」に書き換える。コンパイルのような特別な操作は不要で、書き換えたら保存すればよい。
 (旧)open -a "/applications/Jedit Ω.app" "$openfile"
 (新)open -a "/applications/Jedit X.app" "$openfile"
 もし、「Jedit X」がアプリケーションフォルダ内のサブフォルダにあるなら「"/applecation/フォルダ名/Jedit X.app"」とする必要がある。
 
 「Jedit」シリーズ以外のエディタでもハイパーテキスト機能を動かせるか試してみた。
 ○Macのデスクトップの「ツールバー右側の巻紙マーク」をマウスでクリックし、「スクリプトフォルダを開く」から「ユーザ・スクリプト・フォルダ」を開く。ここに「ハイパーJump.scpt」をコピーし、対応エディタを「TextEdit」に書き換える。
 ○「TextEdit」で開いたフィアルにリンクをコピーし、ツールバーのメニューから「ハイパーjump」をクリックする。
 結果は、ダメだった。「TextEdit」で選択したリンクの文字列がテキストに変換できないというエラーが出た。それ以上のテストはしなかったが、仮に工夫して「TextEdit」で動かすことができたとしても、動作にはマウスの連続操作が必要になる。「Jedit」からタッチタイプで実行するのに比べれば、操作性には雲泥の差がある。
 
 以上で「Macでハイパーテキスト」の説明は終わる。
 テキスト編集以外でもスクリプトは活用できそうである。写真データの管理に有効に使えそうである。
 
 

画像データを検索する

 UNIXのツールを活用して、エディタから「ハイパーテキスト」機能を実行する仕組みについて紹介してきた。
 UNIXのツールは、テキストの編集ばかりではなく、デジカメの画像データの管理にも役立つ。
 「Macでハイパーテキスト」のおまけとして、「画像ファイルの検索」についてまとめる。スクリプトも紹介する。
 「Macでハイパーテキスト」の動作環境を利用するので、ターミナルや環境変数「$WDSK、$FPATH」が設定されている必要がある。スクリプトの起動は、デスクトップのメニューバーからマウス操作で行う。

 デジカメは、気軽に撮れるので大量の画像データができる。
 全てをプリントしておくわけにはいかないので、「データ」として保存しておき、必要なものを選び出して利用することになる。
 大量の画像データの中から必要なデータを探し出すのはやっかいである。直接、画像データをイメージで検索するツールはない。膨大な画像をプレビュー表示し、目で探すのも実用的ではない。
 画像のデータを簡単に検索するための手がかりは何だろう?
 次の二つしか思いつかない。
 ○ファイル名
 ○撮影年月日
 デジカメのデータのファイル名は、「DSCF2871.JPG」のような無味乾燥なものである。ファイル名での検索は役に立たない。
 では、「2015/09/30」のような撮影日付で、画像ファイルを検索することはできるだろうか。
 Macの検索機能「Spotlight」では、キーワードに「date:2015-09-30」を指定すれば、日付で検索ができる。けれども、関係のないファイルやハードウェアまで検索されるし、画像ファイルも撮影日で検索されたとは限らない。索引に登録されている日付は、作成日の他にも、変更日、登録日、閲覧日などがあるからだ。
 UNIXのコマンド「mdfind」を利用すれば、フォルダを限定してメタデータの日付を検索できるが、上と同じ問題がある。

 画像データの検索方法を自分流で考えた。
 まず、画像ファイルは、次の二種類に分けることにする。
 ○デジカメの「元データ」
 ○利用した「使用データ」
 「元データ」は、デジカメからコピーし、ハードディスクに保存した生のJPEG画像データである。
 「使用データ」は、プリントしたり、メールに添付したりして、利用したデジカメのデータである。データの加工の有無にかかわらず、利用したデータは、「使用データ」とする。
  

Filetool1

  
 「元データ」と「使用データ」、それぞれに適した検索方法を考えた。
 まず、「使用データ」は、ヘッダーや日付を指定して検索できるようにファイル名を変更して、「元データ」とは別なフォルダに保存する。例えば、「花子さん」を「2015年9月30日」に撮影した画像データならファイル名を次のように変えて保存する。
  Hanako150930.jpg、Hanako150930a.jpg、…
 これなら、ヘッダーと撮影年月日の両面から、画像データを検索できる。ファイル名の変更はスクリプトで簡単にできるようにする。
 一方、「元データ」は、専用のフォルダに保存しておく。日付での検索は「撮影日」を登録した「日付データベース」で行う。データベースと言えば大げさに聞こえるが、スクリプトを利用して簡単に作成や検索ができるシンプルなテキストデータである。

 この後、画像データを検索するスクリプトを紹介する。
 テキストデータをもとに、イメージデータを検索する仕組みである。
 次回は、必要なスクリプトをダウンロードして保存する。
 

 

スクリプトを保存する

 デジカメの画像データの検索はスクリプトで行う。
 スクリプトは、「Macでハイパーテキスト」と同様にアップルスクリプトとシェルスクリプトのコンビで動く。
 シェルスクリプトの動作には、ターミナルやシェルの設定が必要となる。「Macでハイパーテキスト」の環境をそのまま使用する。

 まず、スクリプトをダウンロードし、指定のフォルダに保存する。
 以下、手順をまとめる。

(手順1)スクリプトをダウンロードする。
 ○スクリプト一式を以下からダウンロードする。

   ダウンロード - scripts.zip

 ○ダウンロードすると「ダウンロード」フォルダに以下のフォルダが作られ、スクリプトが保存される。

  ・「Scripts」フォルダ
 ○「Scripts」フォルダ内には、二つのサブフォルダが作られている。
  ・「bin_Scripts」フォルダ
  ・「library_Scripts」フォルダ

Scriptfolder170905 (手順2)「bin_Scripts」フォルダ内のスクリプトは、全て「ユーザ:bin」フォルダ(~/bin)にコピーする。
 ○「bin」フォルダは、「Macでハイパーテキスト」のスクリプトを保存するためにすでに作成してある。
 ○「ハイパーテキスト」機能ですでに保存されているものもあるが、全て、上書き保存する。

(手順3)「library_Scripts」フォルダ内のスクリプトは、メインとなるアップルスクリプトである。このフォルダ内のファイルは、全て「ユーザ:ライブラリ:Scripts」フォルダにコピーする。(~/Library/Scripts)
 このフォルダは、あらかじめユーザのライブラリ・フォルダ内に用意されているが、通常ではFinderに表示されない。表示するには、Finderでホームフォルダを開いた状態で、メニュー「表示オプションを表示」をクリックし、「"ライブラリ・フォルダ"を表示」にチェックを入れる。
 ○ダウンロードした「library_Scripts」フォルダ内の全てのスクリプトを、「ユーザ:ライブラリ:Scripts」フォルダにコピーする。
 ○別なフォルダに保存するとメニューから起動できなくなる。

(手順4)スクリプト・メニューを確認する。
 ○コピーが終わったら、デスクトップのメニューバー右側の「巻紙マーク」をクリックする。「ユーザ:ライブラリ:Scripts」フォルダにコピーしたアップルスクリプトがメニューに表示されればよい。スクリプト・メニューには拡張子「scpt」は表示されない。
 ○スクリプトをマウスでクリックすれば、スクリプトが実行されるが、この段階では確認するにとどめる。ちなみに、上の「Scripts」メニューに表示されるアップルスクリプトは、マウスでクリックすると起動するが、同じフォルダをFinderで表示してクリックすると「スクリプトエディタ」で開かれ、編集状態になる。
 ○「bin」フォルダ内は、シェルスクリプトやアップルスクリプトがあるが、数が多いので確認は省略する。

 次回は、SDカードに記録されたデジカメの生データをMacのフォルダやハードディスクにスクリプトでコピーして、「元データ」として保存する。
 すでに、「元データ」を分類して保存してある場合は、次の作業は必要ないので、省略してよい。
 「元データ」でも、コピー方法によっては、日付情報が変更されている場合があるので、「撮影日」が正確に保存されているか確認する必要がある。


 

デジカメのデータを保存する

 SDカードなどに記録されたデジカメの生データをMacや外付けハードディスクに「元データ」としてコピーする。「元データ」専用のフォルダをつくり、分類してコピーする。
 「日付データベース」を作成すると「撮影年月日」でファイルを検索することができる。
 すでに、日付情報を保持した状態でコピー・保存してある場合は、そのまま利用してもよい。ただし、他の画像データや文字データ、手を加えた「使用データ」が混在していると、検索に不都合である。

Datafolder180110 「元データ」を保存するフォルダは、同じフォルダに大量のデータが集中し過ぎないように、カメラ別、撮影年や撮影月別など、サブフォルダに分類して作成するのがよい。データ量に応じてサブフォルダの数を増やせばよい。カメラでの絞り込み検索を想定するなら、親フォルダ名にカメラ名を使用すればよい。

 フォルダ名は、空白なしの半角英数字にする。だたし、「PD」の文字と数字が並んだフォルダ名は使用できない。「PD1809」などをフォルダ名にすると、「日付データベース」の「日付データ」と混同される。

 以下、SDカードなどにある大量の生データをフォルダにコピーする作業についてまとめる。画像データは、日々、作られるので、コピー・保存はデータ管理に必須の作業である。

 「Scripts」フォルダと「bin」フォルダに保存したスクリプトを使って、デジカメの元データを指定のフォルダにコピーする。
 ファイルのコピーは、1〜2本ならFinderでのコピペで済むが、このスクリプトでの作業は、SDカードなどに記録してある大量のデジカメの画像データをMacや外付けハードディスクに分類して保存する作業を想定している。ちなみに、コピーにはUNIXのコマンド「cp」を利用しているが、日付が変更されないよう、ファイル属性を保持したままコピーするためのオプションを設定してある。Mac OX 10.4(Tiger)以前のOSでは、コピー作業により日付情報が変更されてしまうので、スクリプトは使用できない。

 実際にSDカードなどに記録した画像データをFinderで表示し、一度に100本位ずつ選択してハードディスクにコピーする作業を行った。ただし、ターミナルで一度に受け取る情報量には制限があるので、余りに大量のファイルを一度に選択してスクリプトを実行すると、ターミナルでエラーが発生する。大量のデータをコピーする際は、Finderに表示される日付などを目安にして100本程度ずつ区切りながら利用する。

 スクリプトを使ったコピー作業の手順をまとめる。
(手順1)スクリプトを起動する。
 ○メニューバーのスクリプト・メニュー(巻紙マーク)をマウスでクリックして開き、スクリプト「fd_COPY」をマウスでクリックする。
 ・機能を選択するダイアログが表示される。
 ・コピー先には「コピー先 'Folder' 未設定」と表示されている。
 ・ダイアログの「キャンセル」ボタンをクリックすると終了する。

(手順2)「コピー先のフォルダ」を設定する。
 ○ダイアログの「Folder」ボタンをクリックする。
 ・Finder形式のウインドウが表示されるので「コピー先のフォルダ」を選択し、「選択」ボタンをクリックする。外付けハードディスクでも可能である。「キャンセル」ボタンをクリックすると処理は中止され、スクリプトは閉じる。
 ・コピー先のフォルダをセレクトし、「選択」ボタンをクリックすると、ダイアログの「コピー先」に選択したフォルダのバスが表示される。ターミナルは、選択したフォルダがアクティブになり、フォルダの情報が表示される。

(手順3)Finderを開き、ファイルをコピーする。
 ○デジカメのSDカードなどのコピーするデータのあるフォルダをFinderで開き、「コピーするファイル」を選択する。
 ・Commandキーを押しながら、ファイル名の横の余白部分をクリックしてスライドすると連続して選択できる。1度に選択するのは100本程度にする。

(手順4)「Copy」ボタンをクリックする。
 ○確認のためのダイアログが表示される。
 ○コピー先などを確認し、ダイアログの「Copy」ボタンをクリックするとコピーが開始され、ターミナルに経過が表示される。
 ・もし、コピー先に同名ファイルがあるとターミナルに「上書き」するかどうかの確認が出る。デジカメの生データのコピーで、同名ファイルの存在はコピー先フォルダの指定に問題があるか、または重複コピーの問題がある。あえて、コピーを強行するするなら、ターミナルをアクティブにして、上書きするなら「半角y」、中止なら「半角n」をタイプする。

 Finderで選択したファイルのコピーが終わってもダイアログは表示されるので、コピー作業を続けることができる。ダイアログが操作の邪魔になるなら、マウスでドラッグしてずらせばよい。スクリプトのダイアログがFinderの陰に隠れて操作できなくなったら、マウスでダイアログの一部をクリックすればよい。
 「コピー先のフォルダ」を変更するときは、改めて「Folder」ボタンで指定する。コピー先やコピー元を変更してコピー作業を続けることができる。ダイアログの「キャンセル」ボタンをクリックするとスクリプトは終了する。

(参考)ファイルをまとめて「移動」したい時は、スクリプト「fd_MOVE」を利用すればよい。操作の手順は、「fd_COPY」と同じである。
(手順1)「移動先のフォルダ」を「Folder」ボタンで指定する。
(手順2)Finderで、「移動するファイル」を選択する。
(手順3)ダイアログの「Move」をクリックする。
(手順4)「キャンセル」をクリックすると終了する。

 次回は、Macやハードディスクにコピーしたデジカメの「元データ」から必要なデータを選び、検索に便利なファイル名に変更する操作についてまとめる。


 

検索に便利なファイル名に変える

 プリントやメール添付などで使用した画像データは、加工の有無にかかわらず、「元データ」と区別し、ファイル名を変更して「使用データ」として別フォルダに保存する。
 「使用データ」のファイル名は、「ヘッダー+年月日」の形式にする。  ヘッダーや年月日をキーにして画像データを検索することを想定している。
 ファイル名の変更は、ファイル数が多いと大仕事となる。ここでは、スクリプトでまとめて画像データのファイル名を変更する。

Renamescript


 スクリプトの使い方を説明する。 
(手順1)使用したい「元データ」を別なフォルダにコピーする。コピーする前に「元データ」の日付情報が保持されているかFinderで日付を表示して確認する。
 データ数が多いなら、スクリプト「fd_COPY」を利用すればよい。Finderでのコピペやスクリプト「fd_COPY」によるコピーでは、データの日付は更新されない。

(手順2)ファイル名を変更しても日付は更新されないので、ファイル名の変更はコピーしたらすぐに行うことにする。サイズ調整や補正など、データに手を加えると日付が変わる。
 ○Finderで、コピーしたファイルの中から同じヘッダーにするファイルを選択する。複数のファイルを選択するには、Commandキーを押しながらクリックすればよい。フォルダを選択しても処理されない。
 ○ファイルを選択したら、スクリプトメニューから「fd_NAME」をクリックする。ファイルを選択しないでスクリプトを起動するとエラーのダイアログが表示される。

(手順3)ヘッダーの入力を求めるダイアログが表示されるので、ヘッダーを入力する。
 ○検索することを想定してヘッダーの文字列を工夫する。空白は使用しない。
 ○ダイアログのOKボタンをクリックするか、リターンキーを押すと実行される。「キャンセル」ボタンをクリックすると中止となる。

(手順4)ヘッダーを確認するダイアログが表示される。
 ○ダイアログのOKボタンをクリックするか、リターンキーを押すと実行される。「キャンセル」ボタンをクリックすると中止となる。
 ○撮影年月日は、スクリプトが抽出してヘッダーに付加する。
 ○実行すると、ファイル名が変更され、結果がFinderで表示される。
 (例)複数のファイルを選択し、ヘッダーに「MacDesk」を指定すると、次のようなファイル名に変更される。ちなみに、「140203」は「2014年2月3日」を表す。
  MacDesk140203.jpg、…
 ○ヘッダーと撮影年月日が同じファイルが複数あると、日付の後に「a~z」の文字をつけて区別する。
  MacDesk140203.jpg、MacDesk140203a.jpg、…
 ○ヘッダーと撮影年月日が同じファイルが28本以上になる場合は、ヘッダーに「A、B、C、…」の文字が自動でつけられる。
 (例)MacDeskA140203.jpg、…、MacDeskA14203z.jpg 計27本
    MacDeskB140203.jpg、…、MacDeskB140203z.jpg 計27本
 ○同一ヘッダー、同一撮影年月日のファイル本数が多い場合は、複数回に分けて選択してスクリプトを実行してもよい。ファイル名に「a、b、c、…」や「A、B、C、…」の文字が自動でつけられ、同名ファイルの作成を避ける。ただし、スクリプトが同名ファイルをチェックするのは、Finderで表示している同一フォルダ内に限られる。

 次回は、「使用データ」のファイル名から画像データを検索する方法をまとめる。

(備考)Macで扱う年月日データにはいろいろある。主なのは「変更日」と「作成日」である。例えば、デジカメで撮影して保存したデータは「変更日」「作成日」共に撮影した年月日になっている。
 データに手を加えると「変更日」が変わる。スクリプトは、「変更日」を参照するUNIXのコマンド「ls」を利用している。


 

ファイル名で検索する

 スクリプトを利用してファイル名からファイルを検索する操作の手順をまとめる。ファイルであれば、画像でもテキストでも種別は問わない。

Fdfind200109


(手順1)スクリプト・メニューから「fd_FIND」をクリックする。
 ○ダイアログが表示され、「検索先」には環境変数「$FPATH」が初期設定されている。
 ○「キャンセル」ボタンをクリックするとスクリプトは終了する。

(手順2)検索先のフォルダを指定する。
 ○検索先のフォルダを新たに指定する場合は、「Folder」ボタンをクリックする。Finder形式のウインドウが表示されるので、マウスでフォルダをセレクトし、「選択」ボタンをクリックする。ダイアログに新たに指定したフォルダのバスが表示される。何度でも、フォルダの変更は可能である。「キャンセル」ボタンをクリックするとスクリプトは終了する。
 ○外付けのハードディスクなどで容量の大きいフォルダを選択すると、サブ・フォルダも検索するので検索対象が膨大な量になり、効率が悪くなる場合がある。検索したいファイルのあるフォルダを選ぶのが効率的である。OSのシステムのあるフォルダは検索できない。

(手順3)ダイアグの「Find」ボタンをクリックする。
 ○入力用のダイアログが表示される。入力枠に検索したい「ファイル名の一部」を入力する。
 具体的な入力例を示す。
 (例)ファイル名に「MacDesk」を含むファイル全般
    MacDesk
 (例)2017年8月に関連したファイル
    1708
 これでファイル名に「MacDesk」や「1708」を含むファイル全般が検索される。「1708」などの日付は、事前にファイル名に設定されている必要がある。
 ○画像ファイルだけでなく、テキストなどのファイルも検索できる。
 ○二つの文字列を半角「|」で区切って入力すれば、「複合検索」ができる。検索先にサブ・フォルダが多いと検索に時間がかかる。
 (例)ファイル名に「MacDesk」と「1708」を含むファイル全般
    MacDesk|1708
 ○半角記号「*」も使用できる。
 (例)MacDesk*.jpg 画像ファイルに限定
 (例)MacDesk*.jpg|1708 MacDeskの画像から2017年8月に限定
 ○検索の結果は、ターミナルに表示され、確認のダイアログが表示される。「Ok」ボタンをクリックすると、前のダイアログに戻り、検索を続けることができる。「List」ボタンをクリックすると、検索結果がエディタで表示される。リンク形式になっているので、エディタで「ハイパーテキスト」機能が利用できる。

(手順4)検索データ入力のダイアログを空欄にしてリターンを押すと、最初のダイアログ表示に戻る。
 ○「Folder」ボタンの操作で検索先フォルダの変更ができる。
 ○「Find」ボタンで検索に戻ると、前回の検索データがダイアログに表示され続けるので、同じ検索データでフォルダを変えて検索することができる。
 ○「キャンセル」ボタンをクリックするとスクリプトは終了する。

 次回は、ファイルを日付で検索する方法についてまとめる。


 

日付で検索する

 撮影した日付でデジカメの「元データ」を検索する。
 Macには日付でファイルを検索できるSpotlight機能がある。
 簡単で便利だが、前に述べたように大きな問題がある。
 Spotlightのメタデータには、さまざまな日付データが登録されていて、そのどれかにヒットすると検索されてしまうのだ。Finderにも「変更日、作成日、最後に開いた日、追加日」の4種類の日付が表示できる。これらは、メタデータとして登録されている。作成日と合致しなくても他の日付データと合致すれば検索されるのだ。

 メタデータを利用しないでデジカメの元データから「撮影日」で検索する仕組みをつくる。簡単に言えば、データベースを作り、「撮影日」で元データを検索する仕組みである。
 大げさに思えるが、Macや外付けハードディスクに保存した大量のデジカメの「元データ」の管理ツールと考えればよい。
 日付データベースを作成すると、撮影日付のデータを「yymmdd」形式で入力して、「20yy年mm月dd日」に撮影した「元データ」を検索できる。
 例えば、「2015年9月30日」に撮影した「元データ」を検索するなら、検索キーとして「150930」を入力すればよい。検索結果は、ターミナルに表示され、リンク形式のテキストでも出力される。必要ならエディタで開き、ハイパーテキスト機能を利用できる。

Finddate


 この機能を動かすには、まず、「元データ」から「日付データベース」を作成する必要がある。ただし、「元データ」に日付情報が保持されていることが条件である。コピー方法によっては、撮影日の日付が変更されている場合もあるので確認が必要である。
 次回は、フォルダに保存されたデジカメの元データから「日付データベース」の作成についてまとめる。


 

日付データベースの環境を作る

 「日付データベース」は、デジカメのデータごとに次のようなリンク形式のリストで構成する。
 (例)> /…/DSCF4311.JPG: PD140203
 上の場合、右端の「PD140203」が撮影年月日である。「2014年2月3日」に撮影したデータであることを示している。
 左側の「> /…/DSCF4311.JPG: 」は、画像ファイルへのリンクである。「/…/」の部分にはデータの保存先のパスが表示される。
 これを全元データ分まとめたのが「日付データベース」である。ファイル自体は、シンプルなテキストであり、検索することが目的である。リンクのリストはスクリプトが作成するので、保存先のフォルダを指定する程度の操作でできる。

 「日付データベース」の作成には、デジカメの「元データ」をMacやハードディスクの専用のフォルダに分類して保存してあることが前提である。撮影の年月日は混在していてもよい。ただし、撮影日付が変更されていない生のデジカメのデータでなければならない。

Folder170923 「日付データベース」の作成には以下の準備が必要である。
 以下、手順をおって説明する。
(手順1)「日付データベース」のファイルを保存するフォルダを作成する。
 ○デジカメの「元データ」を保存したフォルダとは別に「日付データベース」のファイルを保存する専用のフォルダを作成する。既存のフォルダにサブフォルダとして作ってもよい。
 ○イメージ図では、「PhotoDate」が「日付データベース」を保存する専用フォルダである。専用フォルダを用意するのは、検索効率をよくするためである。フォルダ名は自由であるが、半角のスペースは使わない。

(手順2)空の「日付データベース」ファイルを作成する。
 ○エディタで新規のテキストを開き、カメラ名や撮影年などの見出しを書き込んで、ファイル名は「PD1.txt」として、上で準備した専用フォルダに保存する。
 ○このファイルは、スクリプトが検索で使用するのでファイル名は変更してはいけない。
 ○大量のデジカメの元データがある場合、同じファイルに大量の書き込みをすると使い勝手が悪くなるので、カメラ別や年別などに応じてファイルは増設すればよい。その場合、「PD1.txt、PD2.txt、PD3.txt、…」のように、ファイル名の先頭の「PD」は変更せず、番号で区別していく。

 以上で、「日付データベース」作成の準備は終わる。
 次回は、「日付データベース」の作成にとりかかる。

 

 

撮影日のデータベースを作る

 デジカメの「元データ」を撮影年月日で検索するための「日付データベース」を作る。
 「日付データベース」を作成するには、まずは以下の準備が整っていなくてはならない。
 ○撮影日付の変更されていない「元データ」が保存されていること。
 ○専用のフォルダにファイル「PD1.txt」が用意されてあること。

 以上の条件が整ったら、デジカメの「元データ」の日付情報を「PD1.txt」に読み込む作業を始める。
(手順1)エディタで「PD1.txt」を開く。
 ○「日付データベース」のデータを読み込む行の先頭にカーソルをセットする。

(手順2)スクリプト・メニューから「pd_MAKE」をクリックする。
 ○操作手順と処理ボタンのあるダイアログが表示される。
 ○「Folder」ボタンをクリックし、表示されるFinder形式の一覧表示から「日付データベース」を作成する「元データ」のフォルダを一つ選択する。ここで選択する「元データ」のフォルダは、内部に子フォルダを含まないデジカメの生データの専用フォルダである。ダイアログにフォルダのパスが表示されるので確認する。
 ○(手順1)と(手順2)の操作順は、入れ替わってもよい。
 ○作業を中止するには、「キャンセル」ボタンをクリックする。

(手順3)以上を確認して、「Make」ボタンをクリックする。
 ○スクリプトが動作し、「日付データベース」のリンクの作成を始める。フォルダ内のファイルの数が多いと処理に少し時間がかかる。
 ○スクリプトでの処理が終わると、結果がエディタのカーソル位置に読み込まれ、「日付データベース」のリストが表示される。

Filetool13a


 ダイアログは表示され続けるので、「元データ」のフォルダを変えて処理を続けることができる。
 「PD1.txt」に「日付データベース」を追加する場合、新しくデータを読み込む位置は上に追加していく。データの並び順は、日付の検索に影響を与えない。
 スクリプトのダイアログが操作の邪魔なら、マウスでドラッグしてずらせばよい。

 「PD1.txt」の行数が多くなり過ぎると、エディタでの使い勝手が悪くなる。「PD2.txt」を新設して同様の操作を続けていけばよい。ファイル名は、「PD3.txt、PD4.txt、PD5.txt、…」として、機種別、年別などに応じて、「PD1.txt」と同じフォルダ内にファイルを増設していけばよい。

 

 後にハードディスクを新しく替えるなどしてドライブ名が変わった場合、ドライブ名と日付データベースに記録されているリンクのドライブ名が一致しなくなる。そんな場合は、新しいドライブ名を以前と同じに変更すればよい。Finderで簡単に変更できる。

 次回は、「日付データベース」を使って、撮影年月日でデジカメの「元データ」を検索する。

(備考)「180107」のような日付データは、「ls」コマンドを利用して作成する。ところが、「ls」コマンドでは「年」データが表示されるのは、ファイルが更新されてから半年が経過してからとなる。
 「年」が変わってもしばらくは、「年」が表示されないで「更新時刻」が表示される。したがって、「更新時刻」から「年」を確定するには工夫が必要になる。その工夫はしてあるが、表示の変るぎりぎりの時点で「PDリスト」作成をした場合、運悪く「年」の表示がズレる場合があるかも知れない。
 
 

 

日付データベースで検索する

 「日付データベース」が完成したら、年月日をキーに「元データ」を検索する。
 撮影した日付でデジカメのデータを検索するためには、撮影メモや日記などの撮影日付に関する情報が必要になる。

Filetool14a


(手順1)スクリプト・メニューの「pd_FIND」をクリックする。
 ○操作を選ぶダイアログが表示される。

(手順2)ダイアログの「Folder」ボタンをクリックする。
 ○検索先フォルダは未設定と表示されているので、検索先のフォルダを指定する。
 ○Finder形式のウインドウから「日付データベース」(PDファイル)が保存されてあるフォルダをセレクトし、「選択」ボタンをクリックする。ダイアログに検索先フォルダのパスが表示されるので確認する。
 ○「キャンセル」ボタンをクリックするとスクリプトは終了する。

(手順3)ダイアログの「Find」ボタンをクリックする。
 ○「年月日データ」を入力するダイアログが表示される。
 ○ダイアログの入力枠に検索キー「年月日」を入力する。入力の形式は「yymmdd」で、全て半角の英数字記号である。
 ・(例1)「2017年9月12日」に撮影したデータを検索するなら「170912」と入力する。
 ・(例2)年は関係なく「9月12日」に撮影したデータを検索するなら「..0912」と入力する。「.」は半角の小数点で、任意の1文字を表す。「..」で任意の二文字となる。
 ○入力後、リターンキーを押すか、「Ok」ボタンをクリックすると検索が開始され、結果はターミナルに表示され、確認のダイアログも表示される。ダイアログの「Ok」ボタンをクリックすると、検索が続けられる。「List」ボタンをクリックすると検索結果がエディタで表示される。リンク形式なのでエディタから「ハイパーテキスト」機能が利用できる。
 ○年月日データの入力枠を空白まま「Ok」ボタンをクリックすると最初のダイアログ表示に戻る。

(手順4)ダイアログは表示され続けるので、マウスでアクティブにすると繰り返し検索できる。
 ○最初のダイアログで「キャンセル」ボタンをクリックするとスクリプトは終了する。
 ○ダイアログは画面の中央に表示されるので操作で邪魔なときは、マウスでドラッグして移動すればよい。また、テキストの陰になったら、ダイアログの一部をクリックすれば、前面に表示されてアクティブになる。

 検索では、「複合検索」ができる。
(複合検索)二つのキーワードを半角「|」で区切って入力する。
 ○2017年9月12日にXP1で撮影した画像を検索するにはダイアログの入力欄に「170912|XP1」と入力する。ちなみに、「元データ」を保存したフォルダ名をカメラ名「XP1」にしていないとこの検索はできない。
 ○キーワードに「.」を利用すれば、幅広くデータを検索できるが、注意が必要である。例えば、「..09..」と指定すると、撮影年と撮影日に関係なく9月に撮影したデータが一挙に検索されてしまう。10年分の「元データ」があれば、10年分の「9月」撮影のデータが検索される。膨大な量になる恐れがある。「複合検索」でも同様に注意が必要である。

 「日付データベース」は、次のような応用もできる。
 例えば、データに下のようなメモを書き込んでおく。データ行を途中で改行してはいけない。
 > /…/DSCN0552.JPG: PD110920 長崎旅行
 検索ダイアログに「110920」と入力する代わりに「長崎旅行」と入力すれば、メモをキーワードにして関連ファイルを検索できる。

 次回は、「日付データベース」を使いやすくするための設定についてまとめる。


 

日付データベースを使いやすくする

 ファイル名検索では、「Macでハイパーテキスト」の環境変数「$FPATH」が設定してあれば、デフォルトで検索先となる。
 「日付データベース」検索でも、フォルダのパスを環境変数「$pd」に設定すれば、検索先を指定する手間を省くことができる。

 ここでは、環境変数「$pd」に「日付データベース」のあるフォルダを登録する手順を簡単にまとめる。「元データ」を保存したフォルダではない。登録するのは、「日付データベース(PD1.txt、PD2.txt、…)を保存したフォルダである。
 環境変数の設定については「ターミナルの設定」で詳しく説明してあるので、設定の要点をまとめる。

(手順1)エディタでホーム・フォルダにある「.bash_profile」を開く。
 「.bash_profile」は、「ハイパーテキスト」機能のためにすでに保存してある。Finderに表示されない隠しファイルなので、エディタ「Jedit Ω」では、「ファイル/開く」ウィンドウの「オプション」ボタンをクリックし、「隠しファイルも表示する」にチェックを入れる。

(手順2)「.bash_profile」に、次のようなテキストを加える。
 作成してある「日付データベース」を保存したフォルダの親フォルダをFinderで開く。表示されたフォルダの一覧から「日付データベース」フォルダをセレクトすると、ウインドウ下部にフォルダのパスが表示される。
 例えば、「Macintosh HD▶ユーザ▶ユーザ名▶書類▶MacDesk▶PhotoDate」と表示されているなら、次のように記述する。文字は全て半角英字記号である。
  (例)pd="$HOME/Documents/MacDesk/PhotoDate"
 環境変数「$FPATH」内にフォルダ「PhotoDate」を作成した場合には、次のように記述すればよい。
  (例)pd="$FPATH/PhotoDate"
 フォルダ構成やフォルダ名は、ユーザの環境に従うが、変数名「pd」は変更してはいけない。

Pdprofile


(手順3)「.bash_profile」を保存し、ターミナルを再起動すると環境変数「$pd」は有効になる。
 ○再起動したターミナルに次のコマンドをタイプする。文字は全て半角英字記号である。
  echo "$pd"
 ターミナルに設定したパスが表示されればよい。

 環境変数「$pd」を利用して、「日付データベース」から「撮影年月日」で「元データ」を検索する手順は以下のようになる。
(手順)スクリプト・メニューから「pd_FIND」を起動する。
 ○ダイアログには「日付DB: ('Folder' 未設定)」と表示されるが、環境変数「$pd」に設定したフォルダがデフォルトで設定されるので、「Folder」ボタンでフォルダを指定する必要はない。
 ○「Find」ボタンをクリックして、ダイアログの入力枠に検索する撮影年月日を入力すればよい。

 最後に、おまけ機能のスクリプトとその使いかたをまとめておく。


 

UNIXは仕事の道具

 デスクトップのメニューバーからアップルスクリプトを動かし、画像データのファイルを検索するツールについてまとめてきた。ファイル名や日付で検索した結果は、環境変数「$WDSK」で指定されたフォルダにテキスト「zList.txt」として出力される。ファイルのリストは、リンク形式なので「ハイパーテキスト」機能が使える。スクリプトに関係なくエディタで開いて利用できる。

Filetool7


 最後にスクリプトをいくつか紹介する。
(スクリプト1)スクリプトの出力ファイル「zList.txt」にあるリンクのファイルをまとめて指定のフォルダにコピーする。
 ○メニューバーから「lk_COPY」をクリックする。
 ○ダイアログの「Folder」ボタンでコピー先のフォルダを設定する。
 ○エディタで表示されている「zList.txt」のリンクを選択する。複数のリンクをまとめて選択してもよい。
 ○ダイアログの「Copy」ボタンをクリックすると、確認のダイアログが表示される。「Copy」ボタンでコピーが開始され、経過がターミナルに表示される。「Return」ボタンで最初のダイアログに戻る。
 ○コピー先を変えるなどして、繰り返し操作ができる。「キャンセル」ボタンで終了する。

(スクリプト2)リンクのファイルをまとめて指定のフォルダに移動する場合は、「lk_MOVE」をクリックする。操作は「lk_COPY」と同様である。

 「lk_COPY、lk_MOVE」は、「zList.txt」以外のリンクにも使えるが、リンクはフルパス形式でなければいけない。ファイル名だけのリンクには使えない。当然ながら、フォルダのリンクには使えない。

(スクリプト3)画像ファイルにリンクしているテキスト・ファイルを検索する。検索範囲は環境変数「$FPATH」内に限定してある。
 使い方は次の通り。
 ○Finderで表示している画像ファイルを一つセレクトする。
 ○トップ・メニューから「fd_LINK」をクリックする。
 ○「Find」ボタンをクリックする。
 ○セレクトしたファイルがリンクしているファイルの一覧がターミナルに下のような形式で表示される。
  Linked-File: > zList.txt
  1 source: ~/macdesk/LinkedData3/MacDesk.jpg
  2 linked: ~/macdesk/MacText/MacText170812.txt
 「source」はFinderで選択したファイル、「linked」はリンクしているテキスト・ファイルである。他にリンクとして利用しているテキストがあれば、それらも表示する。環境変数「$WDSK」に設定されたフォルダに「zList.txt」としても書き出される。
 ○「List」ボタンをクリックすると上のファイル一覧がエディタで表示される。リンク形式なので「ハイパーテキスト」機能が利用できる。
 ○スクリプトは動作し続けるので検索を続けることができる。
 ○「キャンセル」ボタンをクリックするとスクリプトは終了する。

(スクリプト4)Finderでセレクトしたファイルのメタ情報をターミナルに表示する。
 ○Finderでファイルを一つセレクトする。
 ○メニューバーから「fd_DATE」をクリックする。
 ○日付関連のメタデータを表示する場合は「MDate」ボタン、メタデータ全体を表示する場合は「MDview」ボタンをクリックする。
 ○Finderでセレクトするファイルを変えて、繰り返し操作できる。「キャンセル」ボタンで終了する。

 最後にスクリプトについて。
 「Scripts」フォルダにあるアップルスクリプトのファイル名は変更してもよい。けれども、「bin」フォルダ内のスクリプトはファイル名を変更してはいけない。
 「Scripts」フォルダにあるアップルスクリプトは、使用しないものは削除してもよい。一方、「bin」フォルダ内のスクリプトは連携して動作しているものがあるので、削除してはいけない。

 アップルスクリプトはMacに標準で付属する「スクリプトエディタ」で、シェルスクリプトはテキスト・エディタで作成した。使いながら、スクリプトの改良を行ってきたが、あくまでも素人のプログラミングである。

 

 

«日付データベースを使いやすくする