2011-01-20 40 views
3

我在服務器上通過ssh使用nano;在該系統上,nano默認情況下沒有啓用語法顏色。所以我複製這些文件nanosyntax替代,也見@CraigBarnes' answer)在服務器上,並設立~/.nanorc爲:服務器上的Nano忽略某些語法着色

include "~/nanosyntax/syntax-nanorc/php.nanorc" 
include "~/nanosyntax/syntax-nanorc/php2.nanorc" 
include "~/nanosyntax/syntax-nanorc/sh.nanorc" 
include "~/nanosyntax/syntax-nanorc/python.nanorc" 
include "~/nanosyntax/syntax-nanorc/html.nanorc" 
include "~/nanosyntax/syntax-nanorc/perl.nanorc" 
include "~/nanosyntax/syntax-nanorc/ruby.nanorc" 
include "~/nanosyntax/syntax-nanorc/js.nanorc" 

現在,這是一回事;如果我只是打電話:

nano somefile.php 

...否php語法着色完成。如果我試圖強制:

nano --syntax=php somefile.php 

...仍然沒有語法着色(顯示爲純文本)。但是,如果我這樣做:

nano ~/.nanorc 

...然後我得到語法着色(相當於.nanorc類型文件)?!

顯然,語法着色是這樣的(即shell和nano都可以) - 除了某些語言似乎被忽略,例如在這種情況下,php?!

那麼,有沒有人知道發生了什麼 - 我怎樣才能得到語法着色php文件?

謝謝,
乾杯!

+1

你確定這些文件是在正確的目錄並且可以被納米進程讀取? – 2011-01-20 07:59:18

+0

感謝評論@Noufal Ibrahim - 據我所見,所有這些文件都具有`rrr`屬性,應該沒問題;此外,`nanorc`的着色將顯然在`〜/ nanosyntax/syntax-nanorc/nanorc.nanorc`中 - 而且看起來似乎有效。 – sdaau 2011-01-20 11:50:26

回答

5

我只是碰到了同樣的問題,我逛了一下襬弄包括查找錯誤。出人意料的是,事實證明,改變夾雜物順序固定的問題:

這工作:

include "~/.nano/nanorc.nanorc" 
include "~/.nano/sh.nanorc" 
# more includes... 

這不突出SH文件:

include "~/.nano/sh.nanorc" 
include "~/.nano/nanorc.nanorc" 
# more includes... 

所以我想它可能是一個錯誤(在nano 2.2.2;在nano 2.1.7中運行良好)

+0

謝謝你,@ Pumbaa80!乾杯! – sdaau 2011-07-13 07:49:03

0

嗯......好吧,似乎在我使用的服務器上有升級;最初,nano默認沒有語法着色,這就是爲什麼我使用我自己的單獨~/.nanorc

但是,現在,在升級的服務器上,nano似乎與默認的PHP語法着色一起工作 - 而我自己單獨的~/.nanorc似乎有衝突;因爲,一旦我評論私人~/.nanorc(與#)中的所有條目,PHP語法着色又回來了!

Wh ath???! :)
乾杯!


編輯:只是添加幾個說明有關納米:

如上所述,語法着色被強制與--syntax開關;看看哪些語法可供選擇:

grep 'include' /etc/nanorc |  # find lines containing 'include' in nanorc 
    grep -v '^#' |     # don't process lines that start with '#' 
    sed 's_.*/\(.*\)\.nanorc"_\1_' # extract plain filenames 

這個命令的結果是這樣的:

nanorc 
c 
css 
debian 
gentoo 
html 
... 

那麼給力 「nanorc」 語法着色,可以使用:

nano --syntax=nanorc /usr/share/nano/nanorc.nanorc 

..或者強迫「的bash」 shell腳本語法着色(與bashrc特別有用)是:

nano --syntax=sh ~/.bashrc 
1

Google Code上的那些「nanosyntax」文件幾乎與默認使用nano的文件差不多。

nano的高亮引擎比一些與嵌套上下文(例如GtkSourceView)更基本的,但你沒有滿足於蹩腳的高亮:

https://github.com/craigbarnes/nanorc