糊塗兄 wrote:
Verilog 與 VHDL highlight on Mac…
試試這個:Carbon Emacs Package, 已內含 HDL Syntax highlight.
套件:Mac's Verilog Mode for emacs
據聞有一套Aquamacs Emacs 也不錯,還沒用過。
總算看到一個Emacs的同好了!
建議大家,有時間的話,用力給它學習一下(真的要很用力)。
這是一把萬能瑞士刀,一隻變形金剛,由一位絕世天才發想孕育,再由一群天才合力完成的軟體奇蹟,其他程式編輯器,也許VI除外,遇到它都變成童玩。
sympholin wrote:
也許VI除外,遇到它都變成童玩...(恕刪)
小弟工作上除了 coding 之外有將近 70% 的時間其實是在
trace 別人的 source code。自從轉到 Source Insight 之
後已經十幾年沒回到 emacs 了,請問一下現在的 emacs
有類似 Source Insight 的幾項功能嗎?
1. Context window: 滑鼠選到那個 symbol 可以立刻
顯示該 symbol 的 declaration 或是 instance。這
項功能可以加速瀏覽的速度,沒有這項功能想要靠
search/grep 在一個晚上抓出幾萬行,上百個 modules
的主架構,有時候還真的難如登天。
2. Navigation: 自動記錄 source code browsing 的
history,可以在諸多的 modules 快速的 forward/
backward browsing,把腦袋全力用在快速記憶
source code 上面,而不必去記些繁瑣的東西。
3. Project wise auto-completement: 自動填選 symbol
這在使用他人的 SDK 時相當好用,避免了不必要的 typo。
尤其 source code 有混用到多個 documentation 很少的
open source libraries 時,真的是很甜蜜的功能。
4. Symbol search: 這跟一般的 full context search 不一
樣,symbol search 快了好幾倍,尤其是有上千個檔案的
source tree,grep 只能在一邊喘。grep 很好,不過也有
捉襟見肘的時刻。
Eclipse 也很好用,上面四個功能上也幾乎快要 100% 跟上
Source Insight,但以速度/穩定度上來說,Eclipse 還是輸
一截。不過 Eclipse 的 plug-in 功能真的很不錯,像是整合
lint plug-in 等 static analysis 或是 cvs/svn client 等等
真的很強。jEdit 也不比 UltraEdit 差,甚至覺得 jEdit 就夠
幹掉 UltraEdit 了。其他還有免費的 NEdit,Editra,
NetBeans,Komodo Edit 等等,也都各有各的優點。
上面四個是我覺得 Source Insight 很要命的功能,之所以有
無可替代的重要性,是因為這幾個功能組合使用時,可以省去
寫筆記助憶而節省相當多的時間,這些時間省下來養肝還滿重
要的!Source Insight 麻煩的是只能跑在 Windows 下,
Linux/Mac/Solaris 是可以透過 VirtualBox+XP 或是 Wine
來解決,但 emacs 畢竟跨平台。如果只是用來打打字,純
editor 功能的話,我覺得 line editor 都很好用了,有時候還
有點受不了 emacs/vi 反應太慢了呢。
請問以上功能 emacs 有現成的 solution 可以替代嗎?
有的話,我也要換回 emacs 了。。。感謝回覆囉!
Lucose wrote:
自從轉到 Source Insight 之
後已經十幾年沒回到 emacs 了,請問一下現在的 emacs
有類似 Source Insight 的幾項功能嗎?
挖嘞,馬上被吐嘈了。
您說的這幾個功能,我都沒有在Emacs上用過,也就是說,標準內建的c/c++模組沒有這些功能。auto completion印象中是有package,我沒用過。symbol browsing 好像SpeedBar有支援,Emacs內建的只有symbol locating (跳到有用到某symbol的各個程式行),而且要先用etags建立symbol表(但是,我覺得用"Alt-."在源碼視窗裡跳來跳去這種方式超方便的)。
這幾個功能看來是不用配合compiler,librarian和debugger,這樣的話,靠Emacs 內建的parser 配合Lisp,應該不難做到,甚至已經有現成的package,只是我不知道罷了。Emacs Lisp 函式庫和Plug-in太多了,我也只是額外裝了些自己需要的!
我寫程式都是用ecb (Emacs Code Browswer,Emacs的一個IDE,Emacs視窗會變得像一般IDE那麼花俏)。你用Emacs打開一個source檔,它就會從這個檔把所有相關的include檔抓進來parse,在邊框的小pane裡列出這些include檔和這個source檔所指涉到所有的symbol(會分類),點那個symbol就會叫出相應的程式行。(ecb 倒是有browse history 的功能,配合symbol locating 就很順囉!)
我是搞embedded的,整個OS加上上層的app. 也不過上百個source 檔,ecb 加上 etags 就大致夠了,還不夠的話,就靠mc裡的search囉。
對很多人來說,其實這樣也已經很夠用了。就算是一整個Linux OS,不需要建任何project檔或make file,就只是隨便抓出一隻driver的源碼檔,也能很快就讓你一窺全貌。
總歸來說,symbol 查找的功能只是軟體撰寫工具的一環,我會把Emacs捧到那麼高,在於它整合了其他各種相關的工具,比如說sftp/ftp/samba等遠端檔案系統,terminal, diff, patch, version control 等等各種獨立卻相關的工具,又能支援幾乎是太陽底下所有各種程式語言。
我的專案工作用的是一套一、二萬美金的MISP 開發工具(Linux版的,就只一張光碟片,限單人單機使用)。賣這種價錢,它當然有各種很強很花俏的功能,但我試了一段時間,還是寧願回到界面醜醜的Emacs,這套幾十萬的軟體就只用到它的project editor和compiler。
(但我是有資格在這裡發言的,因為我是用VMware Fustion跑Kubuntu。我喜歡Linux,但實在受夠了它不太可靠的硬體支援度,Mac+OS X混搭Linux是宇宙無敵的金剛合體。)
內文搜尋

X