web-dev-qa-db-ja.com

Autopadを構成してNotepad ++でスクリプトを編集する

仕事用のラップトップで.ahkファイルのデフォルトエディターをNotepad ++ Portableに設定していますが、Edit This Scriptを選択すると、標準のWindowsでファイルが開きますメモ帳。

AHKフォーラムの投稿 レジストリの編集を提案していますが、HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Edit\Commandの下にエントリがありません。

Notepad ++でスクリプトを編集するようにAutoHotkeyを構成するにはどうすればよいですか?

17
Stevoisiak

何らかの理由で、レジストリエントリはデフォルトでは存在しませんが、作成されるとアプリケーションによって認識されます。

  1. RegEditのHKEY_CLASSES_ROOT\AutoHotkeyScript\Shellに移動します。
  2. Shellフォルダーを右クリックし、New> Keyを選択して、この編集に名前を付けます。
  3. Editフォルダーを右クリックし、New> Keyを選択して、このコマンドに名前を付けます。
  4. コマンドの(デフォルト)文字列エントリをダブルクリックします。
  5. "C:\Program Files\Notepad++\Notepad++.exe" "%1"をこのウィンドウに貼り付けます。
  6. AutoHotkeyをリロードして、変更を有効にします。

注: Notepad ++を使用しませんが、これは私のシステムのVS Codeで機能し、実行可能ファイルのディレクトリ情報が正しい限り、N ++でも機能します。

20
David Metcalfe

前の回答の項目5のレジストリエントリが機能しませんでした。余分なものも知りません%*末尾の意味は、次のように簡略化したためです。

"C:\Program Files\Notepad++\Notepad++.exe" "%1"
8

AHKバージョン2の場合、レジストリを変更してもうまくいきませんでした(両方を試しましたComputer\HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Edit\CommandおよびComputer\HKEY_CLASSES_ROOT\.ahk\Shell\Edit\Command)、しかしこれは私のためにそれをしました。 AHKトレイメニューに仕切りの後に2つのメニュー項目を追加します。

EditWithNotepadPlusPlus(*)
{
    Run "C:\Program Files\Notepad++\notepad++.exe " A_ScriptFullPath
}
EditWithVsCode(*)
{
    Run "C:\Program Files\Microsoft VS Code\Code.exe " A_ScriptFullPath
}
A_TrayMenu.Add()
A_TrayMenu.Add("Edit with VS Code", "EditWithVsCode")
A_TrayMenu.Add("Edit with Notepad++", "EditWithNotepadPlusPlus")
return
0
Jerry

あなたが私のようなもので、レジストリの変更をためらっている場合は、AutoHotKeyコードを使用してこれを行う方法があります。

これは、別のエディターでスクリプトを編集するために使用する方法です。 Visual Studio Codeを使用していますが、使用するエディターに関係なく、方法は同じです。ただし、既存の "このスクリプトの編集"メニュー項目は変更できません。これは標準メニュー項目の1つと見なされ、変更できないためです。代わりに、「Edit With Notepad ++」というメニューの上部に新しいメニュー項目を追加しています。

EditWithNotepadPlusPlus()
{
    Run "C:\Program Files (x86)\Notepad++\notepad++.exe" "%A_ScriptFullPath%"
}

; Remove the standard menu items temporarily
Menu, Tray, NoStandard 
; Add our custom menu item labeled "Edit With Notepad++" 
; and calls the function above
Menu, Tray, Add, Edit With Notepad++, EditWithNotepadPlusPlus 
; Add a separator
Menu, Tray, Add 
; Put the standard menu items back, under our custom menu item
Menu, Tray, Standard 

注:ご参考までに、行Menu, Tray, NoStandardおよびMenu, Tray, Standardは必要ありません。これらの行を使用する理由は、デフォルトでMenu, MenuName, Addは、メニュー項目をメニューの下部に追加します。美的および実用的な理由から、最後のメニュー項目として「終了」を選択します。そう Menu, Tray, NoStandardおよびMenu, Tray, Standardを使用すると、メニュー項目が上部に表示されます。

この方法のもう1つの利点は、スクリプトを新しいコンピューターに転送しても、それが機能することです(他のコンピューターにNotepad ++がインストールされている場合)。レジストリを編集する場合は、レジストリを再度編集することを忘れないでください。

0
Kodos Johnson