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


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


149
2017-12-23 15:20


происхождения


Большое спасибо за файлы синтаксиса в git repo, я использую это на всех моих серверах сейчас ... поддерживайте хорошую работу matey !!!
Комментарий @TheGene и спасибо за ответ. Репо приписывается ему, а не мне, тем, кто задает вопрос. - Oxwivi


ответы:


Редактор 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 переменная среды помогает. Вы можете отключить его unset LANG в терминале. (Решение, полученное из Вот)

Существуют и другие решения, если вас не устраивает подсветка. Один пример такого можно найти Вот

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


148
2017-12-23 16:07



Эти строки раскоментированы в /etc/nanorc - глобальные настройки будут перезаписаны ~/.nanorc? Как отключить .nanorc? - Oxwivi
О, подождите, у меня даже нет ~/.nanorc файл. - Oxwivi
Подождите, подождите, как получится глобальная настройка со всеми include строки, не позволяющие подчеркивать синтаксис, даже если у меня нет .nanorc? - Oxwivi
ls -1 /usr/share/nano/*.nanorc | sed 's/^\//include \//' >> ~/.nanorc добавьте их все в ваш .nanorc-файл или создайте его, если он не существует. - Thom Porter
include /usr/share/nano/* не работает - Jarek Jakubowski


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

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

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


71
2017-08-27 16:17



Спасибо, что сохранили эти хорошие синтаксические определения в GitHub. - Rubens Mariuzzo
Мои файлы * .js не работали ... отредактированы / etc / nanorc, чтобы удалить любой другой синтаксис в соответствии с FAQ github.com/nanorc/..., Nano nanorc - Carlton
Я просто установил ваш синтаксис defs на Mac OSX. Есть только одна вещь, которую я хотел бы отметить: черный цвет открытой рамки в python теряется на черном фоне моего терминала - Tom Busby
На самом деле проблема, некоторые цветные тексты черные! Если наш фон терминала черный, эти слова невидимы! - dukevin
+ druciferre предоставляет отличную команду ниже, которая автоматически добавляет все файлы синтаксиса в ваш .nanorc-файл. Я изменил путь, чтобы указать на место установки по умолчанию: find $HOME/.nano/syntax/ -iname "*.nanorc" -exec echo include {} \; >> ~/.nanorc - wasatchwizard


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

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 flags определяет команду для выполнения по каждому найденному файлу.
  • {} заменяется именем файла.
  • \; используется для обозначения конца команды для выполнения find команда.
  • И, наконец, >> ~/.nanorc вызывает добавление вывода к вашему ~/.nanorc файл.

37
2017-10-18 18:22



отличный совет и объяснение, спасибо многому человеку! ;) - daveoncode


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

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

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

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

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


6
2017-12-28 14:23





У меня есть подсветка синтаксиса nano мой github,

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

enter image description here

а также

enter image description here


2
2018-05-03 06:57





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
2018-06-28 03:08



Было бы полезно, если бы вы могли объяснить, почему это полезный ответ для новых пользователей. Что делает команда? Что это изменит? Случайное предложение запуска командной строки не помогает. - Kevin Bowen


Поддерживаются самые полные и современные синтаксические hilighters для 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
2017-07-29 10:21



Решение хорошее, но я бы использовал другую папку для git clone, Содержание от /tmp папка будет удалена при каждом запуске системы, и поэтому вы никогда не сможете запустить git pull, - A.B.
Ваш языковой тег неверен. js не bash или shell-script и я поместил ссылку за словом here, В чем проблема? - A.B.
@ A.B. не имеет значения, исчезла ли эта папка с тех пор, как вы make install все файлы синтаксиса копируются в безопасное место, где они принадлежат: ~/.nano/syntax, - Pablo Bianchi


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

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

Счастливое кодирование!


1
2018-02-12 04:00





Я нашел подсветку синтаксиса для js Вот,

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

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


0
2017-07-05 23:21