如何在nano中启用语法高亮?

nano可以像gedit和vim一样进行语法高亮吗? 我该如何启用它? 我至少需要bash和python语法高亮。

nano编辑器为几种语言和脚本提供语法高亮显示。 查看/usr/share/nano/

 nits@nits-excalibur:~$ ls /usr/share/nano/ asm.nanorc fortran.nanorc man.nanorc ocaml.nanorc ruby.nanorc awk.nanorc gentoo.nanorc mgp.nanorc patch.nanorc sh.nanorc c.nanorc groff.nanorc mutt.nanorc perl.nanorc tcl.nanorc cmake.nanorc html.nanorc nano-menu.xpm php.nanorc tex.nanorc css.nanorc java.nanorc nanorc.nanorc pov.nanorc xml.nanorc debian.nanorc makefile.nanorc objc.nanorc python.nanorc 

将它们链接到~/.nanorc存在的用户的nano配置文件,其中~/.nanorc与此行类似的内容:

 nits@nits-excalibur:~$ cat ~/.nanorc include /usr/share/nano/sh.nanorc 

现在,对于您链接的任何文件,在nano中启用语法突出显示(您还可以链接多个文件)

语法高亮的屏幕截图

注意:有时在编辑~/.nanorc文件后可能会出现segmentation fault 。 如果发生此类错误,则取消设置LANG环境变量会有所帮助。 您可以在终端中使用未unset LANG 。 (从这里获得的解决方案)

如果您对bash突出显示不满意,还有其他解决方案。 这方面的一个例子可以在这里找到

您还可以将〜 include /usr/share/nano/*写入〜/ .nanorc文件,以便在您的nano版本支持时突出显示所有语言。

是的,您可以,但默认语法定义非常差且不完整。 对于那些发现它们有用的人,我在这里维护一套更准确的定义。

要安装,请运行:

 git clone https://github.com/nanorc/nanorc.git cd nanorc make install 

将这些行添加到〜/ .nanorc

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

指定要为其着色的那些,您必须根据您的偏好调整这些颜色。 ALL.nanorc描述了所有未分类文件的function。 这些是您入门所需的工具,而不是最终抛光产品。

我使用此命令快速启用所有可用语言。

 find /usr/share/nano/ -iname "*.nanorc" -exec echo include {} \; >> ~/.nanorc 

如其他答案中所述, /usr/share/nano/包含不同语言的定义。

 $ ls /usr/share/nano asm.nanorc fortran.nanorc man-html ocaml.nanorc ruby.nanorc awk.nanorc gentoo.nanorc man.nanorc patch.nanorc sh.nanorc cmake.nanorc groff.nanorc mgp.nanorc perl.nanorc tcl.nanorc c.nanorc html.nanorc mutt.nanorc php.nanorc tex.nanorc css.nanorc java.nanorc nanorc.nanorc pov.nanorc xml.nanorc debian.nanorc makefile.nanorc objc.nanorc python.nanorc 

还提到,要为语言启用突出显示,可以在~/.nanorc文件中添加include和要启用的语言定义的路径。 因此,例如,要启用C / C ++,您可以添加此行。

 include /usr/share/nano/c.nanorc 

find命令搜索指定目录中的文件或目录。

  • -iname标志告诉它只查找名称以.nanorc结尾的.nanorc
  • -exec标志定义了对找到的每个文件执行的命令。
  • {}将替换为文件名。
  • \; 用于表示执行find命令的命令的结束。
  • 最后, >> ~/.nanorc输出附加到~/.nanorc文件中。

这应包括默认包含的所有语法高亮插件,以及您添加到/ usr / share / nano的任何插件:

 find /usr/share/nano -name '*.nanorc' -printf "include %p\n" > ~/.nanorc 

或者,编辑/ etc / nanorc并查看是否可以取消注释包含。

如果您的nano版本拒绝接受.nanorc文件中的通配符,则此方法有效。

每次添加额外的.nanorc颜色配置时,只需运行此行。

我在github上有一些纳米语法突出显示。

有html和php的实时屏幕截图:

在此处输入图像描述

在此处输入图像描述

 wget -r -nH --cut-dirs=3 --no-parent --reject="index.html*" https://nanosyntax.googlecode.com/svn/trunk/syntax-nanorc/ -P ~/.nano-syntax for i in `ls --color=never -1 ~/.nano-syntax/*.nanorc` ; do echo "include $i" >> ~/.nanorc ; done 

纳米的最完整和最新的语法hilighters 在这里维护。

要为您的用户安装所有荧光笔,只需运行:

 cd /tmp git clone https://github.com/tech4david/nano-highlight.git cd nano-highlight/ make install echo "include ~/.nano/syntax/ALL.nanorc" >> ~/.nanorc 

您可以使用它来包含所有:(将此添加到〜/ nanorc文件)

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

快乐的编码!

我在这里找到了js的语法高亮。

我将它附加到~/.nanorc用户文件中

但是为了得到一个我可以附加的文件,我必须首先从/usr/share/nano/nanorc.nanorc复制到我的本地文件夹中,然后作为~/.nanorc

对于按照上述说明操作后遇到问题的人,还要检查您是否有重复的定义 。 这些将禁用所有文件的 所有语法突出显示 。 我添加了一个nanorc.nanorc文件后遇到了这个问题,并没有意识到我的~/.nanorc已经有了相同的部分,即:

 ## Here is an example for nanorc files. ## syntax "nanorc" "\.?nanorc$" ## Possible errors and parameters icolor brightwhite "^[[:space:]]*((un)?set|include|syntax|i?color).*$" ## Keywords icolor brightgreen "^[[:space:]]*(set|unset)[[:space:]]+(autoindent|backup|$ icolor green "^[[:space:]]*(set|unset|include|syntax)\>" (...) 

我刚刚制作了这个脚本来为nano添加颜色:但是当然你必须在/ usr / share / nano中使用颜色代码才能使用。 如果有错误:只需手动编辑〜/ .nanorc文件并删除给出错误的行。

 #!/bin/bash for i in `ls /usr/share/nano` do echo "include /usr/share/nano/$i" >> ~/.nanorc done