Может ли 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.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 поддерживает это.
Да, вы можете, однако стандартные определения синтаксиса довольно скудны и неполны. Я поддерживаю более точный набор определений здесь, для тех, кто найдет их полезными.
Чтобы установить, выполните:
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
описаны возможности для всех пока неклассифицированных файлов. Это инструменты, необходимые для начала работы, а не конечный отполированный продукт.
Я использовал эту команду, чтобы быстро включить всех существующих языков.
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
. Это должно включать всю подсветку синтаксиса плагинов, включенных по умолчанию, и любые добавления в каталог /usr/доли/нано:
find /usr/share/nano -name '*.nanorc' -printf "include %p\n" > ~/.nanorc
Или отредактируйте файл /etc/nanorc и посмотреть, если вы можете раскомментировать включает в себя.
Это работает, если у вас есть версия Nano, который отказывается принимать подстановочные знаки в .файл nanorc.
Просто запустить эту линию каждый раз, когда вы добавить дополнительный .цвет nanorc конфиг.
Вы можете использовать это, чтобы включить все: (добавить в файл~/. nanorc)
include "/usr/share/nano/*.nanorc"
Удачи в кодировании !
У меня есть несколько нано подсветку синтаксиса в моем GitHub.
Есть живой пример скриншотов для HTML и PHP:
и
Я думал, что я мог бы предложить что-то более свежий и актуальный по состоянию на практически 2020 :
Scopatz'ы nanorc на Git есть все, что вам нужно. он по-прежнему регулярно обновляются.
и поставляется с очень аккуратно руководство по установке &амп документально установки, которая позволяет получить вещи прокатки быстрый, чистый, &; легко.
Примечание : возможно, Вам придется удалить некоторые маркеры из файла nanorc или закомментировать их (и т. д.-хозяин, HTML и HTML.J2 в) как они, кажется, быть неисправен, но ничего страшного
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
Наиболее полная и актуальная hilighters синтаксис для нано сохранялись здесь.
Чтобы установить все маркеры для пользователя просто запустите:
cd /tmp
git clone https://github.com/tech4david/nano-highlight.git
cd nano-highlight/
make install
echo "include ~/.nano/syntax/ALL.nanorc" >> ~/.nanorc
Для тех, у кого возникли проблемы после того, как следуя инструкциям выше, также проверьте, если у вас есть дубликат определения. Это будет отключить все подсветки синтаксиса для все файлы. Я столкнулся с этим после добавления 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)\>"
(...)
Я случайно подсветку отключить с помощью сочетания клавиш <и>Альт</роз>+<и>г</КБД>. Он может быть включен снова с той же комбинации клавиш.
Я знаю, что это старый нить, но может мое решение поможет
отредактировать файл в /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"
Я не уверен, если вы обновляете нано эти изменения исчезли.
Я нашел подсветку синтаксиса для JS здесь.
Я добавил его в мой пользовательский файл ~/.nanorc
Однако, чтобы получить файл, в который я мог бы добавить, мне пришлось сначала скопировать из/usr/доли/нано/nanorc.nanorc в мою локальную папку, первый в ~/.nanorc
.
Я просто сделал этот скрипт, чтобы добавить цвет к нано: Но, конечно, вы должны иметь цветовые коды в /usr/доли/нано для этой работы. Если есть ошибки: просто вручную отредактировать ~/.файл nanorc и удалите строки, которые дают ошибки.
#!/bin/bash
for i in `ls /usr/share/nano`
do
echo "include /usr/share/nano/$i" >> ~/.nanorc
done