Як увімкнути підсвічування синтаксису в нано?


184

Чи може нано робити виділення синтаксису, як gedit та vim? Як я можу це ввімкнути? Мені потрібні хоча б основні моменти синтаксису bash та python.


1
Велике спасибі за синтаксичні файли в git repo, я зараз використовую це на всіх своїх серверах ... продовжуйте працювати добре !!!

1
@TheGene Прокоментуйте та подякуйте за відповідь. РЕПО приписується йому, а не мені, тому, хто задає питання.
Oxwivi

Відповіді:


175

Наноредактор забезпечує виділення синтаксису для кількох мов та сценаріїв сам по собі. Перевірити/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

Зв’яжіть їх із наявним файлом конфігурації користувача, який знаходиться у ~/.nanorcтакому:

nits@nits-excalibur:~$ cat ~/.nanorc
include /usr/share/nano/sh.nanorc

Тепер підсвічування синтаксису ввімкнено в нано для будь-якого файлу, який ви пов’язали (Ви також можете зв'язати кілька файлів)

скріншот виділення синтаксису

Примітка. Іноді ви можете отримати segmentation faultпісля редагування ~/.nanorcфайлу. У разі виникнення такої помилки допоможе скидання змінної середовища LANG . Ви можете скасувати його unset LANGв терміналі. (Рішення, отримане звідси )

Є й інші рішення, якщо вас не влаштовує башти. Один з таких прикладів можна знайти тут

Ви також можете include /usr/share/nano/*записати у файл ~ / .nanorc, щоб дозволити виділення всіх мов, якщо ваша нано-версія підтримує його.


1
Ці рядки не коментовані /etc/nanorc- чи замінюються глобальні параметри ~/.nanorc? Як відключити .nanorc?
Oxwivi

13
О зачекайте, я навіть не маю ~/.nanorcфайлу.
Oxwivi

1
Зачекайте, зачекайте, як з'являється глобальна настройка, коли всі includeрядки не дозволяють виділити синтаксис, навіть якщо я цього не зробив .nanorc?
Oxwivi

9
ls -1 /usr/share/nano/*.nanorc | sed 's/^\//include \//' >> ~/.nanorcдодайте їх до файлу .nanorc або створіть його, якщо його не існує.
Том Портер

9
include /usr/share/nano/*не працює
Jarek Jakubowski

74

Так, ви можете, проте визначення синтаксису за замовчуванням є досить бідними та неповними. Я підтримувати більш точний набір визначень тут , для тих , хто вважає їх корисними.

Щоб встановити, запустіть:

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


6
Дякуємо, що зберегли ці приємні визначення синтаксису в GitHub.
Рубенс Маріуццо

3
Мій * .js файли не працювали ... відредагований / і т.д. / nanorc , щоб видалити будь-який інший синтаксис включає в себе відповідно до Довідка github.com/nanorc / ... . ♥ Nano ♥ nanorc
Карлтон

5
Щойно я встановив ваші синтаксичні defs на Mac OSX. Зазначу лише одне - чорний колір відкритої дужки в пітоні втрачається на чорному тлі мого терміналу
Том Бусбі

5
Насправді проблема є, частина кольорового тексту чорного кольору! Якщо фон нашого терміналу чорний, ці слова невидимі!
герцог

8
У вас мертве посилання
not2qubit

52

Я використовував цю команду для швидкого включення всіх доступних мов.

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файлу.

чудова порада та пояснення, спасибі велика людина! ;)
daveoncode

Дякуємо і не схоже, що вам потрібен прапор iname. Наступне, здається, працює також. /Usr/share/nano/*.nanorc
Milind

Танськ дуже!
VIX,

7

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

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

Або відредагуйте / etc / nanorc і подивіться, чи можете ви відміняти коментарі.

Це спрацьовує, якщо у вас є версія nano, яка відмовляється приймати підстановку у файлі .nanorc.

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



2

Ви можете використовувати це для включення всіх: (додайте це до ~ / nanorc файл)

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

Щасливого кодування!


1
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

22
Було б корисно, якщо ви могли б пояснити, чому це корисна відповідь для нових користувачів. Що робить команда? Що це змінюється? Випадково запропонувати запустити командний рядок не корисно.
Кевін Боуен

1

Найбільш повно і до дати синтаксичних hilighters для нано підтримуються тут .

Щоб встановити всі маркери для свого користувача, просто запустіть:

cd /tmp
git clone https://github.com/tech4david/nano-highlight.git
cd nano-highlight/
make install
echo "include ~/.nano/syntax/ALL.nanorc" >> ~/.nanorc

Рішення добре, але я використовував би іншу папку для git clone. Вміст із /tmpпапки буде видалено під час кожного запуску системи, і тому ви ніколи не можете запустити git pull.
AB

Ваш мовний тег неправильний. jsНЕ bashабо shell-scriptі я помістив посилання за словом here. Де проблема?
AB

1
@AB це не має значення , якщо ця папка зникла , так як , коли ви make installвсе синтаксичні файли копіюються в безпечне місце , де вони належать: ~/.nano/syntax.
Пабло А

1

Для тих, у кого виникають проблеми після додержання вищезазначених інструкцій, також перевірте, чи є у вас повторювані визначення . Вони відключать усі підсвічування синтаксису для всіх файлів . Я наткнувся на це після додавання 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

Я знайшов підсвічування синтаксису для JS тут .

Я додав його до свого файлу користувача в ~/.nanorc

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


0

Я випадково відключив підсвічування за допомогою комбінації клавіш Alt+ Y. Його можна знову ввімкнути за допомогою тієї самої комбінації клавіш.


0

Я знаю, що це стара нитка, але, можливо, моє рішення допоможе

відредагуйте файл у / 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"

Я не впевнений, якщо ви оновите нано, ці зміни зникнуть.


-1

Я щойно створив цей сценарій, щоб додати кольори до нано: Але, звичайно, вам потрібно мати кольорові коди в / usr / share / nano, щоб це працювало. Якщо є помилки: просто вручну відредагуйте файл ~ / .nanorc і видаліть рядки, які видають помилки.

#!/bin/bash

for i in `ls /usr/share/nano`
  do
    echo "include /usr/share/nano/$i" >> ~/.nanorc
  done

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.