Re: [emac] 近乎無用的shell script語法高亮...orz
看板Editor (編輯器(vim/emacs))作者coldnew (夜影)時間12年前 (2012/02/13 02:27)推噓5(5推 0噓 9→)留言14則, 1人參與討論串2/2 (看更多)
※ 引述《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
推
02/13 22:53, , 1F
02/13 22:53, 1F
→
02/13 22:53, , 2F
02/13 22:53, 2F
→
02/13 22:53, , 3F
02/13 22:53, 3F
少複製一個),已補上
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)
推
02/15 00:13, , 4F
02/15 00:13, 4F
→
02/15 00:15, , 5F
02/15 00:15, 5F
→
02/15 00:15, , 6F
02/15 00:15, 6F
→
02/15 00:17, , 7F
02/15 00:17, 7F
→
02/15 00:17, , 8F
02/15 00:17, 8F
會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)
推
02/15 17:21, , 9F
02/15 17:21, 9F
→
02/15 17:24, , 10F
02/15 17:24, 10F
→
02/15 17:25, , 11F
02/15 17:25, 11F
這就是我說的bug......
→
02/15 17:26, , 12F
02/15 17:26, 12F
推
02/15 17:28, , 13F
02/15 17:28, 13F
等我有空在寫成plugin吧 :)
※ 編輯: coldnew 來自: 120.126.41.45 (02/17 16:10)
推
02/17 19:20, , 14F
02/17 19:20, 14F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Editor 近期熱門文章
PTT數位生活區 即時熱門文章