本文概述
GNU nano是一个简单的基于终端的文本编辑器。尽管不如Emacs或Vim强大, 但它易于学习和使用。许多开发人员都喜欢此编辑器, 因为它只需要在服务器上快速编辑单个文件, 它的使用非常简单且非常有用。
你需要在这种编辑器中经常更改的那些文件之一是配置文件, 例如yaml文件。 Nano为许多文件类型提供语法高亮显示, 但对于yaml文件则不提供。如果还要突出显示此类文件, 则需要执行额外的步骤。在本文中, 我们将向你展示如何在Ubuntu中的nano上突出显示yaml文件。
1.列出可用的Nano语法突出显示文件
第一步, 使用以下命令发现nano中可用的语言以突出显示其语法:
ls /usr/share/nano/
这将列出给定目录中的所有nano语法高亮文件:
root@server:~$ 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
如果找不到yaml.nanorc文件, 则可以下一步进行安装。
2.创建YAML Nano语法突出显示文件
为了向文件提供语法突出显示, 如果默认文件不存在, 则需要为此语言创建语法突出显示文件。该文件是yaml.nanorc文件, 你需要在上述目录中创建它。运行nano创建文件:
sudo nano /usr/share/nano/yaml.nanorc
并粘贴以下内容:
# Supports `YAML` files
syntax "YAML" "\.ya?ml$"
header "^(---|===)" "%YAML"
## Keys
color magenta "^\s*[\$A-Za-z0-9_-]+\:"
color brightmagenta "^\s*@[\$A-Za-z0-9_-]+\:"
## Values
color white ":\s.+$"
## Booleans
icolor brightcyan " (y|yes|n|no|true|false|on|off)$"
## Numbers
color brightred " [[:digit:]]+(\.[[:digit:]]+)?"
## Arrays
color red "\[" "\]" ":\s+[|>]" "^\s*- "
## Reserved
color green "(^| )!!(binary|bool|float|int|map|null|omap|seq|set|str) "
## Comments
color brightwhite "#.*$"
## Errors
color , red ":\w.+$"
color , red ":'.+$"
color , red ":".+$"
color , red "\s+$"
## Non closed quote
color , red "['\"][^['\"]]*$"
## Closed quotes
color yellow "['\"].*['\"]"
## Equal sign
color brightgreen ":( |$)"
请访问Nano Highlight的官方资源库, 它是Nano语法高亮文件的丰富集合, 以获取有关nano的更多信息和语言。该文件将自动添加到nano中, 并突出显示yaml文件。保存更改并继续执行最后一步。
3.创建Test Yaml文件以查看结果
作为最后一步, 你需要测试突出显示功能是否起作用。继续创建带有nano的测试文件, 并在其上编写一些YAML, 例如:
# app/config/config_prod.yml
imports:
- { resource: config.yml }
monolog:
handlers:
main:
type: fingers_crossed
action_level: critical
handler: grouped
grouped:
type: group
members: [streamed, deduplicated]
streamed:
type: stream
path: '%kernel.logs_dir%/%kernel.environment%.log'
level: debug
deduplicated:
type: deduplication
handler: swift
swift:
type: swift_mailer
from_email: 'from_email@test.com'
# Or multiple receivers:
# to_email: ['to_email1@ourcodeworld.com', 'to_email2@ourcodeworld.com']
to_email: 'to_email@ourcodeworld.com'
subject: 'An Error Occurred! %%message%%'
level: debug
formatter: monolog.formatter.html
content_type: text/html
保存文件, 再次编辑它, 你现在将看到突出显示的YAML代码。
编码愉快!
评论前必须登录!
注册