来自问题频道的问题:Mhlink 替换 notepad 为 notepad3 问题,大意就是需要替换掉 Windows 默认的记事本工具,使用 Notepad3 来当作默认记事本。@Appinn
青小蛙在前阵子还推荐过:用轻量级工具 Notepad3 替代 36 岁的微软记事本,但当时并没有解决默认记事本的问题。
@ldtwh01 同学的具体问题是这样的:
事情的起因是:
- 因为最近在写一点批处理,所以不满足于功能过于简单的 Notepad,所以想用 Notepad3 替代之;
- 因为最近系统重装比较频繁,每次装软件并调整软件设置的过程让人吐血,所以想用软件的官方免安装版替代之;
- 发现不少软件的免安装版不提供文件关联功能,在 Win10 系统只能每种文件类型通过右键“打开方式”菜单选择程序来关联(是每种扩展名设一次…心塞)。
所以,我突发奇想:能否删除系统自带组件,然后用 mhlink 文件连接命令原地建立一个同名链接指向第三方免安装软件,可行的话上面的三条问题都解决了。
但失败了…
不过很快 @kli2018 同学解决了此问题:
硬链接替代的时候,Notepad3 的其他部分,比如语言文件夹和配置都要硬链接一份,最安全的还是映像劫持,微软官方教的:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe
新建名字叫 Debugger 的字符串,双击修改为 Notepad3 的路径,这种什么都不需要改变。
青小蛙也研究了一下,的确算是最方便的解决方案了,只需要使用管理员权限的命令提示符运行两句:
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v GlobalFlag /t REG_DWORD /d 512
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v Debugger /t REG_SZ /d "C:\Appinn-Tools\Notepad3\Notepad3.exe"
注意第二行里面的 C:\Appinn-Tools\Notepad3\Notepad3.exe 换成你自己的路径。也可以自己定位注册表手动添加:
验证是否成功:只想在「运行」里输入 noetpad 回车,看看打开的是不是 Notepad3 就可以了。
在注册表的 Image File Execution Options 里面还有其他一些应用,也可以用此方式来修改默认应用。
当然对于完全不想自己折腾的同学,也有一个叫做 Notepad Replacer 的免费工具,帮你修改注册表(原理相同),只不过更简单:
注意,Windows 11 使用 Notepad 预览版的同学,这个操作之后需要重新安装才能继续使用预览版记事本。
那么问题来了,排除 VS Code 这一类大型工具,你在什么记事本工具呢?
原文:https://www.appinn.com/notepad-replacer/
以前sublime text,因为快。
现在PC上用logseq,安卓用Orgzly+syncthing同步,不用考虑分类真的很棒。
https://github.com/zufuliu/notepad2 这个版本的跟notepad3比怎么样? star还挺多的
两个都用过,我现在喜欢用3。
因为我喜欢标题栏图标大一点,点击的时候可以不用太精细。在【查看-面板-DPI自适应】
为什么我按文中方式改了注册表后,不管用哪个替代默认,都会有一个以二进制打开 notepad.exe 的标签?
因为notepad.exe会被作为参数传给设定的debugger
https://stackoverflow.com/questions/2984846/set-image-file-execution-options-will-always-open-the-named-exe-file-as-defaul
一个可以尝试的解决方案是写一个bat, 在里面去掉第一个参数并传递调用, 然后把这个bat在注册表设为debugger, 例如
“`
rem omit first argument (which is notepad.exe)
for /f “tokens=1,* delims= ” %%a in (“%*”) do set ALL_BUT_FIRST=%%b
rem launch vscode and quit console
start “” “%~dp0\VSCode\Code.exe” “%ALL_BUT_FIRST%”
“`
其中的`%~dp0` 只是为了引用一个相对bat脚本的路径, 可以换成可执行文件的绝对路径
🤷♂️ 用里面提到那个软件吧,那个靠谱一些。
试了上面和下面的各种方法,加参数只会额外再开一个参数名z或f为名的空文档,最后还是只有这个软件有效。
可以在路径后添加/z参数试试
“d:\123\notepad.exe” /z
我也是,打开了notepad.exe文件,而且如果是打开其他文件则会报错说文件不存在,然后加了参数 /f,一切ok了。前面说的加参数 /z 没试过,如果也能搞定的话,是不是随便加个啥参数就能把那个notepad参数屏蔽掉?
debugger 的值应该设置为 ”notepad3.exe /z“
就是在用vs code这种大型工具哈哈哈(doge)
其实以前用notepad++很好用,打开速度很快。不过由于一些非软件方面的原因,弃用了。
后来用sublime text速度很快,不过配置真的是挺麻烦的
再后来用了github出品的atom,配置很方便,但是是真的慢啊。。。
再后来就用了vs code,速度上虽然不如notepad++之类的,但是比起atom之类的强多了
而且界面美观,各种扩展,配置方便。
估计这个应该是是微软出品的东西里面我好感度最高的了
vs code 还真不算大
notepad2 mod版,文件夹里自带映像劫持和还原的批处理,挺方便的。
vscode算大?不装插件就很轻。
现在win11的notepad已经开内测了,升级了
为啥要替换?修改默认打开方式不就行了?
没有太明白这样做的意义(我个人是把VS Code作为默认编辑器,包括txt等的文档全部默认用VS Code打开)
看上面的“起因”第三条
普通的文本(例如bat,配置文件,txt)用notepad3
和代码有关的,一般用vs code;大型的项目还是得用IDE
【Notepad3文件夹内新建这两个bat,双击运行即可替换/还原】
1.替换记事本:
@echo off
%1 mshta vbscript:CreateObject(“Shell.Application”).ShellExecute(“cmd.exe”,”/c “^&chr(34)^&”%~0″^&chr(34)^&” ::”,”%cd%”,”runas”,1)(window.close)&&exit
cd /d “%~dp0”
reg add “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe” /v “Debugger” /d “\”%~dp0Notepad3.exe\” /z” /f
cls
echo.
echo 已将默认文档编辑器设置为Notepad3!
echo.
ping -n 3 127.1>nul
2.还原记事本:
@echo off
%1 mshta vbscript:CreateObject(“Shell.Application”).ShellExecute(“cmd.exe”,”/c “^&chr(34)^&”%~0″^&chr(34)^&” ::”,”%cd%”,”runas”,1)(window.close)&&exit
reg delete “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe” /f
cls
echo.
echo 已将默认文档编辑器设置为记事本!
echo.
ping -n 3 127.1>nul
这个好,放在NOTEPAD3目录里,方便!注意复制下来时里面的双引号。我把双引号全部重新打了一次,不然会出错。应该是放在网上双引号的编码出了问题。
微软商店有个 Notepads,我觉得非常好用,多标签。置顶,markdown(及预览),自动快照等等。开源地址:https://github.com/JasonStein/Notepads
刚看到这玩意儿的时候很惊喜,然后就发现这是个坑货:只能打开1M大小以内的文件
感觉这是个典型的X-Y Problem,正确做法应该是找找有没有批量设置文件关联的工具。
另外要推荐文本编辑器的话,个人推荐KDE的Kate kate-editor.org ,功能丰富、界面好看,也没有vscode那么重。
其实在作者官网下的notepad3安装包,自带替换系统记事本的功能。只要你安装时,记得打勾就完事了。
https://www.rizonesoft.com/downloads/notepad3/
邮件 – h – c 选择默认应用啊……
为什么要操作到注册表里面呢……
MadEdit-Mod 值得一试,这个编辑器的列块模式和十六进制编辑模式是一大特色
Akelpad,虽然项目几乎停了,但丝毫不影响她的优秀。有二三十个插件可以用。支持强大的脚本功能,如需要新功能可以用Jscrpt/VBscript编写,还能编写出窗体等友好界面(可参照网站和论坛上的脚本实例)。最难得的是她支持GB-18030、UTF-32,虽然用得少,好多其它文本编辑器会发生保存后丢失字符的情况。我不做系统的文件关联,我使用 Total Commander的文件关联,很绿色。
实测Win11无法替换,TXT文件打开还是默认的文本编辑器,用文中的 Notepad Replacer 工具就可以
Win11 在路径多了一层
Win11Reg.bat
reg add “HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe\0” /v “Debugger” /t REG_SZ /d “\”%~dp0Notepad2.exe\” /z” /f
… 有问题 这个只对右键中的“编辑”有效
win11手动修改注册表不知道为什么没有用,最后notepad replacer是有用的//个人感觉notepads轻量编辑很好用,ui也不错
用了10多年的notepad2,居然还真来了个notepad3….