CentOS 下使用 Notepad++ 的兼容性问题与解决方案
一 核心认识
- Notepad++ 是 Windows 应用,在 CentOS 上默认并不存在原生版本;若你是在 Windows 上用 Notepad++ 编辑脚本或文本再传到 CentOS,最常见的兼容性问题是换行符与编码差异。Windows 使用 CRLF(\r\n),而 Linux 使用 LF(\n);若文件带有 UTF-8 BOM,在 Linux 下可能引发解释器报错或显示异常。Notepad++ 右下角可看到当前换行格式(如 Dos\Windows 或 UNIX),应转换为 Unix(LF) 并保存为 UTF-8 无 BOM。
二 在 Notepad++ 侧的正确做法
- 转换换行符:在 Notepad++ 打开文件,依次点击 编辑 → 文档格式转换 → 转换为 UNIX,将 CRLF 改为 LF。
- 设置默认新建为 Unix:进入 设置 → 首选项 → 新建,将默认格式设为 Unix(LF),避免后续文件继续产生 CRLF。
- 去除 BOM:将文件编码切换为 UTF-8 无 BOM(在状态栏或“编码”菜单中选择),防止脚本解释器因 BOM 导致语法错误。
- 快速自检:在 Notepad++ 中启用 视图 → 显示符号 → 显示所有字符,确认换行已为 LF 且无 BOM。
三 在 CentOS 侧的修复与验证
- 若文件已传到 CentOS 才发现是 CRLF,可用下列任一方式修复:
- 使用 dos2unix:
dos2unix yourscript.sh
- 使用 sed:
sed -i 's/\r$//' yourscript.sh
- 使用 vim:
vim yourscript.sh → 输入 :set ff=unix 或 :set fileformat=unix → :wq
- 赋权并执行:
chmod +x yourscript.sh && ./yourscript.sh
- 验证换行:在 CentOS 可用
file yourscript.sh 查看是否包含 CRLF,或用 cat -A yourscript.sh 检查行尾是否为 $(LF)而非 ^M$(CRLF)。
四 若必须在 CentOS 使用 Notepad++ 的可选方案
- 使用 Wine 运行 Windows 版 Notepad++(兼容性视应用与版本而定):
sudo yum install wine wine32,然后运行安装包或启动程序。
- 使用 Snap 安装 Notepad++(非官方):先
sudo snap install snapd,再 sudo snap install notepad-plus-plus。
- 更稳妥的替代:直接使用 Linux 原生编辑器,如 Vim/Nano/Geany/Notepadqq;其中 Notepadqq 可在 CentOS 上通过 EPEL 源或源码编译安装,体验更接近 Notepad++。