• スパイメモ帳

Windows 11では、標準アプリケーションのメモ帳がUWP版に切り替わった。このメモ帳、一見、Windows 10までのものと同じようだが、かなり違う。なお、従来のWin32版(デスクトップアプリ)のNotepad.exeも、C:\Windows\System32にそのまま残っている。ただし、UWP版メモ帳のアプリ実行エイリアスが有効になっているため、「設定 ⇒ アプリ ⇒ アプリの詳細設定 ⇒ アプリ実行エイリアス」(Windows 11 Ver.21H2では、アプリ ⇒ アプリと機能)で無効にしないと、エクスプローラーなどからは起動できない。アプリ実行エイリアスを無効にしても、スタートメニューに登録してあるアイコンからはUWP版メモ帳が起動するが、コマンドラインからのnotepad.exeの起動やエクスプローラーからのアイコンクリックではWin32版メモ帳が起動する。

一見してわかる違いとして、絵文字がカラーで表示される(Win32版ではモノクロ表示だった)。そのほか、Windows Terminal付属のCascadiaフォントの合字なども正しく表示できる。これは、文字レンダリングの方法が変わったからだ。従来のGDIを使ったUniscribe RichTextコントロールでは、絵文字をカラーで表示できなかった。Uniscribeは、Windows 2000で開発されたユニコードのテキストレンダリング機能で、その代替機能としてDirectWriteが開発された。メモ帳は、書式のないテキストの表示しかできないが、Office2013に採用された“D2D/DirectWrite RichEdit ウィンドウ コントロール”が使われている。

メモ帳のヘルプには、ヘッダーフッターの記号と日時の自動挿入(.LOGを先頭にいれておく方法)しか解説がないが、実は「隠しコマンド」がある。そのうちの1つは、ユニコードのコードポイントと文字の相互変換機能だ。メモ帳にユニコードのコードポイント(16進数。ASCIIコード相当範囲にも対応しているが0x00~0x1Fの制御コードは変換しない)を入れ、Alt+Xキーを押すと、コードポイントが文字に変換される。例えば、“29F5”と入力してAlt+Xキーを押せば、円マークではない逆スラッシュ文字的なもの(REVERSE SOLIDUS OPERATOR)が表示される。この機能は逆変換もサポートしているため、ユニコード文字に対してAlt+Xでコードポイントを表示、再度の打鍵で元の文字に戻る(合字や制御文字の場合にはカーソル位置が動くことがあるので注意)。

もともとWindowsには、Altキーを押しながらテンキーで10進数2桁、4桁のASCIIコードを入れると文字に変換する機能があった(MS-DOS時代からの機能)。しかし、テンキーのないマシンも増え、Unicodeに対応していないため、いまではほとんど忘れ去られた機能だ。これに対してAlt+Xによるユニコード変換は、コード入力という手間はかかるものの、コードポイントを覚えているなら簡単に入力が可能。いちいち文字コード表アプリなどを起動するよりも便利だ。

もう1つの隠し機能は、Ctrl+]による対応する括弧間の移動だ。これは、カッコの「前」にカーソルがあるとき、“Ctrl+]”で対応する括弧の前にカーソルが移動するものだ。移動は双方向で、閉じ括弧の前にカーソルがある場合には開き括弧の前に移動する。このため、繰り返し打鍵することで元の位置に戻ることができる。有効なのは、ASCIIコードの括弧記号“()”(半角丸括弧)、“{}”(半角波括弧)、“[]”(半角角括弧)のみで、半角カナのカギ括弧や全角の括弧記号には対応していない。

カーソルがカッコの前にないと動作しないので、閉じ括弧を入力したあとに開き括弧の位置に戻るには、カーソルを1つ戻さねばならない。どちらかというと、入力済みのテキストで多重になっているカッコの対応や位置を調べるためのものだ。メモ帳のこの機能は、どちらかというとテキスト内での括弧の整合性を調べるためのものといえる。とはいえ、JSONやLaTexの括弧対応を調べることができるので応用範囲は狭くない。

また、Webブラウザ、他のテキストエディタなどから、テキスト選択範囲をドラッグ&ドロップしてメモ帳に貼り付け、あるいは、メモ帳から選択範囲を他のアプリウィンドウへドラッグ&ドロップして「切り抜き」などが可能になった。このうち意外にドラッグ&ドロップによる切り抜きが便利。テキストデータを内容により分類するときなど、貼り付け先のメモ帳を複数開いておき、マウスだけでテキストを振り分けていくことができる。

特に隠されているわけではないが、編集領域の右クリックメニューから、「Unicode制御文字の表示」と「Unicode制御文字の挿入」が行える(Windows 10のWin32版メモ帳にもある)。前者は、テキスト中にあり、見ることができないZWJ(Zero Width Joiner。ゼロ幅接合子)など15個のUnicode制御文字を縦線で表示するもの(写真01)。Unicode制御文字は、通常のテキスト表示では見ることができず、このままExcelなどに貼り付けると、見た目には、正しく見えるのに検索にヒットしないなどの問題を起こすことがある。特にUWP版のメモ帳では、複数文字からなるカラー絵文字(ZWJなどを使うもの)も正しく表示できるようになっている。Webブラウザなどから選択範囲をドラッグ&ドロップしてテキストの貼り付けしたときなど、Unicode制御文字を表示させることで、紛れ込んだUnicode制御文字を表示させることが可能だ。

  • 写真01: メモ帳は編集エリアでの右クリックに「Unicode制御文字の表示」、「同挿入」というメニュー項目がある。制御文字を表示させると「家族」の絵文字のように複数の絵文字をZWJで接合している文字が分解されて制御文字(縦線)とともに表示される。制御文字は、縦線と図形の組み合わせで表現される

これに対して「Unicode制御文字の挿入」は、17個の制御文字をメニューから挿入できる。ただし、最後の2つ「RS」(Record Separator。ASCIIコードの0x1E)、「US」(Unit Separator。同0x1F)に関しては、Win32版メモ帳では有効だったが、UWP版メモ帳ではうまく動いていないようだ。どちらの文字も「Unicode制御文字の表示」では表示されないので作ったファイルをダンプしてみないとわからない。少なくともWindows 11(Ver.21H2、22H2)に付属の「メモ帳 11.2208.25.0」では、何も挿入されていなかった。

その他、カーソルキーとコントロールキー、シフトキーの組み合わせで、単語単位の移動や選択が行え、Home、Endとコントロールキーの組み合わせで文章先頭、末尾、PageUpとPageDownキーとコントロールキーの組み合わせではウィンドウ内の先頭、末尾の位置へ移動できる。巨大なテキストを読み込んだとき、覚えておくと便利。

今回のタイトルの元ネタは、1970年に発売された「スパイメモ」である。発売は「象が踏んでも壊れない」で有名なサンスター文具。スパイメモは当初は、水に溶ける紙などが入っているものの、あくまでも手帳であり文具枠に収まっていた。その後、シリーズ化されたが、後期になると文具枠を飛びだし完全なオモチャになっていた。