看板 Editor 關於我們 聯絡資訊
※ 引述《kuan (/dev/zero)》之銘言: : Emacs剛學不久,昨天想試著用Emacs來寫Shell Script時發現一件很蛋疼的事:Emacs23雖 : 然有內建Shell Script的語法高亮(M-x shell-script-mode),但真正一用發現簡直是殘廢 : ,一堆很常用的程式如ls、mkdir、rm、mv、cp都認不出來...: : http://imgur.com/eLbDM : ...它只認識cd跟echo啊(好像是因為這是linux內建指令的關係)orz : Google過了,可是找不到有人問這個問題。 : 之前我都是用Kate寫Script,語法高亮支援就很完整。 : 請問有什麼方法能更好地支援Shell Script嗎? : 附上Kate的效果: : http://imgur.com/xjJNv 看了一下似乎真的沒有 那我們來寫一個簡單的版本吧 (defun font-lock-system-command (&optional limit) "" (and (search-forward-regexp "\\<[a-zA-Z\\-]+\\>" limit t) (executable-find (buffer-substring-no-properties (car (bounds-of-thing-at-point 'word)) (cdr (bounds-of-thing-at-point 'word))) ))) (font-lock-add-keywords 'sh-mode '((font-lock-system-command . font-lock-type-face))) ^ | 改我可以換顏色 註1: 目前這個版本只是「堪用」... 還有很多bug沒處理 修改 font-lock-type-face 成你想要的face -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.126.41.45
kuan:感謝!請問font-lock-type-face這是什麼意思?其實現在還是沒 02/13 22:53
kuan:辦法 02/13 22:53
kuan:使用。另外,最結尾好像少了一個) 02/13 22:53
少複製一個),已補上 emacs 內建許多 font-lock-*face,這些是控制顏色的部份 比如function的名稱,語法高亮控制顏色的就是 font-lock-function-face這個變數 如果你是用 emacs-23 以下的版本,內建顏色常用的改法是改 color-theme 自從emacs24之後,已經不需要color-theme這個package 使用者可以用 (deftheme theme-name.... 來製作自己的顏色配置 或是你可以自行定義 face (defface font-lock-system-command-face '((((class color)) (:foreground "seagreen2"))) "I am comment" :group 'font-lock-faces) 然後將上面的 (font-lock-add-keywords 'sh-mode '((font-lock-system-command . font-lock-type-face))) 改成 (font-lock-add-keywords 'sh-mode '((font-lock-system-command . 'font-lock-system-command-face))) ※ 編輯: coldnew 來自: 120.126.41.45 (02/14 00:10)
kuan:嗯...我是emacs 23,有裝color-theme。但我剛剛又試了一下, 02/15 00:13
kuan:還是無法生效的樣子...附上我的.emacs該部份: 02/15 00:15
kuan:http://paste.ubuntu.com/841867/ 02/15 00:15
kuan:(看來用emacs最好還是得學一點lisp/elisp,我只會改快速鍵而 02/15 00:17
kuan:已...orz) 02/15 00:17
會elisp很方便的,不會還是可以玩emacs,只是可能很多想實現的功能必須不段的 search看看有沒有人做過 my-fault, 要加上 ' ,看上面紫色的,已更正程式 至於為什麼,可以看一下 font-lock.el, 或是以下的link http://lists.gnu.org/archive/html/bug-gnu-emacs/2003-12/msg00191.html 已測試於emacs 23 on ubuntu 11.10 ※ 編輯: coldnew 來自: 120.126.41.45 (02/15 04:16)
kuan:可以了!感謝! 02/15 17:21
kuan:目前好像有點問題,要把輸入游標移到指令後面更動一下,顏色 02/15 17:24
kuan:才會改變;如果打開任何一個已有的script檔案還是看不到高亮 02/15 17:25
這就是我說的bug......
kuan:(一直提問真的很不好意思...orz) 02/15 17:26
kuan:但是已經能頂著用了,再次感謝~ 02/15 17:28
等我有空在寫成plugin吧 :) ※ 編輯: coldnew 來自: 120.126.41.45 (02/17 16:10)
kuan:(worship) 02/17 19:20