「Notepad++」、スクリーンリーダーNVDAで視覚障害者(全盲)にも使いやすいテキストエディター、正規表現での検索と置換や、矩形選択でのコピー・張り付けができる

ちょっとしたメモや文章を書くだけならWindows付属の「メモ帳」でも十分ですが、iOSやAndroidの標準の文字コードであるutf-8形式での保存がうまくできないなど、「メモ帳」にはいくつか不便なところがあります。

「Notepad++」(ノートパッドプラスプラス)はプログラマー向けのエディターですが、プログラミング以外でも、視覚障害者がスクリーンリーダーでテキストを編集するときにもとても便利です。

無料で使用できるオープンソースのソフトで、スクリーンリーダーNVDAが読み上げに対応しています。

ポータブル版もあるので、usbメモリに入れて持ち歩くこともできます。

utf-8やShift-JISの文字コードで保存できる以外に、私が特に便利だと思う機能は、


  • 矩形選択(コラムモード)での編集
  • 正規表現での文字列の検索と置換

です。


矩形選択 – Alt+Shift+カーソルキー

Shiftキー+カーソルキーで、文章の一部を範囲選択してコピー/切り取りして張り付ける場合、普通は横に1文字ずつ選択するか、または縦に選択するときは行単位での編集になります。


Notepad++で、Altキー+Shiftキーを押しながら文字列を選択すると、縦にカーソルを移動すると、行全体ではなく、横に選択した文字の下にある文字だけを選択すること、矩形(4角形)に範囲選択できます。

テキストファイルで表形式で、縦に項目を並べて項目を書く作業を、スクリーンリーダーの読み上げを聞きながら行うのは少し難しいです。

Excelを使うとやりやすくなりますが、Notepad++でもExcelのように簡単に縦の列ごとのコピーや切り取り、張り付けの編集ができます。

たとえば、ドレミの音符の読み方を、イタリア語、日本語、英語、ドイツ語で並べて書きたいとき、まず次のように全て縦に並べて書き、後で横に張り付けることができます。


ファ

C

D

E

F

G

A

B

ツェー

デー

エー

エフ

ゲー

アー

ハー


これを矩形選択を使って次のように横に並べることができます。横に並べたい行をAlt+右カーソルと下カーソルで矩形選択して、Ctrl+xで切り取り、張り付けたい位置でCtrl+vで張り付けます。


ド ハ C ツェー

レ ニ D デー

ミ ホ E エー

ファ ヘ F エフ

ソ ト G ゲー

ラ イ A アー

シ ロ B ハー


ただし、縦に選択する文字列の長さは同じでなければなりません。他の行より文字数が多い行があるとその多い分の文字は選択されません。


正規表現での検索と置換 – Ctrl+fまたはCtrl+hの後にAlt+e

「正規表現」というのは、似たような特徴の文字列をグループでまとめて検索や置換の文字列に指定できる表現方法です。Microsoft Wordでは「ワイルドカード」と呼んでいます。

たとえば、ソフトの使い方などテキストファイルの文章を読むとき、第1章、第2章、第3章…と章ごとにジャンプしながら読みたいことがあります。

このとき、普通の検索ならば、第2章にジャンプしたいときに、「第2章」、「第3章」にジャンプしたいときに「第3章」という文字列を検索文字列に、その都度指定しなおさなければなりません。

「正規表現」を使うと、「第¥d+章」という検索語で「第1章」も「第13章」も検索できます。目次をたどるように効率よくテキストファイルの文章を読むことができます。

¥d(半角の円マークにd)は数字を表し0から9のどれでもいいから検索するという意味になります。

+(プラス)というのはそれが1文字以上あるという意味で、d+なら数字が1桁でも2桁、3桁でもよいという意味になります。


他にもいろいろな指定ができます。

[]でかこんだ文字のどれかという指定や、行の先頭(^)とか行末($)という指定もできます。

たとえば、楽譜作成ソフトMuseScoreで歌詞をまとめて入力するためのテキストを作るとき、歌詞を1文字ずつ半角スペースで区切らなければなりませんが、これを、まずスペースなしで書きます。


あかいくつはいてたおんなのこ


次に正規表現置換で、次のような指定で置換を行います。


  1. 検索文字列に「(.)」
  2. 置換文字列に「$1 」(ドル記号1の後に半角スペース)

検索文字列の.(ピリオド)は、仮名でも数字でもアルファベットでも、何か1文字を表します。()で囲むと置換文字列の中で検索された文字に置き換えられます。

置換文字列の$1は、検索文字列で()で囲まれた部分で検索された文字が入ります。$2なら2番目の、$3なら3番目の()で囲まれた部分になります。

上の例の場合は、何でもいい1文字を検索して、その文字の後ろに半角スペースを加えたものに置き換える指定をしていることになります。置換結果は次のようになります。


あ か い く つ は い て た お ん な の こ


また、テキストファイルを、ExtraやIbukitenなどの自動点訳ソフトを使って点字データに変換する前に前もって正規表現で編集しておくと便利なことがあります。


  • 行頭と行末の半角スペースを削除する(行の途中の半角スペースは残る)
  • 行の先頭に半角スペースを2つ入れる
  • 「第…章」から始まる行の先頭に半角スペースを4つ入れる
  • (1)、(2)、(3)などを、1.、2.、3.などに置換する。

といったことが、正規表現を使った文字列置換で可能です。


参考



関連投稿