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

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

216
задан 2 July 2013 в 23:51

14 ответов

Редактор 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 для любого связанного файла (вы также можете связать несколько файлов)

screenshot of syntax highlighting

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

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

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

198
ответ дан 2 July 2013 в 23:51

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

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

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 описывает функции для всех еще не классифицированных файлов. Это инструменты, необходимые для начала работы, а не конечный продукт.

84
ответ дан 2 July 2013 в 23:51

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

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

enter image description here

и

enter image description here

3
ответ дан 2 July 2013 в 23:51

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

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

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

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

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

8
ответ дан 2 July 2013 в 23:51

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

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

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

.
0
ответ дан 2 July 2013 в 23:51

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

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 .
58
ответ дан 2 July 2013 в 23:51

Самый полный и обновленный на сегодняшний день вспомогательные средства синтаксиса для nano поддерживаются здесь .

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

cd /tmp
git clone https://github.com/tech4david/nano-highlight.git
cd nano-highlight/
make install
echo "include ~/.nano/syntax/ALL.nanorc" >> ~/.nanorc
1
ответ дан 2 July 2013 в 23:51

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

#!/bin/bash

for i in `ls /usr/share/nano`
  do
    echo "include /usr/share/nano/$i" >> ~/.nanorc
  done
0
ответ дан 2 July 2013 в 23:51
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
0
ответ дан 2 July 2013 в 23:51

Тем, у кого возникли проблемы после выполнения приведенных выше инструкций, также проверьте, есть ли у вас повторяющиеся определения . Это отключит всю подсветку синтаксиса для всех файлов . Я столкнулся с этим после добавления файла 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)\>"
(...)
1
ответ дан 2 July 2013 в 23:51

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

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

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

2
ответ дан 2 July 2013 в 23:51

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

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

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

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

2
ответ дан 22 November 2019 в 22:46

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

отредактировать файл в / 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, эти изменения исчезнут.

1
ответ дан 22 November 2019 в 22:46

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

1
ответ дан 22 November 2019 в 22:46

Другие вопросы по тегам:

Похожие вопросы: