跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

Notepad++怎么设置Shell脚本高亮_Notepad++如何高亮Bash脚本【攻略】

Notepad++需手动绑定扩展名与Shell语言才能实现.sh等文件的语法高亮:进入【设置→样式配置器】,在Shell语言下用户自定义扩展名中填入sh bash zsh ksh(不加点号),保存并重启生效。 Shell脚本打开后没高亮?先确认语言绑定是否生效 Notepad++ 不会自动把
.sh
或
.bash
文件识别为 Shell 脚本,除非你明确告诉它——这和文件扩展名是否标准、有没有 shebang(
#!/bin/bash
)都无关。它只认“扩展名 → 语言”的映射关系。 打开一个
deploy.sh
文件,顶部菜单栏的
语言
项如果显示的是
Normal text
或
Plain text
,说明绑定失败 手动点
语言 → Shell
可临时高亮,但关掉再打开就失效 真正生效的方式是进【设置 → 样式配置器】,不是【首选项 → 高亮】——后者只管“智能高亮开关”,不管“哪个扩展名用哪种语言” 给 .sh / .bash 扩展名绑定 Shell 语言 这是最常被跳过的一步:很多人开了“启用智能高亮”,却忘了语言根本没绑上,结果白调。 点击菜单
设置 → 样式配置器
左侧语言列表中选
Shell
(注意不是
Bash
,Notepad++ 内置只有
Shell
类型) 右侧找到
用户自定义的扩展名
输入框,填入:
sh bash zsh ksh
(空格分隔,不加点号!写成
.sh
会失效)
保存并关闭
,建议重启 Notepad++,避免缓存导致新扩展名不生效 为什么选了 Shell 还是高亮错乱?检查注释与引号匹配 Shell 语法高亮依赖关键词识别和基础结构解析,对嵌套引号、未闭合注释、混用 $() 和 `` 等场景容易误判。这不是 bug,是当前 Shell 词法分析器的能力边界。 如果
#
后面紧跟括号或反引号(如
# $(ls)
),部分版本会把整行当注释,忽略后续命令高亮 单引号内含单引号(
'It'\''s'
)或双引号内含未转义美元符(
"$HOME/path"
正常,但
"$VAR/subdir"
若
VAR
未定义,高亮可能中断) 避免在函数定义前加空行再写
function name {
——某些老版本 Shell 模式对换行敏感,推荐统一用
name() {
格式 想高亮 .conf 或 .env 文件也用 Shell 规则?直接复用扩展名绑定 很多运维配置文件(比如 Nginx conf、systemd unit、.env)实际是 Shell 兼容语法,没必要另起炉灶写自定义语言。 回到
设置 → 样式配置器 → Shell
在
用户自定义的扩展名
里追加:
conf env systemd nginx
注意:这些扩展名必须全小写;大小写敏感的系统(如 Linux)上没问题,但 Windows 下也建议统一小写以防意外 改完别忘了点
保存并关闭
,否则只是临时预览效果 Notepad++ 的 Shell 高亮本质是基于关键字 + 基础结构的轻量解析,它不执行语法校验,也不理解变量作用域。所以别指望它标出
unset VAR; echo $VAR
是否为空——那是 shellcheck 的事。真正要命的坑,永远在「以为绑了扩展名就万事大吉」,结果发现
样式配置器
里填的是
.sh
而不是
sh
。

相关文章