この記事はこんな人の夢を叶えます。
当記事ではMacのどんなアプリ上でも動作するPopClipの代替アプリUniversal Tipを紹介します。文字数カウント以外の機能もあり、しかも無料というPopClipキラーです。
はじめに文字数カウントの方法としてよく取り上げられるPopClipやショートカットと比較した、Universal Tipのメリット・デメリットを説明します。続いてUniversal Tipの導入方法と日本語対応をの設定方法を解説します。
ではいきましょう!
PopClip・ショートカットと比較したUniversal Tipのメリット・デメリット
結果は下記のとおりです。
Universal Tip | PopClip | ショートカット | |
---|---|---|---|
料金 | 無料 | ¥2,800 | 無料 |
事前設定 | 5分程度の設定あり | 5分程度の設定あり。(文字数カウント用のファイルを別途ダウンロード) | 5分程度の設定あり |
表示の仕方 | ショートカット一発 | 勝手に表示 | 共有を選択してサービス→ショートカット |
簡単にまとめると、Universal Tipは「5分程度の事前設定は必要なものの、ショートカット一発で起動でき、無料で使える」特徴があります。
私がPopClipよりUniversal Tipをお勧めする最大の理由が「表示の仕方」です。
PopClipは下記のように文字を選択したらすぐに表示されます。「すぐに表示されて便利じゃん」と思われるかと思いますが、「文字数カウントしたくない時も表示され、画面が見にくくなる」というデメリットがあります。
対してUniversal Tipはショートカットキーを押した時だけ起動してくれます。
上記のgifを比較して、「Universal Tipの方が起動に時間がかかる」と思われるかもしれません。実際のところは「ショートカットを押さないと起動しない」ことを強調するため、わざと遅めにキー入力をしています。ショートカット入力後の起動時間は、PopClipとほとんど変わりない速さで起動してくれます。
Universal Tipの特徴がわかったところで、続いてはUniversal Tipを使って実際に文字数カウントしてみましょう。
Universal Tipを使って文字数カウントする方法
それでは実際にUniversal Tipを使ってみましょう。まずはアプリをダウンロードします。
Universal TipをMacにダウンロードし、アプリを起動する
Universal TipはMacのApp Storeからダウンロードできます。
App Storeからダウンロードできなくなったため、githubにアクセスし、Tip.zipからダウンロードします。(直ダウンロードリンク)
ダウンロードしたアプリをアプリケーションフォルダに移動し、起動します。起動確認はメニューバーで確認できます。
○に「i」のアイコンがあれば起動しています。
スクリプトファイルをダウンロードして配置する
ターミナルアプリを開き、以下のコマンドをコピペしてEnterしてください。ターミナルアプリはLaunchPad(アプリ欄)→その他→ターミナルにあります。
curl -o ~/Library/Application\ Scripts/tanin.tip/provider.script --create-dirs https://raw.githubusercontent.com/tanin47/tip/master/scripts/provider.script && chmod 755 ~/Library/Application\ Scripts/tanin.tip/provider.script
3秒ほどで終わります。めちゃはや。
Universal Tipに権限を与える
システム設定→キーボード→キーボードショートカット...→サービスに移動してください。
テキストの中からTip: open tipsを見つけ、チェックしましょう。
画面はVenturaの場合。
また⌘&
をダブルクリックしてショートカットキーを変更できます。私は^+Tで設定しています。
Universal Tipの動作確認
ではUniversal Tipの動作確認をしましょう。文字を選択し、ショートカットキーを変更してない場合は⌘+&、変更した場合は変更したキーを入力してください。
成功した場合は以下画像のように3つのメニューが表示されます。
さて、読者の皆さん。画像の違和感に気づかれましたか?
...
...
...
そうです、文字数が正しくカウントされていないのです。正しくは61文字です。
英語の場合文字数カウントに問題は生じませんが、日本語だとなぜか文字数表示がバグります。続いてはこの問題を修正していきます。
私はエンコードの問題だと思うのですが、実際はどうなんでしょうか?多分そうですよね。
Universal Tipを日本語に対応させる
問題を修正するため、スクリプトを編集します。
まずはスクリプトがあるフォルダに移動します。Finder(アイコンを右クリック)→フォルダへ移動...を選択し、表示された検索窓に以下をコピペしてEnterを押してください。
~/Library/Application Scripts/tanin.tip/provider.script
表示されたファイルをお好きなアプリで開いてください。
続いてスクリプトを編集します。
画面下に移動すると99行目から以下のコードがあります。(バージョンによって前後する可能性あり。)
def get_text_length(input)
[{
type: 'text',
label: 'Text length: ' + input.length.to_s,
value: input.length.to_s
}]
end
以上のコードを以下のように変更してください
def get_text_length(input)
[{
type: 'text',
label: '文字数: ' + input.force_encoding("UTF-8").grapheme_clusters.length.to_s,
value: input.force_encoding("UTF-8").grapheme_clusters.length.to_s
}]
end
Rubyはほとんど使い方を知らないので、もっといいコードがあるかもしれません。その際はコメント欄でご教授ください!
以上の設定で文字数を正確にカウントしてくれます。やったね。(絵文字や濁点文字も正確にカウントできてました。)
機能拡張のアイデア
Macのショートカットと組み合わせることで色々できるようになると思います。いい案があったら共有します。
まとめ: 無料で拡張性もあるUniversal Tipを使いこなそう
ということで無料で文字数をカウントするUniversal Tipを紹介しました。
Rubyさえ書ければ拡張性はかなりあるので今後ともお世話になる予定です。
以上。
コメント