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

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

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

答案1

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

将它们链接到您的用户的 nano 配置文件(存在于~/.nanorc${XDG_CONFIG_HOME}/nano/nanorc~/.config/nano/nanorc,以先遇到的为准),使用类似于以下行的内容:

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

现在,无论你链接什么文件,nano 中都会启用语法高亮显示(你也可以链接多个文件)

语法高亮的屏幕截图

注意:有时,segmentation fault在编辑~/.nanorc文件后,您可能会收到一个错误。如果出现此类错误,请取消设置 语言环境变量会有所帮助。您可以在终端中取消设置它unset LANG。(解决方案来自这里

如果你对 bash 的高亮不满意,还有其他解决方案。其中一个例子可以找到这里

include /usr/share/nano/*如果您的 nano 版本支持,您还可以写入~/.nanorc 文件以启用所有语言的突出显示。

答案2

是的,你可以,但是默认的语法定义相当差且不完整。我正在维护一组更准确的定义这里,适合任何认为它们有用的人。

要安装,请运行:

git clone https://github.com/scopatz/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描述所有尚未分类的文件的功能。这些是您入门所需的工具,而不是最终的精致产品。

答案3

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

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

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

include /usr/share/nano/c.nanorc

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

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

答案4

您可以使用它来包含所有内容:(将其添加到~/.nanorc文件)

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

祝你编码愉快!

相关内容