nano可以像gedit和vim一样突出显示语法吗?如何启用它?我至少需要bash和python语法突出显示。
nano可以像gedit和vim一样突出显示语法吗?如何启用它?我至少需要bash和python语法突出显示。
Answers:
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
,该文件类似于此行:
nits@nits-excalibur:~$ cat ~/.nanorc
include /usr/share/nano/sh.nanorc
现在,nano中为链接的任何文件启用了语法高亮显示(您也可以链接多个文件)
注意:有时,segmentation fault
编辑~/.nanorc
文件后可能会出现一个。如果发生此类错误,则取消设置LANG环境变量会有所 帮助。您可以unset LANG
在终端中使用取消设置。(从这里获得的解决方案)
如果您对bash突出显示不满意,还有其他解决方案。这样的一个例子可以在这里找到
include /usr/share/nano/*
如果您的nano版本支持,您还可以写入〜/ .nanorc文件以突出显示所有语言。
/etc/nanorc
-全局设置是否被覆盖~/.nanorc
?如何禁用.nanorc
?
~/.nanorc
文件。
include
即使我没有启用所有行的全局设置也不能启用语法高亮显示.nanorc
呢?
ls -1 /usr/share/nano/*.nanorc | sed 's/^\//include \//' >> ~/.nanorc
将它们全部添加到您的.nanorc文件,如果不存在则创建它。
include /usr/share/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
介绍所有尚未归类文件的功能。这些是您入门所需的工具,而不是最终抛光的产品。
我使用此命令快速启用了所有可用的语言。
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
文件中。您可以使用它来包含所有内容:(将其添加到〜/ nanorc文件中)
include "/usr/share/nano/*.nanorc"
编码愉快!
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
git clone
。该/tmp
文件夹中的内容otf 将在每次系统启动时删除,因此您永远无法运行git pull
。
js
不是bash
,shell-script
并且我已将链接放置在单词的后面here
。问题出在哪儿?
make install
所有语法文件都复制到了它们所属的安全位置后,该文件夹是否消失了~/.nano/syntax
。
对于遵循上述说明后仍遇到问题的人员,还请检查是否有重复的定义。这将禁用所有的语法高亮显示的所有文件。我在添加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)\>"
(...)
我知道这是一个旧线程,但也许我的解决方案可以帮助您
在/ etc / nanorc中编辑文件
在第243行,您可以找到很多包含文件。只需取消注释您需要,保存和完成的内容即可。
## Nanorc files
include "/usr/share/nano/nanorc.nanorc"
## C/C++
include "/usr/share/nano/c.nanorc"
## Makefiles
include "/usr/share/nano/makefile.nanorc"
## Cascading Style Sheets
include "/usr/share/nano/css.nanorc"
## Debian files
include "/usr/share/nano/debian.nanorc"
## Gentoo files
# include "/usr/share/nano/gentoo.nanorc"
我不确定如果您更新nano,这些更改是否会消失。
我只是编写了此脚本,以将颜色添加到nano:但是,当然,您必须在/ usr / share / nano中具有颜色代码才能起作用。如果有错误:只需手动编辑〜/ .nanorc文件并删除出现错误的行。
#!/bin/bash
for i in `ls /usr/share/nano`
do
echo "include /usr/share/nano/$i" >> ~/.nanorc
done