2015-09-04 29 views

回答

4

在LYSE中這樣做的方式是使用名爲highlight.js的JavaScript插件,所以LYSE實際上並沒有這樣做,您的瀏覽器是。對於highlight.js,大多數主流(ish)語言都有插件/模式。如果網站是你感興趣的,這是一種方法(除了當用戶不能使用JS或關閉它時)。

這實際上並不是shell被突出顯示,它在瀏覽器以外的任何地方也沒有用。我一直在尋找一種更通用的方法,最初通過在HTML和XML文檔中插入靜態格式(將其提供給文檔,並且每當檢測到/標記時都會以某種方式突出顯示Erlang語法)。我還沒有一個像樣的項目發佈這個(我的優先級列表atm非常低),但我可以點你在一些固體的靈感方向:來源wx:demo

特別注意功能demo:code_area/1。您將看到如何使用標記化例程爲wx:demo應用程序中的源代碼文本顯示區域提供高亮提示。這可以爲構建您自己的源高亮/顯示實用程序提供堅實的基礎。 (我認爲這不是不可能的,考慮到現在每個普通使用的終端都對ANSI顏色代碼做出了正確的響應,爲外殼寫了一個插件,直接突出顯示終端輸入 - 並不是說​​這個功能在一會兒。)

編輯(由弗雷德魔術奇蹟狗)

上的ANSI顏色代碼的主題,評論提示,如果這是你以後有什麼實際上,他們很容易實現的加上你在終端內返回的任何字符串值。終端逃脫他們,所以你不會看到字符,但會執行代碼所代表的任何操作。沒有終止(它不像一個標記標籤包含文本),並且通常沒有「返回到默認顏色」的概念(儘管有一個gajillion-jillion擴展到telnet和終端模式,使得各種無意義的東西像這個)。

基本着色的一個例子是在ErlMUD的V0.1代碼telcon:greet/0telcon:sys_help/0功能(連同其他地方擺 - 着色遊戲是有點事)。你看到的每個顏色都有一個預先構建的列表,但這可以用任何方式表示,以便將這些值置於字符串的前面。 (我碰巧記得代碼值序列,但不記得組成這些代碼的字符;下一個版本的代碼代表這個有點不同)。這是a list of ANSI color codesa discussion about colorizing the shell的鏈接。玩耍!它的書呆子樂趣,1980年的風格!

哦,我差點忘了......如果你真的下井兔子洞不傻小孩的玩具一樣ncurses來幫助你,看看termcap

+1

其實,我知道確實iex使用ANSI顏色代碼,我很確定kjell也是如此。這個問題並不清楚,但我認爲他在詢問終端內的顏色。 –

+0

@FredtheMagicWonderDog他對LYSE的引用讓我覺得不然 - 因爲LYSE是一本書,而不是終端環境。我將通過指向我在ErlMUD中使用的ANSI代碼的鏈接來更新終端/ telnet的顏色。 – zxq9

2

我不知道kjell是否是Erl的穩定替代品,但它不適用於IEx。

至於顏色是如何完成的;據我所知,它完成了ANSI Escape Sequences