ふと気がつけば、macOSの定番アプリに落ち着いている「メモ」。Macに登場したのはOS X Mountain Lionのとき、iPhone/iOSに標準装備の同名アプリと同期できることをアピールポイントとして登場した。Macユーザの多くがiPhone/iOSユーザということもあり、ちょっとした覚え書きはiPhoneで「メモ」に書き込み後からMacでじっくり作業、という使いかたが瞬く間に拡がっている。
そんな「メモ」だが、知られざる機能は意外に多い。iPhoneなど他のデバイスとの連携を念頭に、その裏ワザ的な機能をいくつか紹介してみよう。
デバッグモードを有効にする
「メモ」にはデバッグモードが存在する。デフォルトでは無効化されているため、Terminalで以下のとおりコマンドラインを実行しよう。次回「メモ」を起動したときから、メニューバーに「Debug」が追加されているはずだ。
このDebugメニューには多くのコマンドが用意されているが、公式ドキュメントが存在しない(筆者の探しかたが甘いだけかもしれないが)。その機能はコマンド名を見て判断するしかないが、作成済のメモをまとめて消してしまうなど取り返しのつかなそうなコマンドが散見されるため、慎重を期したうえで利用してほしい。
・「メモ」にDebugメニューを表示する
$ defaults write com.apple.Notes DebugModeEnabled -bool true
・「メモ」のDebugメニューを非表示にする
$ defaults delete com.apple.Notes DebugModeEnabled
ダミーのメモを大量につくる
前述したとおり、Debugメニューのコマンドはいまひとつ使いかたがハッキリしない。試行錯誤したほうが身のためで、それにはダミーのメモをいくつか作成しなければならない……この点はApple側も心得ているようで、「Add 200 random notes to iCloud」と「Add 200 random notes to Local」というコマンドが用意されている。ただ選択するだけで、適当な文字列が散りばめられたメモがiCloud(またはローカル)に作成されるので、最初はこの200のメモを対象にコマンドを実行してみよう。
なお、同じコンセプト(?)のコマンドとして「Fuzz Test Text」も用意されている。こちらは実行すると、他のメモを選択するまでカーソル位置にランダムな文字列を挿入し続ける。適当な内容のメモを作成しようとキーボードを押しまくるより効率的なので、こちらもあわせて活用したい。
メモにかけた「鍵」を一斉削除する
「メモ」アプリで作成したメモには、任意のパスワードを設定することができる。ふとした拍子に覗き見られないよう、鍵をかけておくというわけだ。しかし、登録できるパスワードは一種類のみ、メモごとに異なるパスワードは設定できないので鉄壁の守りというほどではない。そもそもログインパスワードで守られている(ログインできなければ「メモ」を起動できない)わけだし、二重に保護するほどでもないような……。
そう考えた場合には、メモにかけた鍵を削除することになるが、ひとつひとつ削除していては日が暮れてしまう。そこで利用したいのが、Debugメニューにある「Remove All Passwords」。ただ選択するだけで、現在作業中のアカウントのメモにかけた鍵をまとめて削除できる。意思を確認するダイアログは表示されず、いきなり全削除されてしまうので、ヤバそうなメモがある場合は注意したい。
メモを手動でバックアップ&復元
「メモ」アプリのDebugメニューには「Save Archvie...」というバックアップ目的で使えそうなコマンドが用意されているものの、実際には期待どおりに機能しない。他のアカウントへ引っ越しするときなど、メモをまるごとバックアップ&復元するときには、別の方法を使うしかない。
以下に示すコマンドラインは、カレントユーザが作成したメモをバックアップ&復元するものだ。「メモ」アプリは(サンドボックス化された)ライブラリフォルダ以下にSQLITE 3データベースを作成、そこにメモの見出しや本文を保存しているので、それをまるごとZIPにアーカイブ、その後同じディレクトリへ書き戻している。
なお、この方法では画像や音楽などリンク情報しか持たないコンテンツについてはバックアップされない。それでも、6つのファイルを押さえておくだけで大量のメモを一度にバックアップ&復元できるのだから、知っておいて損はないだろう。
・メモを手動でバックアップ
$ zip -j memoback.zip ~/Library/Containers/com.apple.Notes/Data/Library/Notes/NotesV7.storedata* ~/Library/Group\ Containers/group.com.apple.notes/NoteStore.sqlite*
・メモを手動で復元
$ cd ~/Desktop
$ unzip memoback.zip ; cd memoback
$ cp NotesV7.storedata* ~/Library/Containers/com.apple.Notes/Data/Library/Notes/
$ cp NoteStore.sqlite* ~/Library/Group\ Containers/group.com.apple.notes/