个性化阅读
专注于IT技术分析

如何在GNU Nano中为YAML(YML)文件启用语法突出显示

本文概述

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代码。

编码愉快!

赞(0)
未经允许不得转载:srcmini » 如何在GNU Nano中为YAML(YML)文件启用语法突出显示

评论 抢沙发

评论前必须登录!