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


184

Nano, gedit ve vim gibi vurgulamayı yapabilir mi? Bunu nasıl etkinleştirebilirim? En azından bash ve python sözdizimi özelliklerine ihtiyacım var.


1
Git deposundaki sözdizimi dosyaları için çok teşekkür ederim, bunu şimdi tüm sunucularımda kullanıyorum.

1
@TheGene Yorum ve cevabına teşekkür ederim. Depo, soruyu soran ben değil, ona aittir.
Oxwivi

Yanıtlar:


175

Nano editör, birkaç dil ve komut dosyası için söz diziminin vurgulanmasını sağlar. Ödeme/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

Bunları, kullanıcının ~/.nanorcbu satırda benzer bir şeyle mevcut nano yapılandırma dosyasına bağlayın:

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

Artık nano'da bağladığınız herhangi bir dosya için sözdizimi vurgulaması etkindir (Ayrıca birden çok dosyayı da bağlayabilirsiniz)

sözdizimi vurgulama ekran görüntüsü

Not: Bazen dosyanızı segmentation faultdüzenledikten sonra bir süre alabilirsiniz ~/.nanorc. Böyle bir hata oluşursa, LANG ortam değişkenini ayarlamak yardımcı olur. unset LANGTerminalde onu ayarlayabilirsin . ( Buradan elde edilen çözüm )

Bash vurgulamasından memnun kalmazsanız başka çözümler de vardır. Bunun bir örneği burada bulunabilir

Eğer include /usr/share/nano/*nano versiyonunuz destekliyorsa, tüm dillerin vurgulanmasını sağlamak için ~ / .nanorc dosyasına da yazabilirsiniz .


1
Bu satırlarda yorumlanmamış /etc/nanorc- genel ayarların üzerine yazılıyor ~/.nanorcmu? Nasıl devre dışı bırakabilirim .nanorc?
Oxwivi

13
Oh bekleyin, bir ~/.nanorcdosya bile yok .
Oxwivi

1
Bekle, bekle, includeyapmasam bile sözdizimi olaylarını mümkün kılmayan tüm satırlarla küresel ayar nasıl .nanorc?
Oxwivi

9
ls -1 /usr/share/nano/*.nanorc | sed 's/^\//include \//' >> ~/.nanorchepsini .nanorc dosyasına ekleyin veya yoksa onu oluşturun.
Thom Porter,

9
include /usr/share/nano/*çalışmıyor
Jarek Jakubowski

74

Evet, ancak varsayılan sözdizimi tanımları oldukça zayıf ve eksik olabilir. Burada daha doğru bir tanım kümesi tutuyorum, onları yararlı bulan herkes için.

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

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

Bu satırları ~ / .nanorc dizinine ekleyin.

include ~/.nano/syntax/html.nanorc
include ~/.nano/syntax/css.nanorc
include ~/.nano/syntax/php.nanorc
include ~/.nano/syntax/ALL.nanorc

Renklendirmek istediklerinizi belirtin; bu renkleri tercihlerinize göre ayarlamak zorunda kalacaksınız. ALL.nanorcTüm henüz sınıflandırılmamış dosyalar için özellikler açıklanmaktadır. Bunlar, cilalanmış ürün değil, başlamanız gereken araçlardır.


6
Bu güzel sözdizimi tanımlarını GitHub'da tuttuğunuz için teşekkür ederiz.
Rubens Mariuzzo 13:12

3
* .Js dosyalarım çalışmadı ... SSS github.com/nanorc/… 'de belirtilen diğer sözdizimlerini kaldırmak için / etc / nanorc ' da düzeltildi . ♥ Nano ♥ nanorc
Carlton,

5
Mac OSX’te sözdizimi hatalarınızı yeni kurdum. Unutmadığım tek bir şey var ki pythondaki açık desteğin siyah rengi terminalimin siyah arka planına karşı kayboluyor
Tom Busby

5
Aslında bir sorun var, renkli metnin bir kısmı siyah! Terminal arka planımız siyahsa bu kelimeler görünmez!
dukevin

8
Ölü bir bağlantınız var
not2qubit 17:18

52

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

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

Diğer cevaplarda da belirtildiği gibi, /usr/share/nano/farklı dillerin tanımlarını 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ı includeetkinleştirmek için, ~/.nanorcdosyanızı ve etkinleştirmek istediğiniz dil tanımının yolunu da eklersiniz . Örneğin, C / C ++ 'ı etkinleştirmek için bu satırı ekleyeceksiniz.

include /usr/share/nano/c.nanorc

findBelirtilen dizin içindeki dosyaların veya dizinlerin için komut arar.

  • -inameBayrak sadece biten bir isimle dosyalara bakmak için söyler .nanorc.
  • -execBayrakları bulunan her dosya üzerinde yürütülecek bir komut tanımlar.
  • {}Dosya adıyla yerini alır.
  • \;Komuta yürütmek için komutun sonunu belirtmek için kullanılır find.
  • Son olarak, >> ~/.nanorcçıktının ~/.nanorcdosyanıza eklenmesine neden olur .

harika bir ipucu ve açıklama, çok teşekkürler adam! ;)
daveoncode

Teşekkürler ve iname bayrağına ihtiyacın var gibi görünmüyor. Aşağıdakiler /usr/share/nano/*.nanorc
Milind

Thansk çok fazla!
VIX

7

Bu, varsayılan olarak dahil edilen tüm sözdizimi vurgulama eklentilerini ve / usr / share / nano'ya eklediklerinizi içermelidir:

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

Veya, / etc / nanorc dosyasını düzenleyin ve içeriğinde yer alan bilgileri rahatsız edip edemediğinizi görün.

Bu, .nanorc dosyasındaki joker karakterleri kabul etmeyi reddeden bir nano sürümüne sahipseniz çalışır.

Her yeni bir ek .nanorc color config eklediğinizde bu satırı çalıştırın.



2

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

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

Mutlu kodlama!


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
Bunun neden daha yeni kullanıcılar için faydalı bir cevap olduğunu açıklarsanız, yararlı olacaktır. Komut ne yapıyor? Ne değişiyor? Bir komut satırı çalıştırmak için rastgele önermek yararlı değildir.
Kevin Bowen

1

Nano için en eksiksiz ve en güncel sözdizimi yükselticileri burada tutulmaktadır .

Kullanıcınıza yönelik tüm vurgulayıcıları yüklemek için aşağıdakileri çalıştırın:

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

Çözüm iyi, ama bunun için başka bir klasör kullanırdım git clone. /tmpKlasörün içeriği , her sistem başlangıcında silinecek ve bu nedenle hiçbir zaman çalışamazsınız git pull.
AB

Dil etiketiniz yanlış. jsdeğil bashveya shell-scriptve ben kelimenin arkasındaki bağlantıyı yerleştirdim here. Sorun nerede?
AB,

1
@ AB make installtüm sözdizimi dosyalarının ait oldukları güvenli bir yere kopyalandığından beri bu klasörün kaybolup gitmediği önemli değildir ~/.nano/syntax.
Pablo,

1

Yukarıdaki talimatları uyguladıktan sonra sorun yaşayanlar için, aynı tanımların olup olmadığını kontrol edin . Bunlar, tüm dosyalar için tüm sözdizimi vurgulamasını devre dışı bırakacaktır . Bir dosya ekledikten sonra buna rastladım ve zaten aynı bir bölüme sahip olduğumu anlamadım , yani: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

Burada js için vurgulama sözdizimi bulundu .

Adresindeki kullanıcı dosyama ekledim ~/.nanorc

Ancak ekleyebileceğim bir dosyayı almak için ilk önce /usr/share/nano/nanorc.nanorcyerel klasörüme kopyalamak zorunda kaldım ~/.nanorc.


0

Yanlışlıkla Alt+ klavye kısayolunu kullanarak vurgulamayı devre dışı bıraktım Y. Aynı klavye kısayolu ile tekrar açılabilir.


0

Biliyorum eski bir konu ama çözümüm yardımcı olabilir

/ etc / nanorc konumundaki dosyayı düzenle

243 satırından lot içerdiği dosyaları bulabilirsiniz. İhtiyacınız olanları kaydedin, kaydedin ve bitirin.

## 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'yu güncelleyip güncellemediğinizden emin değilim, bu değişiklikler yok olacak.


-1

Bu senaryoyu nano'ya renk eklemek için yaptım: Ama elbette bunun çalışması için / usr / share / nano içindeki renk kodlarına sahip olmalısınız. Hata varsa: sadece ~ / .nanorc dosyasını el ile 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

Hemen hemen aynı şekilde askubuntu.com/a/865425/158442 ve askubuntu.com/a/538674/158442 yapmak
muru
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.