【中級者向け】サクラエディタの便利機能紹介

2020/05/17

前書き

皆さんテキストエディタは何を使っていますか?vim?emacs?vscode?atom?メモ帳?…

世の中には様々なテキストエディタがあります。

別に誰が何を使おうと構わないのですが、少なくとも我々エンジニアはテキストエディタを呼吸するように使いこなせなければいけません!

(エディタの呼吸!壱ノ型、サクラエディタ!)

 

サクラエディタを使う場面

そもそも開発の現場ではテキストエディタをガッツリ使うことは少ないと思います。

最近はコーディングから静的解析、コンパイル、デバッグ…なんでも一つでこなせるIDEを使いますからね。

 

でもあるんです。IDEを使えないためにテキストエディタだけで開発している現場が!!

例えば私は本業で組み込み屋をしていますが、組み込み系の開発をしているとIDEが用意されていないことが多いんですよね。

そういった状況ではテキストエディタを使う必要が出てきます。

 

テキストエディタは多々ありますが、今回は高機能かつオープンソース(つまり無料)で日本語に完全対応している「サクラエディタ」の便利機能について紹介します。

 

この記事は
「普通にコーディングする分には不自由しない程度にサクラエディタを使いこなしているが、もっと速く効率よくコーディングしたい!」という人に向けて書いています。

そのため、Ctrl+Cはコピーなんだぜ!などという初歩的なことには触れません。

この記事にある機能を使いこなせれば晴れてサクラエディタ上級者です!

それでは行きましょう。

 

サクラエディタでの便利機能21個

サクラエディタの機能のうち、個人的に便利だと思う機能を紹介します。

下記に記述する以外にも、多数の便利機能がありますのでヘルプやコマンド一覧を見て使える機能を増やしていきましょう!

文字エンコード自動判別

ファイルを開いたら文字化けして読めない!ということありませんか?

もちろん大概のエディタは手動で文字エンコードを指定すれば正常に読み書きできるようになりますが、それは手間ですよね。

その点、サクラエディタの文字エンコード自動判別機能は他エディタに比べて格段に優秀です。

有名所のvisual studio codeでSJISファイルを開くと大体文字化けしますが、サクラエディタは大丈夫です。

さらに、ver2.4.0.0からはICU4Cに対応しているため、世界各国のUnicode文字を判別することも可能になりました。(※別途ライブラリの導入が必要になります)

 

シンタックスハイライト

voidやintなど、いわゆる予約語と呼ばれる単語は、下記画像のようにカラー表示されます。

シンタックスハイライト機能はどのエディタにも存在しますが、
サクラエディタではハイライトする単語を[共通設定]-[強調キーワードタブ]-[セット名プルダウンメニュー]-[追加ボタン]より、追加することができます

例えばC++用の強調キーワードもデフォルトでC++仕様標準のものが入っていますが、ユーザー定義の型を追加することでソースコードが読みやすくなります。

 

また、[タイプ別設定]-[カラータブ]内の設定を弄れば強調キーワード毎に色を分けたり、

正規表現キーワードタブに登録した正規表現にマッチする文字列の表示色を変えることも可能です!

私はC/C++の関数名にマッチする正規表現「/[a-zA-Z_]+[0-9a-zA-Z_]*[ \t]*(?=\()/k」を登録し、茶色に表示させています。

 

アウトライン解析

アウトライン、つまり概要のことです。

文書の見出し(■や、▽などで検出)や、ソースコードであれば関数定義などをいい具合に抜き出して列挙し、クリックするとそこにジャンプできる機能です。

見出しの定義は[共通設定]-[書式]タブより設定できます。

 

矩形選択

Alt+矢印キーか、マウスドラッグで矩形選択ができます。

列が揃っている複数行に対して同じ操作を同時に可能です。

例えば下記画像のように複数のint変数をunsigned intにする場合や、コメント位置を揃えて書きたい場合など。

 

もちろん"矩形"選択なので矩形に選んだあとに削除や変更の操作も可能です。

 

矩形選択は使いこなすと圧倒的に便利です。

上記で例に挙げたコーディング作業では大活躍する場面は少ないと思いますが、エラーログの整形などで応用の効く機能です。

 

他のエディタにも同じ機能が実装されていることが多いですが、サクラエディタの操作感は軽快でかなり優秀です。

 

マクロ機能

サクラエディタ固有のマクロ、MAC、js、vbsの言語を用いてマクロ機能を自作することが可能です。

詳しくはヘルプに記載してありますので、そちらを参照ください。

マクロの例としてはこちらのwikiにまとまっていますので参考にしてください。

特に、「【mac】ダブルクリックして選択範囲と同じ単語をハイライト」は便利なので是非入れてみてください。

 

マクロの登録方法は[共通設定]-[マクロ]タブから可能です。

 

設定のカスタマイズ性

全てのショートカットキー、ツールバー、カスタムメニュー(右クリックメニュー)を自由にカスタマイズできます。
自作のマクロなども登録できますのでカスタムして至高のエディタに仕上げましょう!

設定方法は多少癖がありますが、説明するより触って慣れたほうが良いです。1分ほど悩めばあとは自由になれます!

 

ショートカットキーの設定は[共通設定]-[キー割り当て]タブから可能です。
デフォルトでキー割り当てがされていない機能もありますので、どのような機能があるのかの確認のためにも一度目を通してみてください。

 

下記画像はツールバーの場所です。画像は必要なモノだけに絞ってカスタム済みです。
[共通設定]-[ツールバー]タブよりカスタム可能です。

 

下記画像はメインメニューの場所です。画像では例としてファイルメニューのキャプチャですが、全てのメニューをカスタム可能です。
[共通設定]-[メインメニュー]タブよりカスタム可能です。

 

下記画像はカスタムメニューです。右クリックして出てくるメニューです。一部カスタムしてあります。
[共通設定]-[カスタムメニュー]タブよりカスタム可能です。

 

入力補完

文字入力中にCtrl+Spaceキーで入力補完を行うことができます。

補完は単語単位で行われ、候補は編集中のファイルから自動でピックアップされます。

また、[タイプ別設定]-[支援]タブにて単語ファイルを登録しておき、そこから候補を出すことも可能です。

 

行ソート、行マージ

複数行を選択し、
・Alt+Aで昇順ソート
・Alt+Dで降順ソート
ができます。(行単位でソートされます)

また、Alt+Mで重複行のマージができます。

 

例えば何らかのリストがあった場合に、重複を削除したユニークなリストを取得したいときに便利です!

サクラエディタを活用して目視で重複データを削除するのはもうやめましょう!

ブックマーク

Shift+F2でカーソルがあたっている行にブックマークできます。

また、F2キーでブックマークにジャンプできます。

大事な行、コードリーディング中の目次に便利です!

 

編集中ファイルのディレクトリでターミナル起動

編集中ファイルのパスでコマンドプロンプト、PowerShell等が起動できます。

この機能はデフォルトでキー割り当てもメインメニューにもないため、使いやすいところに設定して使いましょう。

種別プルダウンメニューのファイル操作系の中に含まれています。

私はツールバーに割り当てて使っています。

 

編集中ファイルのファイルパスを取得

Ctrl+\で、編集中のファイルのフルパスをクリップボードにコピーできます。

また、Ctrl+-で、ファイル名のみコピーもできます。

 

外部コマンド実行

[ツール]-[外部コマンド実行]またはCtrl+F5で、外部コマンドを実行することができます。

実行するだけでなく、結果をサクラエディタで受け取ることもできます。

 

日時挿入

Alt+;で日付、
Alt+:で時刻を入力できます。

書式は[共通設定]-[書式]タブにて設定できます。

 

上下、左右分割

エディタの編集画面を
F4キーで上下分割、
Shift+F4キーで左右分割できます。

同じファイルの離れた行列を同時に見たい場合に便利です。

 

デフォルトではスクロールの同期設定がされているため、使いづらいですが、[共通設定]-[ウィンドウ]タブから設定を変更できます。

 

CSV編集モード

CSVファイルを開いた際に「,」区切りで表示することができるモードです。

 

この機能はデフォルトでは有効ではないため下記の設定を行ってください。

1.タイプ別設定から「追加」し、追加されたタイプを「設定変更」する。

 

2.下記のような画面になる。

3.下記画像のように設定して「OK」。

 

ヘッダー/ソース切替

C/C++限定の機能です。
Ctrl+Shift+Cで同名のヘッダーファイルとソースファイルを切り替えることができます。

かなり便利です。

タグジャンプ(標準)

ファイルパス、行、列が書いてある行でF12を押すとその場所にジャンプすることができます。

ファイルパスのみ記載がある場合はそのファイルを開くことができます。

 

タグジャンプ(C/C++)

C/C++においてはctagsを用いて変数や関数定義に直接ジャンプできます。

C/C++開発を行うのであれば必須機能です。

 

使い方

1.ver2.4.0.0以降はデフォルトでctagsが同梱されていますが、それ以前のバージョンは別途ctagsをダウンロードしてsakura.exeと同じ階層にコピーしてください。

2.[検索]-[タグファイルの作成]から、タグファイルを作成してください。

3.変数や関数にカーソルを合わせ、F12キーで定義にジャンプできます。

 

Grep検索

Ctrl+GでGrepダイアログが表示され、サブフォルダも含めたフォルダ内を再帰的に検索可能です。

エンジニアにとっては必須の機能ですので使いこなせるようになりましょう!

もちろん正規表現も使用可能です。

 

対括弧の検索

括弧にカーソルがあたっているときにCtrl+[ または Ctrl+]キーで対応する括弧にジャンプすることができます。

一画面に収まらないコードやインデントがあっていないコードの対応する括弧位置を調べるのに役立ちます。

 

背景色、文字色もカスタマイズ可能

[タイプ別設定]-[カラー]タブより、テキスト文字色、背景色などあらゆる色をカスタマイズ可能です。

この機能を使ってサクラエディタの配色をMonokai風にしている人もいるようです。

見やすいようにカスタマイズしてみてください!

 

最後に

サクラエディタは純国産のテキストエディタで、オープンソースで開発が進められています。

コミュニティでのやりとりも日本語で行われています。

つまり、不具合修正や追加したい機能、改善したい機能があれば提案することができます。

自分が普段使うツールの開発に関われるって凄くないですか?

 

何が言いたいか?

 

そうです。サクラエディタの開発に貢献しませんか?

前述した通り各種やり取りは日本語で行われているため、
「オープンソースの開発に関わってみたいけど英語はちょっと…」や「普段使わないツールの開発はちょっと…」などの懸念は要りません!

 

私自身もタグジャンプの機能強化を提案し、マージされています。
その他にもいくつかissueのみですが、出しています。

 

興味のある方は是非こちらから開発に関わってみてはいかがでしょうか?

https://github.com/sakura-editor/sakura/wiki