VSCode大好きな僕があえてテキストエディタ『Mery』も使い続けるワケ

## テキストエディタMery、おすすめです

皆さん、日本語文書のテキストエディタにこだわってますか？おっと、テキストエディタの趣味を聞くのは戦争に繋がるのであまり聞かないほうがいいですね…。

今日は、僕の大好きなテキストエディタ『[Mery](https://www.haijin-boys.com/)』についての話をします。
**※この記事は、最新のベータバージョン v3.5.4 時点での内容です。**

テキストエディタ『Mery』は、Windowsで動作するシンプルで使いやすい無料のテキストエディタです。業務上のテキストはもちろん日記や恋文まで、あらゆるテキスト文書を編集することができます。(もちろんメモ帳で恋文を書いていただいてもいいのですけれど。大事なのは道具より気持ちですよね)
また、HTMLやJava、PHP、SQLなどの様々なプログラミング言語のシンタックスハイライトも可能です。

この記事では、ITエンジニアの僕が「Meryって、こういうところがいいよね」と思う点を書いてみました。
開発からドキュメンテーションまでVSCodeで済ませることができてしまう現代において、僕があえてテキストエディタを使い分ける意味でもあります。

- 日本語の扱いが得意
- マルチカーソル機能
- JavaScriptでマクロが書ける
- Zenモード
- カスタムフォント機能
- あいまい検索
- マーカー機能

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/164949/cfd98e20-03d7-2dd6-a42f-6f510cd29151.png)

### 日本語の扱いが得意

Meryは日本人作者のKuro氏によって開発されているため、日本語の扱いが得意です。

VSCodeの場合、日本語の助詞繋がりの文章における単語分割が苦手で、 `Ctrl + →` の単語移動などで末尾の句読点まで一文まるまるが単語として認識されて動作することが多々あります。**その点、Meryならひらがな・カタカナ・漢字のまとまりごとに単語扱いとなるため扱いやすいです。**

さらに、トゥルーインライン入力に対応しており、Wordのように入力中 (変換前) の文字がリアルタイムで画面上に反映されます。これにより後に続く文字を見失うことなく入力することができ、IMEによる変換操作を要する日本語入力を扱ううえで親切な機能と言えます。

### マルチカーソル機能

Meryにはマルチカーソル機能という便利な機能があります。これは複数箇所を同時に選択し、同時に編集することができる機能です。VSCodeでもお馴染みの機能ですね。

例えば、以下のようなテキストがあったとします。

```
var x = 10;
var y = 20;
var z = 30;
```

このテキストで `var` を `let` に変更したい場合はどうすればよいでしょうか？通常のテキストエディタでは一つずつ修正するか、まとめて置換する必要がありますが、Meryではマルチカーソル機能を使って一気に修正することができます。

具体的には、以下の手順で操作します。

1. 1行目の `var` の部分にカーソルを合わせます。
2. `Ctrl + Alt + ↓` キーを押して、下方向にカーソルを増やします。
3. `Backspace` キーで `var` を削除します。
4. `let` と入力します。

すると、以下のようにテキストが変更されます。カーソルは `let` の後ろに複数表示されている状態になっています。

```
let| x = 10;
let| y = 20;
let| z = 30;
```

このように、マルチカーソル機能を使えば、同じようなパターンのテキストを一括で編集することができます。これはプログラミングだけでなく、文章の校正などにおいても非常に便利な機能です。**日本語を主に扱うテキストエディタの中でもマルチカーソルに対応しているものは少なく (Meryだけ？)** 、特徴的な機能のひとつです。

### JavaScriptでマクロが書ける

Meryはマクロ機能も搭載しており、繰り返し行う作業やカスタムしたい操作をお好みで実現することができます。

MeryのマクロエンジンにはWSHが採用されているため、VBScriptやJavaScriptでマクロを記述することが可能です。 (WSHでは `let` が使えないなど、少し古めかしい仕様ではあるのですが)
JavaScriptはWeb開発などで広く使われているプログラミング言語であり、ITエンジニアの方なら馴染みがあるかと思います。JavaScriptでマクロを書くことで、Meryの機能を自由に拡張することができます。

例えば、以下のようなマクロを作成してみました。

```javascript
// テキストエディタMeryのおすすめ機能をランダムに表示するマクロ
var features = [
  "日本語の扱いが得意",
  "マルチカーソル機能",
  "JavaScriptでマクロが書ける",
  "Zenモード",
  "カスタムフォント機能",
  "あいまい検索"
];
var index = Math.floor(Math.random() * features.length);
var feature = features[index];
alert("テキストエディタMeryのおすすめ機能は「" + feature + "」です。");
```

このマクロをMeryインストールフォルダ内の `Macros` フォルダに `おすすめ.js` のように保存して、Meryのマクロ機能に登録して実行すると、テキストエディタMeryのおすすめ機能をランダムに表示します。

このように、JavaScriptでマクロを書くことで、Meryの機能を自由に拡張することができます。
シンプル志向のMeryですが、**登録したマクロはショートカットキーに自由に設定することができる**ので、Home/Endキーのちょっとしたカーソル移動のような操作も細かくカスタマイズすることが可能です。

ちなみに有志によって書かれたマクロは、公式Wikiの [マクロライブラリ](https://www.haijin-boys.com/wiki/%E3%83%9E%E3%82%AF%E3%83%AD%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA) に上げられているため、色々試してみても面白いと思います。

### Zenモード

MeryにはZenモードという機能があります。これは、全画面表示にした上でさらにメニューやツールバーなどのUI要素一切を隠すことで集中力を高める表示モードです。

Zenモード:
![Zenモードの画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/164949/ebdc6fe2-a626-e54d-15b6-28d19d9018ff.png)

Zenモードに切り替えるには、[表示]メニューの[Zenモード]にチェックを入れるか、割り当てているショートカットキーを押します。Zenモードから通常モードに戻すには、もう一度同じ操作をします。

"Zen" はプログラミング界隈では比較的によく聞く単語で、 "禅" という「**今、ここに集中している状態**」を表す言葉から来ています。洒落ていますね。

### カスタムフォント機能

Meryでは、Windowsにインストールされていないフォントを使うカスタムフォント機能があります。

使い方は簡単で、Meryのインストールフォルダ内の `Fonts` フォルダにフォントファイル (`.ttf` ファイルなど) を置くだけです。フォントファイルを置いた後にMeryを起動すると、通常のインストールされているフォントと同じようにMeryのフォント設定の中で利用することができます。
カスタムフォント機能を使えば、USBメモリなどでMeryを持ち運ぶときにも好みのフォントでテキストを表示することができます。

また、個人的にこの機能が重宝しているのは、Windowsのフォントインストールは上書きを繰り返すと不具合が起きやすいというのが理由です。正しく置き換わらなくなってしまったりと苦労が絶えません。僕は [HackGen](https://github.com/yuru7/HackGen) などの合成フォントをいくつか公開しているのですが、その作成過程で何度もフォントの入れ替えを行うことになるため、この機能には大変助けられています。

### あいまい検索

v3.5.0で搭載されたあいまい検索という機能を使って、テキスト中の単語や文字列を曖昧な条件で検索することができます。あいまい検索では、以下のようなオプションを指定することができます。

- 全角半角を区別しない
- ひらがなカタカナを区別しない
- 濁点半濁点を区別しない
- 「ふんいき」と「ふいんき」のような類似した文字列の許容度

例えば、「コーヒー」という単語をあいまい検索する場合は、以下のような文字列も検索結果に含まれます。

- ｺｰﾋｰ
- コーヒ
- こーひー
- コーヒエ

このように、あいまい検索を使えば、表記ゆれや入力ミスなどに対応した柔軟な検索が可能です。あいまい検索は、[検索]メニューの[あいまい検索]をONにすることで行うことができます。

### マーカー機能

Meryにはマーカー機能という機能があります。
これは、特定の単語やパターンをあらかじめ設定しておくことで自動で合致部分をハイライト表示してくれる機能です。

僕は `TODO` という単語を常時設定しており、メモの中でさくっとTODOを目立たせることができて大変便利です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/164949/2720414e-1166-8093-a153-01e1900f3593.png)

このように、マーカー機能を使えば、特定の単語やパターンを強調することができます。これはプログラミングや文章の校正などで非常に便利な機能です。

また、マーカー機能では正規表現も利用することができ、ふくざつな検索条件で運用することも可能です。一時的にマーカーに単語を追加/削除するような使い方をする場合は、ショートカットキーを設定するとさらに便利に使うことができます。

### まとめ

テキストエディタ『Mery』の優れた機能を紹介しました。Meryは「メモ帳からステップアップ。そんなときに使ってもらえるエディタを目指しています。」というシンプル志向のコンセプトを謳っているため初期状態こそ機能の少ない印象を受けますが、マルチカーソル機能やJavaScriptマクロで自由にカスタマイズができ、さらにZenモードやカスタムフォント機能、あいまい検索などのちょっと面白い便利な機能も搭載しています。

VSCodeのような多機能エディタに慣れたITエンジニアの方にとっても、Meryは日常のテキスト編集の効率や快適さを高めることができるテキストエディタだと思います。Meryは無料でダウンロードできますので、ぜひ一度お試しください。

### リンク

- [「Mery」フリーの高機能テキストエディター - 窓の杜](https://forest.watch.impress.co.jp/library/software/mery/)
- [Haijin Boys Online (作者HP)](https://www.haijin-boys.com/)
- [Mery Wiki](https://www.haijin-boys.com/wiki/)