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

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

Комментарии к вопросу (2)
Решение

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

nits@nits-excalibur:~$ ls /usr/share/nano/
asm.nanorc     fortran.nanorc   man.nanorc     ocaml.nanorc   ruby.nanorc
awk.nanorc     gentoo.nanorc    mgp.nanorc     patch.nanorc   sh.nanorc
c.nanorc       groff.nanorc     mutt.nanorc    perl.nanorc    tcl.nanorc
cmake.nanorc   html.nanorc      nano-menu.xpm  php.nanorc     tex.nanorc
css.nanorc     java.nanorc      nanorc.nanorc  pov.nanorc     xml.nanorc
debian.nanorc  makefile.nanorc  objc.nanorc    python.nanorc

Привяжите их к конфигурационному файлу nano вашего пользователя по адресу ~/.nanorc, используя что-то похожее на эту строку:

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

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

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

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

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

Комментарии (16)

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

Чтобы установить, выполните:

git clone github.com/scopatz/nanorc.git
cd nanorc
make install

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

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

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

Комментарии (10)

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

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

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

$ ls /usr/share/nano
asm.nanorc     fortran.nanorc   man-html       ocaml.nanorc   ruby.nanorc
awk.nanorc     gentoo.nanorc    man.nanorc     patch.nanorc   sh.nanorc
cmake.nanorc   groff.nanorc     mgp.nanorc     perl.nanorc    tcl.nanorc
c.nanorc       html.nanorc      mutt.nanorc    php.nanorc     tex.nanorc
css.nanorc     java.nanorc      nanorc.nanorc  pov.nanorc     xml.nanorc
debian.nanorc  makefile.nanorc  objc.nanorc    python.nanorc

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

include /usr/share/nano/c.nanorc

Найти команда ищет файлы и папки в указанной директории.

  • Флаг -имя_экземпляра говорит он, чтобы только искать файлы с именем, которое заканчивается на .nanorc.
  • В остается флагов определяет, чтобы выполнить команду на каждый файл найден.
  • В {} заменяется на имя файла.
  • \; используется для обозначения конца, чтобы выполнить команду в командной "найти".
  • И, наконец, >> ~/.nanorc вызывает выход, который будет добавлен в ваш~/.файл nanorc.
Комментарии (3)

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

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

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

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

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

Комментарии (0)

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

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

Удачи в кодировании !

Комментарии (0)

У меня есть несколько нано подсветку синтаксиса в моем GitHub.

Есть живой пример скриншотов для HTML и PHP:

и

Комментарии (0)

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

Scopatz'ы nanorc на Git есть все, что вам нужно. он по-прежнему регулярно обновляются.

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

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

Комментарии (0)
wget -r -nH --cut-dirs=3 --no-parent --reject="index.html*" https://nanosyntax.googlecode.com/svn/trunk/syntax-nanorc/ -P ~/.nano-syntax
for i in `ls --color=never -1 ~/.nano-syntax/*.nanorc` ; do echo "include $i" >> ~/.nanorc ; done
Комментарии (1)

Наиболее полная и актуальная hilighters синтаксис для нано сохранялись здесь.

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

cd /tmp
git clone https://github.com/tech4david/nano-highlight.git
cd nano-highlight/
make install
echo "include ~/.nano/syntax/ALL.nanorc" >> ~/.nanorc
Комментарии (3)

Для тех, у кого возникли проблемы после того, как следуя инструкциям выше, также проверьте, если у вас есть дубликат определения. Это будет отключить все подсветки синтаксиса для все файлы. Я столкнулся с этим после добавления nanorc.файл nanorc, и не понимая, что мой `~/.nanorc уже имели одинакового сечения, т. е.:

## Here is an example for nanorc files.
##
syntax "nanorc" "\.?nanorc$"
## Possible errors and parameters
icolor brightwhite "^[[:space:]]*((un)?set|include|syntax|i?color).*$"
## Keywords
icolor brightgreen "^[[:space:]]*(set|unset)[[:space:]]+(autoindent|backup|$
icolor green "^[[:space:]]*(set|unset|include|syntax)\>"
(...)
Комментарии (0)

Я случайно подсветку отключить с помощью сочетания клавиш <и>Альт</роз>+<и>г</КБД>. Он может быть включен снова с той же комбинации клавиш.

Комментарии (0)

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

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

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

## Nanorc files
include "/usr/share/nano/nanorc.nanorc"

## C/C++
include "/usr/share/nano/c.nanorc"

## Makefiles
include "/usr/share/nano/makefile.nanorc"

## Cascading Style Sheets
include "/usr/share/nano/css.nanorc"

## Debian files
include "/usr/share/nano/debian.nanorc"

## Gentoo files
# include "/usr/share/nano/gentoo.nanorc"

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

Комментарии (0)

Я нашел подсветку синтаксиса для JS здесь.

Я добавил его в мой пользовательский файл ~/.nanorc

Однако, чтобы получить файл, в который я мог бы добавить, мне пришлось сначала скопировать из/usr/доли/нано/nanorc.nanorc в мою локальную папку, первый в ~/.nanorc.

Комментарии (0)

Я просто сделал этот скрипт, чтобы добавить цвет к нано: Но, конечно, вы должны иметь цветовые коды в /usr/доли/нано для этой работы. Если есть ошибки: просто вручную отредактировать ~/.файл nanorc и удалите строки, которые дают ошибки.

#!/bin/bash

for i in `ls /usr/share/nano`
  do
    echo "include /usr/share/nano/$i" >> ~/.nanorc
  done
Комментарии (1)