Oxw*_*ivi 216 nano syntax-highlighting
nano 可以像 gedit 和 vim 那样做语法高亮吗?我怎样才能启用它?我至少需要 bash 和 python 语法亮点。
Nit*_*esh 206
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
Run Code Online (Sandbox Code Playgroud)
它们链接到你的用户的纳米配置文件(出席~/.nanorc,${XDG_CONFIG_HOME}/nano/nanorc或者~/.config/nano/nanorc,无论先遇到哪个)有类似的东西,以这条线:
nits@nits-excalibur:~$ cat ~/.nanorc
include /usr/share/nano/sh.nanorc
Run Code Online (Sandbox Code Playgroud)
现在,在 nano 中为您链接的任何文件启用了语法突出显示(您也可以链接多个文件)

注意:有时您可能会segmentation fault在编辑~/.nanorc文件后得到。如果发生此类错误,取消设置LANG环境变量会有所 帮助。您可以unset LANG在终端中取消设置。(从这里获得的解决方案)
如果您对 bash 突出显示不满意,还有其他解决方案。可以在此处找到此类示例之一
include /usr/share/nano/*如果您的 nano 版本支持,您还可以写入~/.nanorc 文件以突出显示所有语言。
小智 91
是的,您可以,但是默认语法定义非常糟糕且不完整。我保持一个更准确的定义集在这里,任何人谁发现它们非常有用。
要安装,请运行:
git clone https://github.com/scopatz/nanorc.git
cd nanorc
make install
Run Code Online (Sandbox Code Playgroud)
将这些行添加到 ~/.nanorc
include ~/.nano/syntax/html.nanorc
include ~/.nano/syntax/css.nanorc
include ~/.nano/syntax/php.nanorc
include ~/.nano/syntax/ALL.nanorc
Run Code Online (Sandbox Code Playgroud)
指定要为其着色的颜色,您必须根据自己的喜好调整这些颜色。在ALL.nanorc所有尚未归类文件介绍的一些功能。这些是您入门所需的工具,而不是最终抛光的产品。
Dre*_*pin 63
我使用此命令快速启用所有可用语言。
find /usr/share/nano/ -iname "*.nanorc" -exec echo include {} \; >> ~/.nanorc
Run Code Online (Sandbox Code Playgroud)
如其他答案/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
Run Code Online (Sandbox Code Playgroud)
还提到,要启用语言的突出显示,include您需要在~/.nanorc文件中添加要启用的语言定义的路径。因此,例如,要启用 C/C++,您需要添加这一行。
include /usr/share/nano/c.nanorc
Run Code Online (Sandbox Code Playgroud)
该find命令在指定目录中搜索文件或目录。
-iname标志告诉它只查找名称以.nanorc.-exec标志定义了对找到的每个文件执行的命令。{}得到的文件名替换。\;用于表示要执行到find命令的命令的结束。>> ~/.nanorc将输出附加到您的~/.nanorc文件中。这应该包括默认包含的所有语法突出显示插件,以及您添加到 /usr/share/nano 的任何插件:
find /usr/share/nano -name '*.nanorc' -printf "include %p\n" > ~/.nanorc
Run Code Online (Sandbox Code Playgroud)
或者,编辑 /etc/nanorc 并查看是否可以取消对包含的注释。
如果您的 nano 版本拒绝接受 .nanorc 文件中的通配符,则此方法有效。
每次添加额外的 .nanorc 颜色配置时,只需运行此行。
小智 6
您可以使用它来包含所有内容:(将其添加到~/.nanorc文件中)
include "/usr/share/nano/*.nanorc"
Run Code Online (Sandbox Code Playgroud)
快乐编码!