Как мне включить подсветку синтаксиса в nano?

Может ли nano выполнять подсветку синтаксиса, как gedit и vim? Как я могу включить его? Мне нужны, по крайней мере, основные моменты синтаксиса bash и python.

Редактор nano сам по себе обеспечивает подсветку синтаксиса для нескольких языков и сценариев. Проверять /usr/share/nano/

nits@nits-excalibur:~$ ls /usr/share/nano/asm.nanorc     fortran.nanorc   man.nanorc     ocaml.nanorc   ruby.nanorcawk.nanorc     gentoo.nanorc    mgp.nanorc     patch.nanorc   sh.nanorcc.nanorc       groff.nanorc     mutt.nanorc    perl.nanorc    tcl.nanorccmake.nanorc   html.nanorc      nano-menu.xpm  php.nanorc     tex.nanorccss.nanorc     java.nanorc      nanorc.nanorc  pov.nanorc     xml.nanorcdebian.nanorc  makefile.nanorc  objc.nanorc    python.nanorc

Свяжите их с файлом конфигурации nano вашего пользователя (присутствует на ~/.nanorc, ${XDG_CONFIG_HOME}/nano/nanorc, или ~/.config/nano/nanorc, в зависимости от того, что встречается первым) с чем-то похожим на эту строку:

nits@nits-excalibur:~$ cat ~/.nanorcinclude /usr/share/nano/sh.nanorc

Теперь подсветка синтаксиса включена в nano для любого файла, который вы связали (вы также можете связать несколько файлов).

screenshot of syntax highlighting

Примечание: Иногда вы можете получить segmentation fault после того, как вы отредактируете свой ~/.nanorc файл. Если возникает такая ошибка, сбросьте Длинный переменная окружения помогает. Вы можете сбросить его с помощью unset LANG в терминале. (Решение, полученное из здесь)

Есть и другие решения, если вы не удовлетворены своей подсветкой bash. Один из таких примеров можно найти здесь

Вы также можете написать include /usr/share/nano/* в файл ~/.nanorc, чтобы включить выделение всех языков, если ваша версия nano поддерживает его.

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

Для установки запустите:

git clone https://github.com/scopatz/nanorc.gitcd nanorcmake install

Добавьте эти строки в ~/.nanorc

include ~/.nano/syntax/html.nanorcinclude ~/.nano/syntax/css.nanorcinclude ~/.nano/syntax/php.nanorcinclude ~/.nano/syntax/ALL.nanorc

Укажите те, для которых вы хотите использовать раскрашивание, и вам нужно будет настроить эти цвета в соответствии с вашими предпочтениями. То ALL.nanorc описывает функции для всех еще не засекреченных файлов. Это инструменты, необходимые вам для начала работы, а не конечный отполированный продукт.

Я использовал эту команду, чтобы быстро включить все доступные языки.

find /usr/share/nano/ -iname "*.nanorc" -exec echo include {} \; >> ~/.nanorc

Как упоминалось в других ответах, /usr/share/nano/ содержит определения для разных языков.

$ ls /usr/share/nanoasm.nanorc     fortran.nanorc   man-html       ocaml.nanorc   ruby.nanorcawk.nanorc     gentoo.nanorc    man.nanorc     patch.nanorc   sh.nanorccmake.nanorc   groff.nanorc     mgp.nanorc     perl.nanorc    tcl.nanorcc.nanorc       html.nanorc      mutt.nanorc    php.nanorc     tex.nanorccss.nanorc     java.nanorc      nanorc.nanorc  pov.nanorc     xml.nanorcdebian.nanorc  makefile.nanorc  objc.nanorc    python.nanorc

Также упоминалось, что для включения подсветки языка необходимо добавить include и путь к определению языка, которое вы хотите включить в свой ~/.nanorc файл. Так, например, чтобы включить C/C++, вы должны добавить эту строку.

include /usr/share/nano/c.nanorc

То find команда выполняет поиск файлов или каталогов в указанном каталоге.

  • То -iname флаг указывает ему искать только файлы с именем, которое заканчивается на .nanorc.
  • То -exec флаги определяют команду для выполнения над каждым найденным файлом.
  • То {} заменяется именем файла.
  • \; используется для обозначения окончания команды, подлежащей выполнению в find команда.
  • Наконец, >> ~/.nanorc приводит к добавлению выходных данных к вашему ~/.nanorc файл.

Это должно включать все плагины подсветки синтаксиса, включенные по умолчанию, и все, что вы добавляете в /usr/share/nano:

find /usr/share/nano -name '*.nanorc' -printf "include %p\n" > ~/.nanorc

Или отредактируйте файл /etc/nanorc и посмотрите, можете ли вы раскомментировать включаемые файлы.

Это работает, если у вас есть версия nano, которая отказывается принимать подстановочные знаки в файле .nanorc.

Просто запускайте эту строку каждый раз, когда добавляете дополнительную конфигурацию цвета .nanorc.

У меня есть некоторая подсветка синтаксиса nano в мой github.

Есть живые примеры скриншотов для html и php:

enter image description here

и

enter image description here

Вы можете использовать это, чтобы включить все: (добавьте это в ~/.nanorc файл)

include "/usr/share/nano/*.nanorc"

Счастливого кодирования!

Я случайно отключил подсветку с помощью сочетания клавиш Alt+Y. Его можно включить снова с помощью того же сочетания клавиш.

Я подумал, что мог бы предложить что-то более свежее и актуальное, начиная почти с 2020 года :

Наноорк Скопаца в Git есть все, что вам нужно. он по-прежнему регулярно обновляется.

и поставляется с довольно аккуратным руководством по установке и документированным установщиком, который позволяет вам запускать все быстро, чисто и легко.

Примечание: Возможно, вам придется удалить некоторые маркеры из файла nanorc или закомментировать их (etc-host, html и html.j2), поскольку они кажутся ошибочными, но ничего страшного

Я знаю, что это старая тема, но, возможно, мое решение может помочь

отредактируйте файл в /etc/nanorc

Из строки 243 вы можете найти много файлов, которые включают в себя. Просто раскомментируйте те, которые вам нужны, сохраните и готово.

## Nanorc filesinclude "/usr/share/nano/nanorc.nanorc"## C/C++include "/usr/share/nano/c.nanorc"## Makefilesinclude "/usr/share/nano/makefile.nanorc"## Cascading Style Sheetsinclude "/usr/share/nano/css.nanorc"## Debian filesinclude "/usr/share/nano/debian.nanorc"## Gentoo files# include "/usr/share/nano/gentoo.nanorc"

Я не уверен, что если вы обновите nano, эти изменения исчезнут.

Поддерживаются наиболее полные и актуальные синтаксические указатели для nano здесь.

Чтобы установить все маркеры для вашего пользователя, просто запустите:

cd /tmpgit clone https://github.com/tech4david/nano-highlight.gitcd nano-highlight/make installecho "include ~/.nano/syntax/ALL.nanorc" >> ~/.nanorc