Windows 自带的 Notepad 记事本可能是我用得最频繁的软件了,每天都会打开使用,用来作临时的文字记录或简单编辑非常方便!但是最近发现有个严重问题,当我把网络上的文字复制粘贴到记事本的时候,发现段落丢失了,造成文字混乱。这也正常,Notepad 会自动过滤换行标识。

  于是我打开写代码时才用的 Notepad++,一切就正常了。本来也想过用 Notepad++ 来替换系统自带记事本,但是感觉大材小用,而且界面不是太清爽,然后就想到了 Notepad2,和自带的界面很像,功能却强大了不少,去除空行、显示行号、显示空格和换行符号等都是经常需要用到的功能。嗯,打算进行替换。

  Notepad2 下载安装不难,随处可得,关键是如何替换成系统自带记事本程序。这里写了两个 bat 程序,一个用于替换,另一个用于恢复,在 Windows 7 下亲测成功,Windows 10 没有试过应该也没有问题,代码如下:

替换系统记事本

@ECHO OFF & CD /D %~DP0
>NUL 2>&1 REG.exe query "HKU\S-1-5-19" || (
    ECHO SET UAC = CreateObject^("Shell.Application"^) > "%TEMP%\Getadmin.vbs"
    ECHO UAC.ShellExecute "%~f0", "%1", "", "runas", 1 >> "%TEMP%\Getadmin.vbs"
    "%TEMP%\Getadmin.vbs"
    DEL /f /q "%TEMP%\Getadmin.vbs" 2>NUL
    Exit /b
)
if "%PROCESSOR_ARCHITECTURE%"=="x86" reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /f /v "Debugger" /t REG_SZ /d "\"%~dp0Notepad2.exe\" /z" >NUL 2>NUL
If "%PROCESSOR_ARCHITECTURE%"=="AMD64" reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /f /v "Debugger" /t REG_SZ /d "\"%~dp0Notepad2_x64.exe\" /z" >NUL 2>NUL
CLS & ECHO. & ECHO 替换完成,任意键退出! &&PAUSE>NUL & EXIT

  此时不管从哪里打开记事本,都会调用 Notepad2 程序,小功告成!

Notepad2

恢复系统记事本

@ECHO OFF & CD /D %~DP0
>NUL 2>&1 REG.exe query "HKU\S-1-5-19" || (
    ECHO SET UAC = CreateObject^("Shell.Application"^) > "%TEMP%\Getadmin.vbs"
    ECHO UAC.ShellExecute "%~f0", "%1", "", "runas", 1 >> "%TEMP%\Getadmin.vbs"
    "%TEMP%\Getadmin.vbs"
    DEL /f /q "%TEMP%\Getadmin.vbs" 2>NUL
    Exit /b
)
taskkill /f /im notepad* >NUL 2>NUL
reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /f
reg delete "HKLM\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /f
ECHO. & ECHO 恢复完成,任意键退出! &&PAUSE>NUL & EXIT

  为了方便使用,我已经将最新版的 Notepad2(32位+64位)同以上程序一起打包了,点击这里下载 Notepad2 单文件简体中文+一键替换程序