Включение подсветки синтаксиса в Nano достаточно просто, но я столкнулся с нестандартной проблемой. У меня есть исполняемый скрипт Python, который не имеет расширения.
Это часть виртуальной среды, поэтому вот как она начинается:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Можно выбрать определенную подсветку синтаксиса с помощью --syntax
опция, например
nano --syntax=python myscript
Определение Python нано по умолчанию ищет одну из двух вещей расширение или соответствие заголовка, как определено в /usr/share/nano/python.nanorc
:
syntax "python" "\.py$"
header "^#!.*/python[-0-9._]*"
Таким образом, это соответствовало бы #!/bin/python
. Если Вы не пишете что-то для системы, жесткое кодирование, исполняемый файл Python является довольно плохой идеей... Вот почему env python
используется эти дни.
Самый простой способ зафиксировать Нано состоит в том, чтобы отредактировать определение путем выполнения 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