サクラエディタの便利そうな機能

# まえがき
SIerをディスる記事がバズるたびに流れ弾が飛んでくる[サクラエディタ](https://github.com/sakura-editor/sakura)ですが、この偉大なエディタを使いこなしている人間は、すくないと思います。

今回は便利そうな機能を記録しておきたいとおもいます。

# エディタから使える機能
## Grep
検索メニューからGrepまたはGrepによる置換が行えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/79552a10-af06-dee1-164b-db34533f7d7a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/68ca60fd-2ac4-8c64-250e-ae3abfa8c009.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/da242cb4-3825-b3b1-400f-50b8ae1001ce.png)

GrepやGrepによる置換には正規表現が利用できます。

利用可能な正規表現
https://sakura-editor.github.io/help/HLP000089.html

個人的によく使う正規表現は「\t」でGRAPの結果をタブ区切りに変換してExcelに張り付ける使い道です。

１、Grepの結果がある。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/75bae002-4265-2345-53b9-a8c5714d53f9.png)

２、「\): 」→「\):\t」の置換をやる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/8136aa9b-970e-25fb-7046-997e75f2ca74.png)

３、Excelにはりつけやすくなる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/52846afd-674f-7a0c-b41b-98913a865a01.png)

※正規表現使わなくてもタブ文字をコピーアンドペーストで置換後に入力する手もある

## 変換
変換メニューでは選択された文字に対して以下の変換が可能です。

 - 小文字
 - 大文字
 - 全角→半角
 - 半角＋全ひらがな→全角・カタカナ
 - 半角＋全カタカナ→全角・ひらがな
 - 全角英数→半角英数
 - 半角英数→全角英数
 - 全角カタカナ→半角カタカナ
 - 半角カタカナ→全角カタカナ
 - 半角カタカナ→全角ひらがな

大文字変換の例：

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/762628f9-103f-a1eb-ec52-3bcb4bb637f2.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/5809af23-c793-8121-9230-f5fdc8a0c4ce.png)

スクリプトを書かないで、お手軽な変換するには便利です。

## 制御コードの入力
編集→挿入→コントロールコードの入力で様々な制御コードを入力できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/70080f04-5b43-7a1c-ea52-39827e05b937.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/ddd41d50-cb3c-4b6b-99a0-0e1a952ad239.png)



## 矩形選択
ALTキーを押しながらキーボードのカーソルキーを動かすか、ALTキーを押しながらマウスをドラッグすることで矩形選択がおこなえます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/f0f7854b-556e-91d9-a37d-03af93741f04.png)

矩形選択してその内容を抜き出すだけでなく、先頭に同じ文字を入れたりするときに使ったりします。



## ブックマーク
行にブックマークを付けることができます。
これにより、重要そうな行にブックマークを付けておき、後から見直すことができます。
ログ解析等ではよくお世話になります。

|機能|ショートカット|
|:---|:-------------|
|ブックマークの設定・解除|CTRL+F2|
|次のブックマークへ|F2|
|前のブックマークへ|SHIFT+F2|
|全ブックマークの一覧|ALT+F2|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/6cd8b640-4377-4b05-2015-bc1e6d1343b5.png)

ブックマークを設定すると青マークがつきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/7012c1fe-5b57-2035-578b-bc850315c7d0.png)

ブックマークの一覧を表示して、そこからジャンプすることも可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/813eb6d3-4f8b-7220-e482-49d97e1098a7.png)

## 対括弧の検索
「CTRL+[」で選択した括弧の対になっている括弧にジャンプします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/2a411b43-9dab-0c69-8a57-56a9cf2f74f6.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/35570cb5-54f8-7a4b-6352-7601112acc80.png)

IDEがない状況で、HTMLやプログラミング言語の括弧の対を見つけるのに便利です。

##アウトライン解析
[検索]→[アウトライン解析]で行える機能で、プログラミング言語やHTMLのアウトラインを解析してくれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/489fb124-5272-c36e-7119-d2f49052da81.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/0b49a3dc-9015-770e-8f07-52121aa7c8ba.png)

解析結果のツリーをクリックすることで、該当の行にジャンプができます。

##タグジャンプ
F12キーでタグジャンプを行えます。
たとえば、includeファイルで宣言されているファイルを表示したりできます。

\#include "calibCommon.hpp"を選択してF12を押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/43f82776-cac6-ea30-fd47-6aa0cb776599.png)

calibCommon.hppが開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/1b90ce1d-24b3-e232-6d7b-777d7542f189.png)

## ウィンドウの分割
[ウィンドウ]→[左右に分割]を行うことで、ウィンドウの分割が可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/1aa29ba8-9137-fc05-f386-a13fefb3d3aa.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/0f8d55fa-8bf1-9e4c-2475-edb51e990057.png)

ログファイルとかをみるのに捗りますね。

## 外部コマンドの出力
ツールの外部コマンドの実行をおこなうことで、外部コマンドの標準出力をエディタに出力することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/27a8a4da-f2ed-2355-325b-9d3baf7653e3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/ed5a2002-c304-5ae1-abb1-7a89fbeee3e3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/8823a207-9570-eea8-39d9-0fd34d575b3b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/60a82aec-433e-8523-6821-6bdd83544560.png)

CUIの標準出力の結果をごにょごにょするのに使えそうですね。

# マクロ
サクラエディタはマクロが色々使えます。
下記に簡単な例を示します。

下記に「test.vbs」という名前でファイルを保存してください。

```vb:test.vbs
Editor.InsBoxText("あ" + vbCrLf + "い")
Editor.InsText("あたたたｔ" + vbCrLf)
Editor.InsText("猫" + vbCrLf)
Editor.AddTail("末尾やで")
```

ツール→「名前を指定してマクロの実行」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/4b4314d8-c297-76f1-b8cd-cd8d5e2a9162.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/f28f8bc3-412d-ce7e-6c0e-077ce76ab03c.png)

マクロが実行されてエディタに文字が書かれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47856/2e6e6039-92a2-477c-4818-db7c50baccc6.png)


どのようなマクロがサポートされているかの一覧としては下記を見るといいでしょう。
https://github.com/sakura-editor/sakura/blob/f6566a024397be8314cc59567eb7903d66a04d27/sakura_core/macro/CSMacroMgr.cpp

各マクロの詳細はサクラエディタのヘルプに乗っています。

WScript オブジェクトは使用できないものの、WSHがそのまま使えるので、かなり強力なことが事ができると思います。

# 起動時のコマンドラインオプション
起動時のコマンドラインオプションを設定することで色々自動で動かすことが可能になります。

**コマンドラインオプション**
https://sakura-editor.github.io/help/HLP000109.html


**Grepを行った結果をテキストに保存する例：**

```
Set SAKURA="C:\Program Files (x86)\sakura\sakura.exe"
%SAKURA% -GREPMODE -GKEY=日本  -GFILE=*.txt -GFOLDER="C:\dev\sakura\test" -GOPT=SLHU > result.txt
```

**置換を行う例:**

```
Set SAKURA="C:\Program Files (x86)\sakura\sakura.exe"
%SAKURA% -GREPMODE -GKEY=日本 -GREPR=韓国 -GFILE=*.txt -GFOLDER="C:\dev\sakura\test" -GOPT=SLHUO > result2.txt
```

**マクロを実行する例:**

```
Set SAKURA="C:\Program Files (x86)\sakura\sakura.exe"
%SAKURA% -M=C:\dev\sakura\test.vbs
```

# おわりに
このようにサクラエディタは色々便利です。

サクラエディタを開いてGrepして結果を張り付けるとかいう手順や、サクラエディタを開いて文字コードが～であることを確認することという手順で仕事している所はちょっと見直したほうがいいと思います。

なお、SIerは嫌いになってもサクラエディタは嫌いにならないでください。