nano 中的语法突出显示不适用于特定语言

问题描述 投票:0回答:2

我的 nano 不想显示 html 的语法突出显示。

我的 ~/.nanorc 包含以下内容:

include ~/.nano/syntax/html.nanorc
include ~/.nano/syntax/css.nanorc
include ~/.nano/syntax/php.nanorc
include ~/.nano/syntax/python.nanorc

它适用于 css、php 和 python。我尝试注释掉他们的行,语法突出显示停止了。

我还尝试更改各个文件中内容的颜色,并且突出显示也发生了变化。

html.nanorc 包含:

syntax "html" "\.html?$"
header "<!doctype html"

color magenta "\<(accept|accept-charset|accesskey|action|alt|async|autocomplete|autofocus|autoplay|border|challenge|charset|checked|cite|class|cols|cols$
color brightwhite,red   "</?[A-Za-z0-9_]+[ >]"
color brightmagenta       "</?(a|abbr|address|area|article|aside|audio|b|base|bdo|blockquote|body|br|button|center|canvas|caption|cite|code|col|colgroup$
color yellow    "=([A-Za-z0-9!$%*\^(){}#|:;_~@+,.?/\\-]|\[|\])+"
color red  "="
color yellow ""(\\.|[^"])*"|'(\\.|[^'])*'"
color white     start=">" end="<"
color brightmagenta       "[<>]"

# Embedded template languages
color brightyellow  "\{\{[^}]*\}\}|<%=.*%>"
color brightblue  start="<\?" end="\?>"
color brightblue  start="<%[^=]" end="%>"
color brightblue  start="\{%" end="%\}"

color magenta    "&(#[0-9]+|#x[0-9a-fA-F]+|[A-Za-z][A-Za-z0-9]*);"
color cyan   start="<!--" end="-->"
color cyan   "<!(doctype|DOCTYPE)[^>]*>"
color ,green "[[:space:]]+$"
color ,red "    + +| +  +"
# +EXTRALINT

我也找不到任何问题。

当我使用

打开 html 文件时
nano test.html

所有文字都是白色/灰色的。但是,如果我以 root 身份运行它

sudo nano test.html

突出显示有效。

我的nano和debian版本是

GNU nano version 2.2.6 (compiled 16:56:37, Jul 16 2014)
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 8.11 (jessie)
Release:        8.11
Codename:       jessie
Linux <server> 3.16.0-6-amd64 #1 SMP Debian 3.16.57-2 (2018-07-14) x86_64 GNU/Linux

我真的不知道如何从哪里继续,因此非常感谢一些帮助。

linux debian nano
2个回答
0
投票

在这里找到我的答案:服务器上的 Nano 忽略某些语法着色

我不知道为什么,但如果我将 include html 行移到 .nanorc 文件的底部而不是顶部,它就可以工作。

我测试了我包含的所有扩展,在我更改包含的顺序后它们都可以工作。


0
投票

您可以在

/etc/nanorc
中取消注释此行:

include "/usr/share/nano/*.nanorc"

默认包含所有文件。

© www.soinside.com 2019 - 2024. All rights reserved.