Làm cách nào để bật tính năng tô sáng cú pháp trong nano?


184

Nano có thể làm nổi bật cú pháp như gedit và vim không? Làm thế nào tôi có thể kích hoạt nó? Tôi cần ít nhất bash và python cú pháp nổi bật.


1
Cảm ơn rất nhiều về các tệp cú pháp trong repo git, tôi sử dụng nó trên tất cả các máy chủ của mình bây giờ ... theo kịp công việc tốt !!!

1
@TheGene Bình luận và cảm ơn về câu trả lời. Các repo được ghi có cho anh ta, không phải tôi, người đặt câu hỏi.
Oxwivi

Câu trả lời:


175

Trình soạn thảo nano cung cấp tô sáng cú pháp cho một vài ngôn ngữ và tập lệnh. Thủ tục thanh toán/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

Liên kết chúng với tệp cấu hình nano của người dùng của bạn ~/.nanorcvới một cái gì đó tương tự với dòng này:

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

Bây giờ, tô sáng cú pháp được bật trong nano cho bất kỳ tệp nào bạn đã liên kết (Bạn cũng có thể liên kết nhiều tệp)

ảnh chụp màn hình đánh dấu cú pháp

Lưu ý: Đôi khi bạn có thể nhận được segmentation faultsau khi bạn đã chỉnh sửa ~/.nanorctệp của mình . Nếu xảy ra lỗi như vậy, việc bỏ đặt biến môi trường LANG sẽ giúp. Bạn có thể bỏ đặt nó unset LANGtrong thiết bị đầu cuối. (Giải pháp thu được từ đây )

Ngoài ra còn có các giải pháp khác nếu bạn không hài lòng với việc làm nổi bật bash của bạn. Một ví dụ như vậy có thể được tìm thấy ở đây

Bạn cũng có thể ghi include /usr/share/nano/*vào tệp ~ / .nanorc để cho phép tất cả các ngôn ngữ được tô sáng nếu phiên bản nano của bạn hỗ trợ.


1
Những dòng này không bị thiếu trong /etc/nanorc- các cài đặt toàn cầu có bị ghi đè ~/.nanorckhông? Làm thế nào để tôi vô hiệu hóa .nanorc?
Oxwivi

13
Đợi đã, tôi thậm chí không có một ~/.nanorctập tin.
Oxwivi

1
Đợi, đợi đã, làm thế nào đến cài đặt toàn cầu với tất cả các includedòng không bật cú pháp nổi bật mặc dù tôi không có .nanorc?
Oxwivi

9
ls -1 /usr/share/nano/*.nanorc | sed 's/^\//include \//' >> ~/.nanorcnối tất cả chúng vào tập tin .nanorc của bạn hoặc tạo nó nếu nó không tồn tại.
Thom Porter

9
include /usr/share/nano/*không hoạt động
Jarek Jakubowski

74

Có, bạn có thể, tuy nhiên các định nghĩa cú pháp mặc định khá nghèo nàn và không đầy đủ. Tôi đang duy trì một bộ định nghĩa chính xác hơn ở đây , cho bất kỳ ai thấy chúng hữu ích.

Để cài đặt, chạy:

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

Thêm các dòng này vào ~ / .nanorc

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

Chỉ định những màu bạn muốn tô màu và bạn sẽ phải điều chỉnh các màu này theo sở thích của mình. Các ALL.nanorctính năng mô tả cho tất cả các tệp chưa được phân loại. Đây là những công cụ bạn cần để bắt đầu, không phải là sản phẩm được đánh bóng cuối cùng.


6
Cảm ơn vì đã giữ những định nghĩa cú pháp hay trong GitHub.
Rubens Mariuzzo

3
Các tệp * .js của tôi không hoạt động ... đã chỉnh sửa / etc / nanorc để xóa mọi cú pháp khác bao gồm theo Câu hỏi thường gặp github.com/nanorc/ . ♥ Nano ♥ nanorc
Carlton

5
Tôi vừa cài đặt defs cú pháp của bạn trên Mac OSX. Chỉ có một điều tôi lưu ý, đó là màu đen của khung mở trong con trăn bị lạc trên nền đen của thiết bị đầu cuối của tôi
Tom Busby

5
Trên thực tế có một vấn đề, một số văn bản màu là màu đen! Nếu nền thiết bị đầu cuối của chúng tôi là màu đen, những từ này là vô hình!
dukevin

9
Bạn có một liên kết chết
not2qubit 17/10/18

52

Tôi đã sử dụng lệnh này để nhanh chóng kích hoạt tất cả các ngôn ngữ có sẵn.

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

Như đã đề cập trong các câu trả lời khác, /usr/share/nano/chứa các định nghĩa cho các ngôn ngữ khác nhau.

$ 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

Cũng được đề cập, để bật tính năng tô sáng cho một ngôn ngữ, bạn thêm includevà đường dẫn đến định nghĩa ngôn ngữ bạn muốn bật vào ~/.nanorctệp của mình . Vì vậy, ví dụ, để kích hoạt C / C ++, bạn sẽ thêm dòng này.

include /usr/share/nano/c.nanorc

Các findlệnh tìm kiếm cho các tập tin hoặc thư mục trong thư mục chỉ định.

  • Các -inamelá cờ nói với nó để chỉ tìm kiếm file với một tên kết thúc bằng .nanorc.
  • Các -execcờ xác định một lệnh để thực thi trên mỗi tệp được tìm thấy.
  • Được {}thay thế bằng tên tập tin.
  • \;được sử dụng để biểu thị sự kết thúc của lệnh để thực thi findlệnh.
  • Cuối cùng, >> ~/.nanorclàm cho đầu ra được gắn vào ~/.nanorctệp của bạn .

lời khuyên và lời giải thích tuyệt vời, cảm ơn rất nhiều người đàn ông! ;)
mã daveon

Cảm ơn và không có vẻ như bạn cần cờ iname. Sau đây dường như cũng hoạt động tìm /usr/share/nano/*.nanorc
Milind

Rất nhiều!
VIX

7

Điều này sẽ bao gồm tất cả các plugin tô sáng cú pháp được bao gồm theo mặc định và bất kỳ plugin nào bạn thêm vào / usr / share / nano:

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

Hoặc, chỉnh sửa / etc / nanorc và xem nếu bạn có thể bỏ ghi chú bao gồm.

Điều này hoạt động nếu bạn có một phiên bản nano từ chối chấp nhận các ký tự đại diện trong tệp .nanorc.

Chỉ cần chạy dòng này mỗi khi bạn thêm một cấu hình màu .nanorc bổ sung.



2

Bạn có thể sử dụng điều này để bao gồm tất cả: (thêm tệp này vào ~ / tệp nanorc)

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

Chúc mừng mã hóa!


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
Sẽ rất hữu ích nếu bạn có thể giải thích tại sao đây là câu trả lời hữu ích cho người dùng mới hơn. Lệnh đang làm gì? Nó thay đổi cái gì? Ngẫu nhiên đề xuất để chạy một dòng lệnh là không hữu ích.
Kevin Bowen

1

Các hilighters cú pháp đầy đủ và cập nhật nhất cho nano được duy trì ở đây .

Để cài đặt tất cả các công cụ tô sáng cho người dùng của bạn, chỉ cần chạy:

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

Giải pháp là tốt, nhưng tôi sẽ sử dụng một thư mục khác cho git clone. Nội dung otf /tmpthư mục sẽ bị xóa trên mỗi lần khởi động hệ thống và do đó bạn không bao giờ có thể chạy a git pull.
AB

Thẻ ngôn ngữ của bạn sai. jskhông phải là bashhay shell-scriptvà tôi đã đặt liên kết phía sau chữ here. Vấn đề ở đâu?
AB

1
@AB không thành vấn đề nếu thư mục đó biến mất kể từ khi make installtất cả các tệp cú pháp được sao chép vào nơi an toàn nơi chúng thuộc về : ~/.nano/syntax.
Pablo A

1

Đối với những người gặp rắc rối sau khi làm theo các hướng dẫn ở trên, cũng kiểm tra xem bạn có định nghĩa trùng lặp không . Chúng sẽ vô hiệu hóa tất cả các cú pháp tô sáng cho tất cả các tệp . Tôi đã gặp phải điều này sau khi thêm một nanorc.nanorctập tin và không nhận ra rằng tôi ~/.nanorcđã có một phần giống hệt nhau, tức là:

## 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

Tôi tìm thấy cú pháp tô sáng cho js ở đây .

Tôi đã thêm nó vào tập tin người dùng của tôi tại ~/.nanorc

Tuy nhiên, để có được một tập tin mà tôi có thể nối vào, trước tiên tôi phải sao chép từ /usr/share/nano/nanorc.nanorcthư mục cục bộ của mình trước ~/.nanorc.


0

Tôi vô tình tắt tính năng tô sáng bằng phím tắt Alt+ Y. Nó có thể được bật lại với cùng một phím tắt.


0

Tôi biết đó là một chủ đề cũ nhưng có thể giải pháp của tôi có thể giúp

chỉnh sửa tập tin tại / etc / nanorc

Từ dòng 243 bạn có thể tìm thấy rất nhiều tập tin bao gồm. Đơn giản chỉ cần bỏ qua những cái bạn cần, lưu và thực hiện.

## 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"

Tôi không chắc nếu bạn cập nhật nano thì những thay đổi này sẽ biến mất.


-1

Tôi chỉ tạo tập lệnh này để thêm màu vào nano: Nhưng tất nhiên bạn phải có mã màu trong / usr / share / nano để nó hoạt động. Nếu có lỗi: chỉ cần chỉnh sửa thủ công tệp ~ / .nanorc và xóa các dòng đưa ra lỗi.

#!/bin/bash

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.