在 Nano 中打开语法高亮很简单,但我刚刚遇到了一个非标准问题。我有一个可执行的 Python 脚本,它没有扩展名。
它是虚拟环境的一部分,因此它的启动方式如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
答案1
您可以使用选项选择特定的语法突出显示--syntax
,例如
nano --syntax=python myscript
答案2
Nano 的默认 Python 定义查找扩展或标头匹配两项之一,定义如下/usr/share/nano/python.nanorc
:
syntax "python" "\.py$"
header "^#!.*/python[-0-9._]*"
因此这将匹配#!/bin/python
。除非您正在为系统编写某些内容,否则对 Python 可执行文件进行硬编码是一个非常糟糕的主意……这就是为什么env python
现在使用的原因。
修复 Nano 的最简单方法是通过运行sudoedit /usr/share/nano/python.nanorc
并将header
行更改为:
header "^#!.*python.*"
这是一个很多更加开放。
实际上,有一组大大改进的语法文件可供使用nanorc 项目在 Github 上,除了改进其他内容外,还指定:
header "^#!.*/(env +)?python[-0-9._]*( |$)"
它不再维护,但与默认版本相比,它仍然是一个巨大的改进。安装起来相当简单:
git clone https://github.com/nanorc/nanorc.git
cd nanorc
make install
然后nano ~/.nanorc
添加:
include ~/.nano/syntax/ALL.nanorc