ฉันจะเปิดใช้งานการเน้นไวยากรณ์ในนาโนได้อย่างไร


184

นาโนสามารถเน้นไวยากรณ์เช่น gedit และ vim ได้หรือไม่? ฉันจะเปิดใช้งานได้อย่างไร ฉันต้องการไฮไลต์ไวยากรณ์ของ bash และ python เป็นอย่างน้อย


1
ขอบคุณมากสำหรับไฟล์ไวยากรณ์ใน git repo ฉันใช้สิ่งนี้กับเซิร์ฟเวอร์ทั้งหมดของฉันตอนนี้ ... ติดตามการทำงานที่ดี !!!

1
@ ความคิดเห็น TheGene และขอบคุณในคำตอบ repo นั้นให้เครดิตกับเขาไม่ใช่ฉันคนที่ถามคำถาม
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

ตอนนี้การเน้นไวยากรณ์ถูกเปิดใช้งานใน nano สำหรับไฟล์ใดก็ตามที่คุณเชื่อมโยง (คุณสามารถเชื่อมโยงหลายไฟล์ได้ด้วย)

สกรีนช็อตของการเน้นไวยากรณ์

หมายเหตุ: บางครั้งคุณอาจได้รับsegmentation faultหลังจากคุณแก้ไข~/.nanorcไฟล์ หากเกิดข้อผิดพลาดการยกเลิกการตั้ง ค่าตัวแปรสภาพแวดล้อมLANGจะช่วยได้ คุณสามารถยกเลิกการตั้งค่าด้วยunset LANGใน terminal (โซลูชันที่ได้รับจากที่นี่ )

นอกจากนี้ยังมีวิธีแก้ไขปัญหาอื่น ๆ หากคุณไม่พอใจกับการเน้นการทุบตี ตัวอย่างหนึ่งของการดังกล่าวสามารถพบได้ที่นี่

นอกจากนี้คุณยังสามารถเขียน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 ของคุณหรือสร้างมันหากไม่มีอยู่
Thom Porter

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
รูเบนส์ Mariuzzo

3
* ฉัน .js ไฟล์ไม่ได้ทำงาน ... แก้ไข / etc / nanorc เพื่อลบไวยากรณ์อื่น ๆ รวมถึงการเป็นต่อคำถามที่พบบ่อยgithub.com/nanorc/... ♥ Nano ♥ nanorc
คาร์ลตัน

5
ฉันเพิ่งติดตั้งไวยากรณ์ของคุณ defs บน Mac OSX มีเพียงสิ่งเดียวที่ฉันทราบซึ่งเป็นสีดำของวงเล็บเปิดในหลามจะหายไปกับพื้นหลังสีดำของอาคารของฉัน
Tom Busby

5
อันที่จริงมีปัญหาข้อความสีบางส่วนเป็นสีดำ! หากพื้นหลังเทอร์มินัลของเราเป็นสีดำคำเหล่านี้จะมองไม่เห็น!
dukevin

8
คุณมีลิ้งค์ที่ตายแล้ว
ไม่ใช่ 2qubit

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 และดูว่าคุณสามารถยกเลิกการใส่เครื่องหมายในช่อง

ใช้งานได้หากคุณมีรุ่นนาโนที่ปฏิเสธที่จะยอมรับอักขระตัวแทนในไฟล์. nanorc

เพียงเรียกใช้บรรทัดนี้ทุกครั้งที่คุณเพิ่มการกำหนดค่าสี. anorc เพิ่มเติม



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
มันจะมีประโยชน์ถ้าคุณสามารถอธิบายได้ว่าทำไมนี่เป็นคำตอบที่มีประโยชน์สำหรับผู้ใช้ใหม่ คำสั่งกำลังทำอะไร มันเปลี่ยนอะไร การแนะนำแบบสุ่มเพื่อเรียกใช้บรรทัดคำสั่งนั้นไม่มีประโยชน์
Kevin Bowen

1

ที่สมบูรณ์แบบที่สุดและทันสมัยปากกาไฮไลท์ไวยากรณ์สำหรับนาโนถูกเก็บรักษาไว้ที่นี่

วิธีติดตั้งปากกาเน้นข้อความทั้งหมดสำหรับผู้ใช้ของคุณเพียงแค่เรียกใช้:

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สำหรับ เนื้อหา OTF ที่โฟลเดอร์จะถูกลบออกในทุกระบบเริ่มต้นและดังนั้นคุณไม่สามารถเรียกใช้/tmp git pull
AB

แท็กภาษาของคุณผิด jsไม่ได้bashหรือและฉันได้วางการเชื่อมโยงที่อยู่เบื้องหลังคำว่าshell-script hereปัญหาอยู่ที่ไหน
AB

1
@AB มันไม่สำคัญว่าถ้าโฟลเดอร์ที่หายไปตั้งแต่เมื่อคุณไฟล์ทั้งหมดไวยากรณ์จะถูกคัดลอกไปยังสถานที่ปลอดภัยที่พวกเขาอยู่:make install ~/.nano/syntax
Pablo A

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

ฉันเพิ่งสร้างสคริปต์นี้เพื่อเพิ่มสีให้กับ nano: แต่แน่นอนคุณต้องมีรหัสสีใน / usr / share / nano เพื่อให้ใช้งานได้ หากมีข้อผิดพลาด: เพียงแก้ไขไฟล์ ~ / .nanorc ด้วยตนเองและลบบรรทัดที่แสดงข้อผิดพลาดออก

#!/bin/bash

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

สวยมากเช่นเดียวกับaskubuntu.com/a/865425/158442และaskubuntu.com/a/538674/158442ทำ
muru
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.