我的工作笔记本电脑上的.ahk
文件的默认编辑器设置为Notepad ++ Portable,但选择编辑此脚本会在标准Windows记事本中打开文件。
A post on the AHK forums建议修改注册表,但我在HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Edit\Command
下看不到任何条目。
如何配置AutoHotkey以使用Notepad ++编辑脚本?
答案 0 :(得分:9)
无论出于何种原因,默认情况下注册表项不存在,但一旦创建,它就会被应用程序识别。
HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell
。New
> Key
并将此命名为。New
> Key
并命名此命令。"C:\Program Files\Notepad++\Notepad++.exe" "%1" %*
粘贴到此窗口。注意:我不使用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, NoStandard
和Menu, Tray, Standard
行不是必需的。我使用这些行的原因是因为默认情况下,Menu, MenuName, Add
将菜单项添加到菜单的底部。出于美观和实用的原因,我更喜欢“退出”作为最后一个菜单项。因此Menu, Tray, NoStandard
和Menu, Tray, Standard
将使我们的菜单项显示在顶部。
此方法的另一个好处是,如果您将脚本转移到新计算机上,它仍然可以工作(前提是您在另一台计算机上安装了Notepad ++)。如果您编辑注册表,则必须记住再次编辑注册表。
答案 3 :(得分:0)
对于AHK版本2,更改注册表对我不起作用(我同时尝试了Computer\HKEY_CLASSES_ROOT\AutoHotkeyScript\Shell\Edit\Command
和Computer\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)
我找到的最简单的方法是:
如果未列出,请选择“更多应用” ,然后向下滚动至NotePad ++。 (请记住,该示例特定于Windows 10,但以前的版本非常相似。)
编辑注册表很棒,不要误会我,但是需要花费更长的时间。有点像用卡车拍打苍蝇!无论如何,希望这对您有用。我一直使用它来设置所需的文件关联。