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