Nano на сервере игнорирует определенную окраску синтаксиса - PullRequest
3 голосов
/ 20 января 2011

Я использую nano на сервере через ssh; в этой системе nano по умолчанию не имеет цвет синтаксиса. Поэтому я скопировал эти наносинтаксис файлы ( для альтернативы, см. Также @ CraigBarnes 'answer ) на сервере и настроил ~/.nanorc как:

include "~/nanosyntax/syntax-nanorc/php.nanorc"
include "~/nanosyntax/syntax-nanorc/php2.nanorc"
include "~/nanosyntax/syntax-nanorc/sh.nanorc"
include "~/nanosyntax/syntax-nanorc/python.nanorc"
include "~/nanosyntax/syntax-nanorc/html.nanorc"
include "~/nanosyntax/syntax-nanorc/perl.nanorc"
include "~/nanosyntax/syntax-nanorc/ruby.nanorc"
include "~/nanosyntax/syntax-nanorc/js.nanorc"

Так вот, это вещь; если я просто позвоню:

nano somefile.php

... нет php окраска синтаксиса выполнена. Если я попытаюсь заставить:

nano --syntax=php somefile.php

... по-прежнему нет синтаксической раскраски (отображается в виде обычного текста). Однако, если я сделаю:

nano ~/.nanorc

... тогда я могу получить синтаксическую раскраску (что соответствует типу файла .nanorc)?!

Итак, очевидно, что синтаксическая раскраска как таковая работает (например, shell и nano способны на это) - за исключением того, что, кажется, она игнорируется для некоторых языков, как в этом случае php?!

Итак, кто-нибудь знает, что происходит - и как я могу получить синтаксическую раскраску также для файлов php?

Спасибо
Ура!

Ответы [ 3 ]

6 голосов
/ 11 июля 2011

Я только что столкнулся с той же проблемой, и немного покопался с включениями, чтобы найти ошибку. Удивительно, но оказалось, что изменение порядка включения исправило проблему:

Это работает:

include "~/.nano/nanorc.nanorc"
include "~/.nano/sh.nanorc"
# more includes...

Не удается выделить файлы sh:

include "~/.nano/sh.nanorc"
include "~/.nano/nanorc.nanorc"
# more includes...

Так что я думаю, что это, вероятно, ошибка (в nano 2.2.2; нормально работала в nano 2.1.7)

1 голос
/ 19 июня 2012

Эти файлы с «наносинтаксисом» в Google Code почти так же плохи, как и те, которые поставляются с nano по умолчанию.

Подсветка nano более проста, чем что-то с вложенными контекстами (например, GtkSourceView), но вам не нужно соглашаться на дурацкое выделение:

https://github.com/craigbarnes/nanorc

1 голос
/ 20 января 2011

Хм ... ну, похоже, на том сервере, который я использовал, произошло обновление;изначально nano не имел синтаксической раскраски по умолчанию, поэтому я использовал свой отдельный ~/.nanorc.

Теперь, однако, на обновленном сервере nano, кажется, по умолчанию работает с раскраской синтаксиса php - и мой собственный отдельный ~/.nanorc, похоже, конфликтует;потому что, как только я прокомментировал все записи в приватном ~/.nanorc#), подсветка синтаксиса php вернулась !!

Кто бы мог?:)
Приветствия!


РЕДАКТИРОВАТЬ: Просто добавить пару замечаний о нано:

Как отмечалось выше, окраска синтаксиса принудительно с переключателем --syntax;чтобы увидеть, какие синтаксисы доступны:

grep 'include' /etc/nanorc |       # find lines containing 'include' in nanorc
  grep -v '^#' |                   # don't process lines that start with '#'
    sed 's_.*/\(.*\)\.nanorc"_\1_' # extract plain filenames

Результат этой команды выглядит примерно так:

nanorc
c
css
debian
gentoo
html
...

Таким образом, чтобы вызвать раскраску синтаксиса "nanorc", вы используете:

nano --syntax=nanorc /usr/share/nano/nanorc.nanorc

.. или принудительная раскраска синтаксиса сценария «bash» (особенно полезно с bashrc) будет:

nano --syntax=sh ~/.bashrc
...