我正在尝试使用不同的编辑器来替换记事本,一些轻巧但具有现代编辑功能(例如多个光标)的东西。我用 Notepad3 时间最长,不喜欢 Notepad++,现在尝试 Atom。我喜欢 VSCode 编辑体验,所以我期待类似的东西。
我像往常一样通过注册表进行了替换:
[HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe]
"Debugger"="\"C:\\Program Files\\Atom\\atom.exe\""
(不要介意路径,我想要系统级安装)
它在大多数情况下都有效,但是我注意到包含空格的文件存在问题。它将每个 blob 视为一个单独的文件名。例如,通过 Windows 资源管理器打开具有此路径的文件:
C:\Program Files\Atom\test file.txt
使用以下打开方式打开 atom:
C:\Program
C:\WINDOWS\system32\NOTEPAD.EXE
C:\Program Files\Atom\Files\Atom\test
C:\Program Files\Atom\file.txt
这显然是不对的。从命令行打开可以正常工作,就像您期望的那样。
我可以使用一些设置来完成这项工作吗?
在查看它之后,打开记事本的文本文件的默认快捷方式似乎没有引用文件路径,显然记事本允许这样做并且能够按预期打开文件。因此,不是让一个参数包含路径,而是使用通常的参数解析规则拆分参数。我在这里有几个选择。
我可以更新注册表值以引用文件名参数:
[HKEY_CLASSES_ROOT\txtfile\shell\open\command]
缺点是我必须为所有使用记事本且不引用的扩展程序执行此操作。
否则,我可以创建一个程序或脚本来读取所有参数并将它们连接成一个参数,然后使用构造的路径启动 atom。
注意:学到了应该始终在第一个参数中为启动命令提供标题的艰难方法,以确保要运行的进程不会被误认为是标题。在我的机器上造成了一些坏叉炸弹,这需要一些时间才能弄清楚。
编辑:使用了一段时间后,这还不够可靠。对于一个快速、通用的解决方案,它通常不起作用。在摆弄注册表以更新所有调用记事本引用参数的值之后,仍然没有按照我想要的方式工作。
理想情况下,会有一个简单的实用程序应用程序收集参数并以标准方式将其传递给首选应用程序。我可以自己编写代码,但选择针对这种情况使用特定的东西。这只是插入自身以替换记事本调用并转发到配置的替换。这可能是我有一天会重温的东西。
https://www.binaryfortress.com/NotepadReplacer/