配置Autohotkey以使用Notepad ++编辑脚本

时间:2017-08-07 17:03:37

标签: autohotkey

我的工作笔记本电脑上的.ahk文件的默认编辑器设置为Notepad ++ Portable,但选择编辑此脚本会在标准Windows记事本中打开文件。

A post on the AHK forums建议修改注册表,但我在HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Edit\Command下看不到任何条目。

如何配置AutoHotkey以使用Notepad ++编辑脚本?

8 个答案:

答案 0 :(得分:9)

无论出于何种原因,默认情况下注册表项不存在,但一旦创建,它就会被应用程序识别。

  1. 导航至RegEdit中的HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell
  2. 右键单击Shell文件夹,选择New> Key并将此命名为。
  3. 右键单击编辑文件夹,选择New> Key并命名此命令。
  4. 双击Command中的(默认)字符串条目。
  5. "C:\Program Files\Notepad++\Notepad++.exe" "%1" %*粘贴到此窗口。
  6. 重新加载AutoHotkey以使更改生效。
  7. 注意:我不使用Notepad ++,但这适用于我的系统上的VS Code,只要可执行文件的目录信息正确,它就适用于N ++。

答案 1 :(得分:4)

上一个答案的第5项中的注册表项不起作用。我甚至不知道末尾的额外%*意味着什么,所以我把它简化为:

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

答案 2 :(得分:0)

如果您像我一样并且不愿意修改注册表,则可以使用AutoHotKey代码来实现。

这是我使用其他编辑器编辑脚本的方法。尽管我使用的是Visual Studio Code,但是无论您要使用哪个编辑器,方法都是相同的。需要注意的是:我们无法更改现有的“编辑此脚本”菜单项,因为它被视为 standard 菜单项之一,无法修改。取而代之的是,我在菜单顶部添加了一个新菜单项,内容为“使用记事本++编辑”。

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, NoStandardMenu, Tray, Standard行不是必需的。我使用这些行的原因是因为默认情况下,Menu, MenuName, Add将菜单项添加到菜单的底部。出于美观和实用的原因,我更喜欢“退出”作为最后一个菜单项。因此Menu, Tray, NoStandardMenu, Tray, Standard将使我们的菜单项显示在顶部。

此方法的另一个好处是,如果您将脚本转移到新计算机上,它仍然可以工作(前提是您在另一台计算机上安装了Notepad ++)。如果您编辑注册表,则必须记住再次编辑注册表。

答案 3 :(得分:0)

对于AHK版本2,更改注册表对我不起作用(我同时尝试了Computer\HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Edit\CommandComputer\HKEY_CLASSES_ROOT\.ahk\Shell\Edit\Command),但这对我来说确实有用。在分隔线之后,它将两个菜单项添加到AHK托盘菜单中:

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

答案 4 :(得分:0)

在 Win10 上使用 AHK v1.1.3.02 带字符串 "C:\Program Files\TextPad 8\TextPad.exe" "%1" 运行良好。

答案 5 :(得分:0)

其他答案中提到的注册表更改对我有用,但您可能需要进一步添加以下标志:

C:\Program Files (x86)\Notepad++\notepad++.exe %1  -multiInst -nosession

这些标志将阻止 Notepad++ 将此窗口识别为整个会话的一部分,因此它不会覆盖您的正常会话历史记录或任何内容。我不记得我第一次从哪里找到这些解决方案,但我正在切换计算机 atm 并在我的注册表中找到它们,并注意到在此线程中的任何地方都没有提到它们。

答案 6 :(得分:0)

对我不起作用,我首先使用 R River

的建议修复了它
C:\Program Files (x86)\Notepad++\notepad++.exe %1  -multiInst -nosession

但这每次都会创建一个新会话,所以我尝试删除结束参数,现在可以使用了。

C:\Program Files (x86)\Notepad++\notepad++.exe %1

答案 7 :(得分:-1)

我找到的最简单的方法是:

  1. 右键单击 .ahk 文件
  2. 选择“打开方式”->“选择其他应用”
  3. 选中“始终使用此应用程序打开.ahk文件”
  4. 然后从列表中选择 NotePad ++

如果未列出,请选择“更多应用” ,然后向下滚动至NotePad ++。 (请记住,该示例特定于Windows 10,但以前的版本非常相似。)

编辑注册表很棒,不要误会我,但是需要花费更长的时间。有点像用卡车拍打苍蝇!无论如何,希望这对您有用。我一直使用它来设置所需的文件关联。