Windowsで秀丸エディタを使う人が多いのは何故なのか?

秀丸エディタとサクラエディタ

自分の周りには秀丸エディタを使っている人が圧倒的に多い。秀丸エディタは、シェアウェアだが、あえてそれを使い続ける理由が気になった。

自分はエディタに拘りはないけど、Windows標準のメモ帳は非常に使い勝手が悪い。なので、サクラエディタを使っている。

それ以外のエディタについて

他にもエディタはあり、Atom、VS code、EmEditor、Vim、Emacs などがある。AtomやVS Code は、軽量ではないが機能拡張で幅広い用途に対応する。
ソースコードや、HTML等のマークアップ記法、マークダウン記法なども、プレビューを表示させながら作業できるため、かなり使い勝手がいいので、適材適所で使い分けるのがいいと思う。

秀丸エディタの優位性は何なのか?

では、秀丸エディタを使うことで何がいいのか?
調べた感じでは、HTMLやソースコードなどの全てが秀丸エディタだけで出来るらしい。また、昔から秀丸エディタを使っているので、慣れているという理由もあった。

ただ、マクロをインストールすれば、サクラエディタでも同様に使うことが出来る。おそらく、古くからの実績(ブランド力)と、慣れ親しんだユーザが多いのがシェアが高い理由な気がする。

テキストエディタに求めるもの

自分がテキストエディタに求めるもの、やりたいことは以下。

  • 文字の左側に行数が表示される。

  • 排他で開くことができる(メモ帳みたいに誤って上書きしない)

  • 改行コード、空白、タブが表示される。

  • Ctrl+マウスのスクロールでフォントの拡大/縮小ができる。

  • 簡単に罫線を引くことが出来る。

  • 画面を分割表示できる。

  • テンプレートを呼び出す。

上の4つは、デフォルトで対応している。
サクラエディタを使う場合、罫線はマクロのインストールが必要そう。
罫線はマクロを設定する必要があるのは知っているが、画面分割、テンプレートが不明。

サクラエディタをカスタムする

1つのエディタに多機能は求めないが、罫線に対応するのと、画面を分割するのはできるようになりたい。
ついでに、テンプレート(議事や、回覧情報など)が呼び出せると嬉しい。

サクラエディタのマクロの登録方法について

サクラエディタのマクロは、以下がデフォルトのパスになっている。
C:\Users\<ユーザ名>\AppData\Roaming\sakura\

初期状態では、sakura.iniという設定ファイルのみが配置されている。
ここにマクロを入れていくのだが、このパスに直にマクロファイル(.vbs)を配置していく必要があるらしい。
ライセンスやREADMEを残したいので、ファイルを作りサブディレクトリから検索…といったことは出来ないらしい。
他人のものを勝手に使うというのは申し訳ないので、元ファイルは同フォルダに.zipで残しておくことにする。

サクラエディタの罫線マクロ

pekopeko1さんが、GitHubにマクロを公開してくれている。ありがたく使わせていただく。

太線と細線のマクロがあるので、マクロ設定と、キーの割当てを行う。

マクロの登録

マクロを登録したら、キーを割り当てていく。初めて使うので、pekopeko1さんのREADME.mdの通り、[Alt]+上下左右キーに細線、[Shift]+[Alt]+上下左右キーに太線を登録していく。

キー割り当て

これでキーバインドから罫線を引くことができるようになった。

罫線

サクラエディタで画面を分割する

結構簡単にできて、[ウインドウ]から、[上下に分割]、[左右に分割]、[縦横に分割]が選択できる。縦横に分割は、4分割のこと。

縦横に分割

そのままだと全画面が同期してカーソル移動してしまう。分割ごとに別の画面を表示できるようにするには、[設定]の[ウィンドウ]から、[垂直スクロールの同期をとる]、[水平スクロールの同期をとる]のチェックを外す。

同期のチェックを外す
非同期分割表示

テンプレートを呼び出す(VBマクロ)

メニューの[編集]-[挿入]あたりから、テンプレートを挿入できそうな雰囲気だが、まさにこれだというものがない。ここまでくると、自分でマクロを自分で作る必要がありそう。お試しで、議事録マクロを作ってみる。

サクラエディタのマクロは、JScript、VBScript、PPAのいずれかで記述する。

いい方法が見当たらないので、手探りでVBScriptのマクロを作ってみる。
マクロファイルの文字コードはUTF-8だと文字化けした。どうやら、SJISにする必要があるらしい。

・作成したマクロ "minutes_template.vbs"

' /////////////////////////////////////////////////////////////////// '
' // [内容] 議事録テンプレート出力マクロ                           // '
' // [日付] 2022.02.21                                             // '
' // [作者] mokunin                                                // '
' // 議事録は以下の書籍を参考にしました。                          // '
' // ・ゼロから学べる!ファシリテーション超技術」園部 浩司 (著)     // '
' /////////////////////////////////////////////////////////////////// '

Editor.InsText "===================================================================== " & vbCrLf
Editor.InsText " [議題] xxx " & vbCrLf
Editor.InsText " [日時] "
Editor.InsertDate()
Editor.InsText " "
Editor.InsertTime() 
Editor.InsText " ~ hh:mm " & vbCrLf
Editor.InsText " [場所] xxx " & vbCrLf
Editor.InsText " [参加] Aさん、Bさん、Cさん (3名) " & vbCrLf
Editor.InsText " [進行] Aさん(リーダー) " & vbCrLf
Editor.InsText "---------------------------------------------------------------------- " & vbCrLf
Editor.InsText " [目的・ゴール] xxxをyyyする。" & vbCrLf
Editor.InsText "===================================================================== " & vbCrLf
Editor.InsText " 進行内容                                 |     タイムスケジュール   | " & vbCrLf
Editor.InsText " (★:アクションアイテム、●:決定事項) | 進行目安      | 所要時間 | " & vbCrLf
Editor.InsText "---------------------------------------------------------------------- " & vbCrLf
Editor.InsText " 1. オープニング                          |                          | " & vbCrLf 
Editor.InsText "---------------------------------------------------------------------- " & vbCrLf
Editor.InsText " ・本日の進め方を説明                     | hh:mm - hh:mm | 1 分     | " & vbCrLf
Editor.InsText " ・アイスブレイク                         | hh:mm - hh:mm | 3 分     | " & vbCrLf
Editor.InsText " ・前回の振返り(初回は割愛)             | hh:mm - hh:mm | 1 分     | " & vbCrLf
Editor.InsText "---------------------------------------------------------------------- " & vbCrLf
Editor.InsText " 2. 情報格差を埋める                      |                          | " & vbCrLf
Editor.InsText "---------------------------------------------------------------------- " & vbCrLf
Editor.InsText " ・ 会議の経緯、背景等を説明              | hh:mm - hh:mm | 5 分     | " & vbCrLf
Editor.InsText "---------------------------------------------------------------------- " & vbCrLf
Editor.InsText " 3. 議論の内容                            |                          | " & vbCrLf
Editor.InsText "---------------------------------------------------------------------- " & vbCrLf
Editor.InsText " ・xxxxする                           | hh:mm - hh:mm | 7 分     | " & vbCrLf
Editor.InsText " ・yyyyする                           | hh:mm - hh:mm | 7 分     | " & vbCrLf
Editor.InsText " ・xxxxする                           | hh:mm - hh:mm | 7 分     | " & vbCrLf
Editor.InsText "---------------------------------------------------------------------- " & vbCrLf
Editor.InsText " 4. クローズ                              |                          | " & vbCrLf
Editor.InsText "---------------------------------------------------------------------- " & vbCrLf
Editor.InsText " ・決定事項(ゴール)の確認               | hh:mm - hh:mm | 2 分     | " & vbCrLf
Editor.InsText " ・アクションアイテムの確認               | hh:mm - hh:mm | 3 分     | " & vbCrLf
Editor.InsText " ・振り返り(感想の共有)                 | hh:mm - hh:mm | 3 分     | " & vbCrLf
Editor.InsText " 終了                                     |               |          | " & vbCrLf
Editor.InsText "---------------------------------------------------------------------- " & vbCrLf

サクラエディタにマクロ登録し、メニューの[ツール]-[登録済マクロ]から選択すると、期待したテンプレートを表示することが出来た。

===================================================================== 
 [議題] xxx 
 [日時] 202222122:10:12 ~ hh:mm 
 [場所] xxx 
 [参加] Aさん、Bさん、Cさん (3名) 
 [進行] Aさん(リーダー) 
---------------------------------------------------------------------- 
 [目的・ゴール] xxxをyyyする。
===================================================================== 
 進行内容                                 |     タイムスケジュール   | 
 (★:アクションアイテム、●:決定事項) | 進行目安      | 所要時間 | 
---------------------------------------------------------------------- 
 1. オープニング                          |                          | 
---------------------------------------------------------------------- 
 ・本日の進め方を説明                     | hh:mm - hh:mm | 1 分     | 
 ・アイスブレイク                         | hh:mm - hh:mm | 3| 
 ・前回の振返り(初回は割愛)             | hh:mm - hh:mm | 1 分     | 
---------------------------------------------------------------------- 
 2. 情報格差を埋める                      |                          | 
---------------------------------------------------------------------- 
 ・ 会議の経緯、背景等を説明              | hh:mm - hh:mm | 5| 
---------------------------------------------------------------------- 
 3. 議論の内容                            |                          | 
---------------------------------------------------------------------- 
 ・xxxxする                           | hh:mm - hh:mm | 7 分     | 
 ・yyyyする                           | hh:mm - hh:mm | 7| 
 ・xxxxする                           | hh:mm - hh:mm | 7 分     | 
---------------------------------------------------------------------- 
 4. クローズ                              |                          | 
---------------------------------------------------------------------- 
 ・決定事項(ゴール)の確認               | hh:mm - hh:mm | 2| 
 ・アクションアイテムの確認               | hh:mm - hh:mm | 3 分     | 
 ・振り返り(感想の共有)                 | hh:mm - hh:mm | 3| 
 終了                                     |               |          | 
---------------------------------------------------------------------- 


この記事が気に入ったらサポートをしてみませんか?