如何在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