问题描述
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配置文件,与此行类似:
nits@nits-excalibur:~$ cat ~/.nanorc
include /usr/share/nano/sh.nanorc
现在,在nano中启用语法高亮显示您链接的任何文件(您也可以链接多个文件)
注意:在编辑~/.nanorc
文件后,有时您可能会收到segmentation fault
。如果发生这样的错误,则取消设置LANG环境变量会有所帮助。您可以在终端中用unset LANG
取消它。 (从here获得的溶液)
如果您对bash突出显示不满意,还有其他解决方案。其中一个例子可以找到here
您还可以将include /usr/share/nano/*
写入〜/.nanorc文件,以便在nano版本支持时突出显示所有语言。
次佳解决思路
是的你可以,但是默认的语法定义非常差和不完整。我保留一组更精确的定义here,对于任何认为它们有用的人。
要安装,请运行:
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
描述所有未分类文件的功能。这些是您需要开始使用的工具,而不是最终抛光的产品。
第三种解决思路
我使用这个命令来快速启用所有可用的语言。
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
文件。
第四种思路
这应该包括默认包含的所有语法高亮插件,以及添加到/usr /share /nano的所有语法高亮插件:
find /usr/share/nano -name '*.nanorc' -printf "include %p\n" > ~/.nanorc
或者,编辑/etc /nanorc并查看是否可以取消注释包含。
如果您的.nanorc文件中有一个拒绝接受通配符的nano版本,则此方法有效。
每次添加额外的.nanorc颜色配置时,只需运行此行。
第五种思路
我在my github有一些nano语法突出显示。
有HTML和PHP的实时截图:
和