Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

エクスプローラの右クリックメニューに、『SAKURAでGrep』を追加する #410

Closed
m-tmatma opened this issue Sep 6, 2018 · 11 comments
Labels
enhancement ■機能追加 installer installer 関連
Milestone

Comments

@m-tmatma
Copy link
Member

m-tmatma commented Sep 6, 2018

現状ファイルに対して、『SAKURAで開く』という右クリックメニューが存在するが、
フォルダに対して右クリックしたときに、『SAKURAで Grep』という項目を追加して
右クリックしたフォルダを基準に grep ダイアログを開く機能を追加する。

必要なコマンドラインに関して

https://sakura-editor.github.io/help/HLP000109.html

オプション 説明
-GREPMODE grep モードで開く
-GREPDLG grep ダイアログを開く ( grep は走らせずに grep ダイアログが出るところで止める)
-GFOLDER grep のフォルダを指定する
-GOPT オプションで SP を指定する サブフォルダを対象にする。該当行を表示する
-GCODE=99 文字コートの自動判定にする

シェル側の対応に関して

参考サイト (エクスプローラの右クリックメニューをカスタマイズする)

以下のような内容で reg ファイルを適用したらフォルダの右クリックメニューに登録して
grep ダイアログを表示できた。(実際の変更では 『SAKURAでGrep』になります)

sakuraでgrep.reg.txt
(適用するには拡張子 の ".txt" を取ってください。)

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\directory\shell\sakuraGrep]
@="サクラエディタでgrep"

[HKEY_CLASSES_ROOT\directory\shell\sakuraGrep\command]
@="\"C:\\Program Files (x86)\\sakura\\sakura.exe\" -GREPDLG -GREPMODE  -GFOLDER=\"%1\" -GOPT=\"S\""

対応

上記のレジストリキーをインストーラで書き込む

@m-tmatma m-tmatma added the enhancement ■機能追加 label Sep 6, 2018
@m-tmatma
Copy link
Member Author

m-tmatma commented Sep 6, 2018

#385 を実装するのなら サクラエディタで Grep置換 も実装してもいいと思う。

@m-tmatma
Copy link
Member Author

m-tmatma commented Sep 6, 2018

https://qiita.com/tueda/items/0036ee8e9280f70f04f0
何もないところを右クリックした時のメニューを追加する にあるように

HKEY_CLASSES_ROOT\directory\BackGround\shell\sakuraGrep 以下にレジストリーキーを
追加することで、フォルダの何もないところで右クリックして、サクラエディタで Grep
を実装できた。

sakuraでgrep-何もないところで右クリック.reg.txt
(適用するには拡張子 の ".txt" を取ってください。)

↓ 以下を reg ファイルとして保存するには UTF16 BOM 付きで保存してください。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\directory\BackGround\shell\sakuraGrep]
@="サクラエディタでgrep"

[HKEY_CLASSES_ROOT\directory\BackGround\shell\sakuraGrep\command]
@="\"C:\\Program Files (x86)\\sakura\\sakura.exe\" -GREPDLG -GREPMODE  -GFOLDER=\"%V\" -GOPT=\"S\""

注意点

-GFOLDER の引数は %1 ではなく %V です。

@m-tmatma
Copy link
Member Author

m-tmatma commented Sep 6, 2018

上記のレジストリキーをインストーラで書き込む

以下に足せばいいと思う。

[Registry]
; registry for all user (Admin only)
Root: HKLM; Subkey: "SOFTWARE\Classes\*\shell\sakuraeditor"; ValueType: string; ValueName: ""; ValueData: "SAKURAで開く(&E)"; Tasks: fileassoc; Flags: uninsdeletekey; Check: CheckPrivilege(true)
Root: HKLM; Subkey: "SOFTWARE\Classes\*\shell\sakuraeditor"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\sakura.exe"""; Tasks: fileassoc; Flags: uninsdeletekey; Check: CheckPrivilege(true)
Root: HKLM; Subkey: "SOFTWARE\Classes\*\shell\sakuraeditor\command"; ValueType: string; ValueName: ""; ValueData: """{app}\sakura.exe"" ""%1"""; Tasks: fileassoc; Flags: uninsdeletekey; Check: CheckPrivilege(true)
Root: HKLM; Subkey: "SOFTWARE\Classes\Applications\sakura.exe\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\sakura.exe"" ""%1"""; Tasks: proglist; Flags: uninsdeletekey; Check: CheckPrivilege(true)
; registry for each user (non-Admin only)
Root: HKCU; Subkey: "SOFTWARE\Classes\*\shell\sakuraeditor"; ValueType: string; ValueName: ""; ValueData: "SAKURAで開く(&E)"; Tasks: fileassoc; Flags: uninsdeletekey; Check: CheckPrivilege(false)
Root: HKCU; Subkey: "SOFTWARE\Classes\*\shell\sakuraeditor"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\sakura.exe"""; Tasks: fileassoc; Flags: uninsdeletekey; Check: CheckPrivilege(false)
Root: HKCU; Subkey: "SOFTWARE\Classes\*\shell\sakuraeditor\command"; ValueType: string; ValueName: ""; ValueData: """{app}\sakura.exe"" ""%1"""; Tasks: fileassoc; Flags: uninsdeletekey; Check: CheckPrivilege(false)
Root: HKCU; Subkey: "SOFTWARE\Classes\Applications\sakura.exe\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\sakura.exe"" ""%1"""; Tasks: proglist; Flags: uninsdeletekey; Check: CheckPrivilege(false)

@berryzplus
Copy link
Contributor

「SAKURAで開く」なので
「SAKURAでGrep」がベターなのではないでしょうか。

大文字小文字、GrepとGREPとgrep。一般的なのはどれ?

@KENCHjp
Copy link
Member

KENCHjp commented Sep 7, 2018

「SAKURAで開く」なので

これでいいのか最近気になってます。
別Issueですね。

大文字小文字、GrepとGREPとgrep。一般的なのはどれ?

考えたこともなかったけど、「Grep」でいいような。
http://www.gnu.org/software/grep/

@m-tmatma
Copy link
Member Author

m-tmatma commented Sep 7, 2018

すみません。PR (#411) では『SAKURAでGrep』にしてました。
『SAKURAで開く』をコピーして修正して作ったので その流れで
自然に 『SAKURAでGrep』になりました。

@m-tmatma m-tmatma changed the title エクスプローラの右クリックメニューに、『サクラエディタで Grep』を追加する エクスプローラの右クリックメニューに、『SAKURAでGrep』を追加する Sep 7, 2018
@m-tmatma m-tmatma added the installer installer 関連 label Sep 7, 2018
@KENCHjp
Copy link
Member

KENCHjp commented Sep 8, 2018

自然に 『SAKURAでGrep』になりました。

一旦はいいかなと思います。Grep機能を呼び出すPRなので。「SAKURAで~」がいいのかは別かなと。

@ds14050
Copy link
Contributor

ds14050 commented Sep 8, 2018

頭字語と考えると GREP、動詞と考えたりコマンドを指すときは grep になると思いますが、サクラエディタのメニュー表記に従うと Grep になりますか。

@m-tmatma
Copy link
Member Author

#411 を更新しました。

@m-tmatma m-tmatma added this to the next release milestone Sep 24, 2018
m-tmatma added a commit to m-tmatma/sakura that referenced this issue Sep 28, 2018
文字コード指定用の間違いを修正 (-CODE → -GCODE)
@m-tmatma
Copy link
Member Author

#411 で英語メニューに対応しました。

@m-tmatma
Copy link
Member Author

マージしました

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement ■機能追加 installer installer 関連
Projects
None yet
Development

No branches or pull requests

4 participants