Может ли 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 для любого файла, который вы связали (вы также можете связать несколько файлов).
Примечание: Иногда вы можете получить 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:
и
Вы можете использовать это, чтобы включить все: (добавьте это в ~/.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