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

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

1
задан 3 July 2013 в 00:51

10 ответов

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

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

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

Укажите те, для которых вы хотите раскрасить, и вам нужно будет настроить эти цвета на свои предпочтения. [F3] описывает функции для всех еще неклассифицированных файлов. Это инструменты, необходимые для начала работы, а не для конечного отполированного продукта.

69
ответ дан 25 May 2018 в 15:43
  • 1
    Спасибо, что сохранили эти хорошие синтаксические определения в GitHub. – Rubens Mariuzzo 13 November 2012 в 08:43
  • 2
    Мои файлы .js не работали ... отредактированы / etc / nanorc, чтобы удалить любой другой синтаксис, в соответствии с FAQ github.com/nanorc/… . ♥ Nano ♥ nanorc – Carlton 6 August 2014 в 17:27
  • 3
    Я просто установил ваш синтаксис defs на Mac OSX. Есть только одна вещь, которую я хотел бы отметить: черный цвет открытой рамки в python теряется на черном фоне моего терминала – Tom Busby 27 August 2014 в 19:25
  • 4
    На самом деле проблема, некоторые цветные тексты черные! Если наш фон терминала черный, эти слова невидимы! – dukevin 8 December 2014 в 07:20
  • 5
    + druciferre предоставляет отличную команду ниже, которая автоматически добавляет все файлы синтаксиса в ваш .nanorc-файл. Я изменил путь, чтобы указать на место установки по умолчанию: find $HOME/.nano/syntax/ -iname "*.nanorc" -exec echo include {} \; >> ~/.nanorc – wasatchwizard 3 September 2015 в 20:26

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

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 определяют команду для выполнения для каждого найденного файла. [F11] заменяется именем файла. \; используется для обозначения конца команды для выполнения команды find. Наконец, >> ~/.nanorc приводит к добавлению вывода к вашему файлу ~/.nanorc.
36
ответ дан 25 May 2018 в 15:43
  • 1
    отличный совет и объяснение, спасибо многому человеку! ;) – daveoncode 14 May 2016 в 20:02

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

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

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

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

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

6
ответ дан 25 May 2018 в 15:43

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

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

и

enter image description here

2
ответ дан 25 May 2018 в 15:43
[F1]
1
ответ дан 25 May 2018 в 15:43
  • 1
    Было бы полезно, если бы вы могли объяснить, почему это полезный ответ для новых пользователей. Что делает команда? Что это изменит? Случайное предложение запуска командной строки не помогает. – Kevin Bowen 28 June 2013 в 08:10

Здесь вы найдете наиболее полную и актуальную подсветку синтаксиса для 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
ответ дан 25 May 2018 в 15:43
  • 1
    Решение хорошее, но я бы использовал другую папку для git clone. Содержимое otf папки /tmp будет удалено при каждом запуске системы, и поэтому вы никогда не сможете запустить git pull. – A.B. 30 July 2015 в 11:00
  • 2
    Ваш языковой тег неверен. js не bash или shell-script, и я поместил ссылку за словом here. В чем проблема? – A.B. 30 July 2015 в 11:19
  • 3
    @ A.B. не имеет значения, исчезла ли эта папка с тех пор, как вы make install все файлы синтаксиса скопированы в безопасное место, где они принадлежат: ~/.nano/syntax. – Pablo Bianchi 15 October 2017 в 00:06

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

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

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

1
ответ дан 25 May 2018 в 15:43

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

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

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

0
ответ дан 25 May 2018 в 15:43

Для тех, кто испытывает проблемы после выполнения приведенных выше инструкций, также проверьте, есть ли у вас дубликаты определений. Они отключат выделение синтаксиса для всех файлов. Я столкнулся с этим после добавления файла 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
ответ дан 25 May 2018 в 15:43

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

#!/bin/bash

for i in `ls /usr/share/nano`
  do
    echo "include /usr/share/nano/$i" >> ~/.nanorc
  done
-1
ответ дан 25 May 2018 в 15:43

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

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