Nano'da söz dizimi vurgulamasını nasıl etkinleştiririm?

149

Nano, gedit ve vim gibi vurgulayan sözdizimi yapabilir mi? Nasıl etkinleştirebilirim? En azından bash ve python sözdizimi vurgularına ihtiyacım var.

    
sordu Oxwivi 23.12.2011 16:20

11 cevap

148

nano editörü, birkaç dil ve komut dosyası için kendi kendine söz dizimi vurgulama sağlar. % Co_de% göz atın

[email protected]:~$ 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

Bunları, bu satıra benzer bir şeyle /usr/share/nano/ adresinde bulunan kullanıcının nano yapılandırma dosyasına bağlayın:

[email protected]:~$ cat ~/.nanorc
include /usr/share/nano/sh.nanorc

Şimdi, bağladığınız her dosya için nano'da söz dizimi vurgulaması etkinleştirilmiştir (Birden çok dosyayı da bağlayabilirsiniz)

Not: Bazen, ~/.nanorc dosyanızı düzenledikten sonra segmentation fault alabilirsiniz. Böyle bir hata oluşursa, LANG ortam değişkeninin kararsız hale gelmesine yardımcı olur. Terminalde ~/.nanorc ile kaldırabilirsiniz. (Çözüm, buradan ) elde edildi.

Bash vurgulamanızdan memnun değilseniz başka çözümler de vardır. Bunun bir örneği burada

Ayrıca, nano sürümünüz destekliyorsa tüm dillerin vurgulanmasını sağlamak için ~ / .nanorc dosyasına unset LANG yazabilirsiniz.

    
verilen cevap Nitin Venkatesh 23.12.2011 17:07
72

Evet, ancak varsayılan sözdizimi tanımları oldukça zayıf ve eksik olabilir. Bunları yararlı bulabilen herkes için daha doğru tanımları burada sürdürüyorum.

Yüklemek için şunu çalıştırın:

git clone https://github.com/nanorc/nanorc.git
cd nanorc
make install

Bu satırları ~ / .nanorc

öğesine ekleyin
include ~/.nano/syntax/html.nanorc
include ~/.nano/syntax/css.nanorc
include ~/.nano/syntax/php.nanorc
include ~/.nano/syntax/ALL.nanorc

Renklendirmek istediğinizi belirtin ve bu renkleri tercihlerinize göre ayarlamanız gerekir. % Co_de%, henüz sınıflandırılmamış tüm dosyalar için özellikler açıklar. Başlamak için ihtiyacınız olan aletler, son cilalı ürün değil.

    
verilen cevap Craig Barnes 27.08.2012 18:17
37

Mevcut tüm dilleri hızlıca etkinleştirmek için bu komutu kullandım.

find /usr/share/nano/ -iname "*.nanorc" -exec echo include {} \; >> ~/.nanorc

Diğer yanıtlarda belirtildiği gibi, /usr/share/nano/ , farklı diller için tanımları içerir.

$ 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

Ayrıca, bir dilin vurgulanmasını etkinleştirmek için, include 'yi ve ~/.nanorc dosyanıza etkinleştirmek istediğiniz dil tanımının yolunu eklersiniz. Yani, örneğin, C / C ++ özelliğini etkinleştirmek için bu satırı eklersiniz.

include /usr/share/nano/c.nanorc

find komutu, belirtilen dizindeki dosyalar veya dizinleri arar.

  • -iname bayrağı, yalnızca .nanorc ile biten bir ada sahip dosyaların aranmasını söyler.
  • -exec bayrağı, bulunan her dosya üzerinde yürütülecek komutu tanımlar.
  • {} , dosya adıyla değiştirildi.
  • \; , find komutuna uygulanacak komutun sonuna işaret etmek için kullanılır.
  • Son olarak, >> ~/.nanorc , çıktının ~/.nanorc dosyanıza eklenmesine neden oluyor.
verilen cevap Drew Chapin 18.10.2014 20:22
6

Bu, varsayılan olarak dahil edilen tüm sözdizimi vurgulama eklentilerini ve / usr / share / nano'ya eklediğiniz her şeyi içermelidir:

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

Veya, / etc / nanorc dosyasını düzenleyin ve içerdiği öğeleri kaldıramayacağınızı görün.

Bu, nano sürümünün .nanorc dosyasındaki joker karakterleri kabul etmeyi reddettiğinde çalışır.

Ek bir .nanorc renk yapılandırması eklediğinizde bu satırı çalıştırın.

    
verilen cevap NotoriousPyro 28.12.2016 15:23
2

Github'um 'da bazı nano sözdizimi vurgularım var.

HTML ve php için canlı örnek ekran görüntüleri var:

ve

    
verilen cevap Eric Leschinski 03.05.2015 08:57
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
    
verilen cevap user170859 28.06.2013 05:08
1

Nano için en eksiksiz ve güncel sözdizimi hilighters, burada .

Kullanıcınız için tüm vurgulayıcıları yüklemek için:

cd /tmp
git clone https://github.com/tech4david/nano-highlight.git
cd nano-highlight/
make install
echo "include ~/.nano/syntax/ALL.nanorc" >> ~/.nanorc
    
verilen cevap Raveren 29.07.2015 12:21
1

Tümünü dahil etmek için bunu kullanabilirsiniz: (~ / nanorc dosyasına ekleyin)

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

Mutlu kodlama!

    
verilen cevap Norbert Mezei 12.02.2016 05:00
0

js için buradaki sözdizimi vurgulamasını buldum.

Kullanıcı dosyama ~/.nanorc

adresinden ekledim

Ancak, ekleyebileceğim bir dosya almak için önce /usr/share/nano/nanorc.nanorc 'den yerel klasöre önce ~/.nanorc olarak kopyalamak zorunda kaldım.

    
verilen cevap Forrest Erickson 06.07.2015 01:21
0

Yukarıdaki talimatları uyguladıktan sonra sorun yaşayanlar için, yinelenen tanımları olup olmadığını da kontrol edin. Bunlar tüm dosyalar için tüm sözdizimi vurgulamayı devre dışı bırakır. % Co_de% dosyası ekledikten sonra buna girdim ve nanorc.nanorc öğesinin zaten aynı bir bölüm olduğunu fark etmedim, yani:

## 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)\>"
(...)
    
verilen cevap dmvianna 19.02.2016 05:50
-1

Renkleri nanoya eklemek için bu komut dosyasını yeni yaptım: Fakat elbette bunun çalışması için / usr / share / nano'da renk kodlarına sahip olmalısınız. Hata varsa: ~ / .nanorc dosyasını elle düzenleyin ve hataları veren satırları kaldırın.

#!/bin/bash

for i in 'ls /usr/share/nano'
  do
    echo "include /usr/share/nano/$i" >> ~/.nanorc
  done
    
verilen cevap some_random_guy 04.02.2016 11:35

Etiketlerdeki diğer soruları oku