ひとりぶろぐ

価値ある情報をユーザー視点で発信するブログ

[JB]iPhoneでの作業効率が劇的改善!クリップボード履歴/スニペット専用キーボードPasteboardKey

      2016/05/12

クリップボード履歴の使い勝手を改善したい

Screenshot 2013 03 10 07 03 35

ひとりぶろぐのmoyashi (@hitoriblog) です。

MacではLaunchBarなどのクリップボード履歴が取れるアプリを必ず使いますが、iOSでは使っていませんでした。

iOSにもそれ系のアプリ、Pastebotなどがありますが、バックグラウンド動作10分間の時間制限があるので使いづらいものにならざるを得ないのです。

Pastebot — コピー&ペースト強化ソフト 1.4.2(¥350)App
カテゴリ: 仕事効率化, ユーティリティ
販売元: Tapbots – Tapbots(サイズ: 6.9 MB)
全てのバージョンの評価: (405件の評価)

また、アプリを切り替えつつテキストの出し入れをしなければならないのも面倒臭いですね。しかし、それがOSの制約なのでしょうがありません。

Jailbrokenな環境ではそういう制約を受けませんので、クリップボード履歴を常時記録できるようにしました。

また、記録したクリップボードの履歴から使いたいものを呼び出し、カーソル位置に挿入する機能を持ったキーボードも作りました。

これらにPasteboardKeyという名前を付けてみました。

PasteboardKeyは、CocoaNutsのキーボードローダ、Keylord用のキーボードバンドルとして作ってあります。

CocoaNuts (cocoanutapps) on Twitter

既知の問題

  • Safariで横画面にすると表示が崩れます。
  • すべてのアプリで使えるわけではありません。キーボードの選択肢に現れない場合があります。(2013.03.11)できることはやりました。

出現しないアプリの例:

  • OS標準のメモ帳
  • TheWorld
  • ねこつい。
  • Sparrow

理由や、直るかどうかについては聞かないでください。(続きは[Read More]から)

クリップボード履歴機能

PasteboardKeyをインストールすると、クリップボードにテキストをコピーしたときに自動に記録が取られていきます。

Screenshot 2013 03 10 03 56 14

キーボードをPasteboardKeyに切り替えます。

Screenshot 2013 03 10 04 00 30

すると、Pasteboardkey上にさきほどコピーしたテキストがリストアップされています。

Screenshot 2013 03 10 03 57 12

タップすると、テキスト編集領域にペーストされました。

Screenshot 2013 03 10 04 06 50

複数回コピーすると、その分も、PasteboardKeyに蓄積されていきます。

Screenshot 2013 03 10 04 08 51

スニペット(定型文)登録機能

PasteboardKeyが記録しているクリップボードの履歴の数は30(デフォルト設定)と限りがあり、古い方から徐々に消えていきます。

Screenshot 2013 03 10 07 09 57

後々再利用したいものについてはスニペットとして別管理します。

スニペットへはクリップボード履歴から登録します。クリップボード履歴項目を左にスワイプします。

Screenshot 2013 03 10 04 08 51 1

すると、「Text registered to the Snippets」というメッセージが表示され、スニペット登録が完了します。

Screenshot 2013 03 10 04 39 37

「Snippets」を選択すると、さきほど登録した項目がありました。クリップボード履歴の方同様、項目をタップすると、テキスト編集領域にペーストされます。

Screenshot 2013 03 10 05 02 09

スニペットの方には登録数の上限はありませんが、PasteboardKeyで管理しているテキストはメモリに保管されていますので、あまり多くの項目を登録しない方がいいでしょう。

項目の削除と順序の入れ替え

クリップボード履歴、スニペットの項目を右スワイプすると、削除ボタンが現れます。削除ボタンをタップすると、項目が削除されます。

Screenshot 2013 03 10 05 18 00

「Pasteboard」、「Snippets」をダブルタップするとリストが編集状態になり、項目の連続的な削除、順序入れ替えができます。

編集状態時に「Pasteboard」、「Snippets」をダブルタップすると、編集状態から通常状態に復帰できます。

Screenshot 2013 03 10 05 20 17 1

デリートキーの動作について

デリートキーはタップでバックスペース、左スワイプでUndoとなっています(Ver.0.2より)

上スワイプでRedoになりました。(Ver.0.5より)

Screenshot 2013 03 10 19 21 37

JavaScript実行機能

クリップボード履歴の方で項目を左スワイプするとスニペットに登録されましたが、スニペットの方で項目を左スワイプするとどうなるでしょうか?

スニペットをJavaScriptとして実行し、結果をテキストとしてカーソル位置に挿入します。

やってみましょう。「1+1」と入力し、それをコピー。

Screenshot 2013 03 10 05 30 22

クリップボード履歴として登録された「1+1」を左スワイプでスニペットに登録。

Screenshot 2013 03 10 05 30 34

スニペットとして登録された「1+1」を左スワイプしてJavaScriptとして実行。すると、カーソル位置に2が挿入されました。

Screenshot 2013 03 10 05 30 49


特殊な変数

PasteboardKeyでJavaScriptを実行する際は特殊な変数を参照することができます。

変数名 内容
TEXT 選択中のテキストがある場合は選択中のテキスト。選択中のテキストが無い場合はクリップボードのテキスト
CLIPBOARD クリップボードのテキスト
SELECTION 選択中のテキスト
SONG 再生中の曲の情報「SONG.title」「SONG.albumTitle」「SONG.artist」。再生中でないと情報は取得できません
BUNDLEID 使用中のアプリケーションのID(例: com.apple.mobilemail)
WIFI 接続している無線LANの情報「WIFI.ssid」「WIFI.macAddr」
BATTERY バッテリーの情報「BATTERY.level」「BATTERY.state」

クリップボードや選択テキストのJavaScriptでの加工などができます。

おおよそMyScriptsと同様です。スクリプトの作成にはMyScriptsをお勧めします。

MyScripts 2.5(¥350)App
カテゴリ: 仕事効率化, ユーティリティ
販売元: Takeyoshi Nakayama – Takeyoshi Nakayama(サイズ: 2.3 MB)
全てのバージョンの評価: (17件の評価)
+ iPhone/iPadの両方に対応

MyScripts @ WIKI – トップページ

特殊な関数

関数 内容
openURL() 渡された引数をURLとして開きます。別のアプリにテキストを渡したりができます。
enc() encodeURIComponent()の短い別名
dec() decodeURIComponent()の短い別名

使用例: 選択中のテキストないしはクリップボードのテキストをTweetbotに送る


// TweetbotでPost
openURL("tweetbot:///post/" + enc(TEXT));

選択中のテキストだけを対象にしたい場合は以下のようにします。


// TweetbotでPost
openURL("tweetbot:///post/" + enc(SELECTION));

クリップボードだけを対象にしたい場合は以下のようにします。


// TweetbotでPost
openURL("tweetbot:///post/" + enc(CLIPBOARD));

コメントをタイトルにする

スニペットの方は、クリップボード履歴の方と違って、リスト上に1行目しか表示されません。

これを利用して、JavaScriptにタイトルを付けてスッキリ使うことができます。

1行目をコメントにするわけですね。


// 括弧でくくる
"[" + TEXT + "]";

// NowPlaying
SONG.title + " by " + SONG.artist + " from " + SONG.albumTitle;

Screenshot 2013 03 10 06 45 11

UniversalExpanderと併用すると便利

併用すると便利です。

ひとりぶろぐ » [JB]いろんなiOSアプリで無理矢理TextExpanderを有効にしちゃうUniversalExpander

既知の問題

  • Safariで横画面にすると表示が崩れます。
  • すべてのアプリで使えるわけではありません。キーボードの選択肢に現れない場合があります。(2013.03.11)できることはやりました。

出現しないアプリの例:

  • OS標準のメモ帳
  • TheWorld
  • ねこつい。
  • Sparrow

理由や、直るかどうかについては聞かないでください。

免責

PasteboardKeyは無保証、無サポートです。自己責任でお使いください。

動作確認環境

  • iPhone 5 / iOS 6.1.2

履歴

  • 0.7-4 2013.03.21: パッケージング修正。Action Menuの依存を削除。Action Menu経由で呼び出したい人はAction Menuを別途インストールしてください。
  • 0.7-3 2013.03.21: パッケージング修正。
  • 0.7-2 2013.03.21: パッケージング修正。
  • 0.7-1 2013.03.21:
    • バグフィックス
    • Activator経由の呼び出しをトグル動作に
    • Action Menuサポート
    • Activator、Action Menu経由の呼び出し時にバイブレータを動作させるオプションを追加
    • JavaScriptの関数を新たに定義: format() 例: format(“%1$s %2$s”, “str”, 100);
    • マーカージャンプ機能追加。(Pasteboardボタン長押しで発動) 例: 次の文章をコピー “Place holder 1: ### Place holder 2: ###” そしてPasteboardKeyからペースト。そして、Pasteboardボタンを長押し。ただし、この機能はブラウザのフォームだとうまく動かないです。
    • 行選択機能を追加。(Snippetsボタン長押しで発動)ただし、この機能はブラウザのフォームだとうまく動かないです。
  • 0.6-2 2013.03.15: パッケージング修正。
  • 0.6-1 2013.03.15: ActivatorからPasteboardKeyを呼び出せるように。
  • 0.5-2 2013.03.14: パッケージングをしくじっていたので修正。0.5-1をインストールするとPasteboardKeyに全く出てこないか、一部のアプリの出てくる状況でした。
  • 0.5-1 2013.03.14
    • キーボードが残るバグに対処(@yfrancisさんありがとうございます)
    • JavaScriptの関数を新たに定義: openURL(), enc(), dec()。openURL()を使って別アプリにURL Schemeでテキストを渡せます。enc()、dec()はencodeURIComponent()、decodeURIComponent()のただの短い別名。
    • JavaScriptの変数を新たに定義: WIFI.ssid, WIFI.macAddr, BATTERY.level, BATTERY.state。無線LANの情報とバッテリー情報を参照できます。
    • スワイプ方向を選択するオプションを追加。削除を右から左へのスワイプに割り当てられるようになりました。
    • Deleteキーを上方向にスワイプするとRedoするように
  • 0.4-1 2013.03.12 意図しない履歴の蓄積を抑制しました。通知の表示位置を修正しました。
  • 0.3-1 2013.03.11 おおよそほとんどのアプリでキーボードの選択肢に現れるようになりました。確認はしていませんが。
  • 0.2-1 2013.03.10 余計なものがコピーされる不具合を修正。デリートキーの動作を変更。タップでバックスペース、左スワイプでUndoにしました。
  • 0.1-1 2013.03.10 初版

インストール

いつもの New野良リポジトリ をCydiaに登録後、以下のリンクをタップしてインストールしてください。

インストールするとリスプリングを促されるので、リスプリングします。「設定>PasteboardKey」を必要に応じて設定してください。

PasteboardKeyをCydiaからインストールする

Amazonで買い物してく?

 - iPhone, Jailbreak