如何在没有扩展名的 Python 文件中启用语法高亮显示?

如何在没有扩展名的 Python 文件中启用语法高亮显示?

在 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

相关内容