bar_1

contents_map

2016年10月29日土曜日

That's Text: Safari でテキストエリアの編集に外部エディタを使う

That's Text スクリプトは、AppleScript で書いたプログラム。Safari で TEXTAREA などの入力フォームを、好みの外部エディタで編集できるようにする。利用には、Automator でこのスクリプトを実行するサービスを作ること、およびシステム環境設定でサービスを駆動するショートカットキーの登録が必要とする。

`That's Text` is a AppleScript program. Using this, you can edit input forms such like TEXTAREA with your favorite external editors in Safari.

## 1. 開発にいたる背景

Webブラウザ上からやや大きめのテキストエリアを編集する機会というのは、たびたび起こる。このような場合、Firefox では、`It's All Text!` や `vimperator` を使って `TEXTAREA` の入力範囲を任意の外部エディタで編集することができた (Chrome なら `Edit with Emacs` とかなのかな)。わたしはこの機能を気に入っていた。ゆえあって Firefox から Safari へと乗り換えた後も、ぜひ使いたいと思ってきた。

ところが Safari で同じことを実現する方法を、わたしはこれまで見つけることができなかった。

今回 AppleScript で書いた `That's Text` スクリプトは、この問題を解決する。ユーザは、このスクリプトと Mac OS X 標準のアプリの `Automator` のサービスの作成と `システム環境設定` のショートカットキーの設定により、Safari でも入力フォームを Vim や Emacs といった自分の好きな外部エディタで編集できるようになる。



## 2. 動作環境


今回わたしが That's Text の開発と検証を行った環境は、以下のようなものである:

* `Mac OS X` version 10.11.6 (El Capitan)
* `Safari` version 10.0.1
* `AppleScript` version 2.5 (`osascript -e "applescript's version"`)
* `Automator` version 2.6
* `システム環境設定` version 14.0
* エディタ
    * `MacVim` Custom version 8.0 (Kaoriya 20161022)
    * `Emacs` version 24.5.1
    * `Visual Studio Code` version 1.6.1

以下に、このスクリプトを利用するための環境構築の方法について述べる。

## 3. 導入の方法

That's Text を利用するための環境構築の作業の流れは:
  1. Automator で、入力なしのサービスを作成し That’s Text スクリプトをコピペする
  2. システム環境設定で、作ったサービスをキーボードショートカットに登録する
の2ステップである。

### 3.1. Automator で入力なしのサービスを作成する

Automator で、That's Text スクリプトthats_text.ascrを利用するサービスを作成する。
作成するサービスは、入力なしのタイプとする。

  1. Finderやメニューから `アプリケーション` を開き、ロボットのアイコンの `Automator` を起動する
  2. 「名称未設定」のウィンドウが開き、その前面で `書類の種類を選択してください:` と促される。ここで、8つほどある種類の中から、上段にある歯車のアイコンの `サービス` をクリックし、右下の `選択` ボタンを押す
  3. 名称未設定のウィンドウがアクティブになる。ここで、左方ペインの `アクション` の中から `ユーティリティ` > `AppleScript を実行` を探し出し、ドラッグして右側の編集ペインにドロップする
  4. 編集ペインの上方にある、選択リスト `"サービス"は次の選択項目を受け取る:` を `テキスト` から一番下の `入力なし` に変更する
  5. おなじく編集ペインの上方にある、選択リスト `検索対象:` を `すべてのアプリケーション` から `Safari.app` に変更する
  6. 最後に、編集ペインのにドラッグした `AppleScript を実行` のコード入力部分において、表示されているテンプレートのコードを削除してから、thats_text.ascr をコピー&ペーストします
  7. `cmd+S` でここまで編集したものを、てきとうな名前をつけて保存してから、Automator を終了する

(ちなみに、Automatorで作成したサービスは `~/Library/Services/` 配下に、ほにゃらら.workflow/として保存される模様です)

### 3.2. システム環境設定でサービスをキーボードショートカットに登録する

OS X の機能を利用して、作成したサービスをショートカットキーに登録する。
  1. メニューから、`システム環境設定` を起動する
  2. 2段めにある `キーボード` をクリックする
  3. キーボードウィンドウとなる。4つあるタブのうち `ショートカット` をクリックする
  4. ショートカットの設定ウィンドウとなる。左側の一覧から、歯車アイコンの `サービス` をクリックする
  5. 右側にサービス一覧が、 `検索`や `メッセージ送信` などのカテゴリごとに表示される。ここで一番下の方にあるカテゴリ `一般` から、先の手順 3.1 で保存したサービスの名称を探しチェックをいれる
  6. 次に、サービス名称がある行の右端をクリックし、好みのショートカット・キーを入力する


以上で、使えるようになります。

0 件のコメント:

コメントを投稿

何かありましたら、どうぞ: