2013年2月9日 星期六

emacs中不使用ide的開發方式

這篇文章我曾經說過,emacs不太需要(成為)一個ide。但是它還是需要做一個ide能做的事吧?是的,這裏就要解釋一下這個概念。昨天我用4個終端機視窗維護一個dbus專案(項目?),眼睛差點沒掉出來了,剛好今天有時間來重整一下整個開發流程。一個比較像樣的ide經常會把畫面切成4個子窗,左上顯示專案的成員或所在的目錄,左下顯示目前檔案的函數或物件,右上顯示目前編輯中的檔案,下方則有訊息視窗。工具列則有一些按鈕提供快速啟動某些命令的方式,如編譯、除錯等, 對應到快速鍵通常是F5、F9等。(我對gdb還沒摸熟,所以先跳過這段。) emacs的準ide解決方案cedet或著說是ecb在處理視窗上的方式是固定的,可以看看 http://ecb.sourceforge.net/docs/The-other-window.html

昨天開的終端機視窗有4個,一個是dbus 的被呼叫端gtk程式啟動用,因為要即時觀察它的log,必需用terminal啟動並提供適當的參數;一個是 dbus 的呼叫端的python腳本啟動用,一樣因為要即時觀察它的log,必需用terminal啟動並提供適當的參數;一個是編譯gtk程式要開的視窗,單光的下達make; make install;第四個留著下達一般指令,git的管理等等;當然還開著一個emacs作程式的修改,一個firefox上網查資料。以gnome目前的桌面管理來說,這樣的配置簡直就是災難一場,我曾經一度想把傳說中的cedet裝上去了,不過後來還是忍住。

解決方案是配合shell mode,請參考以下文章︰

Learning emacs part 4: buffers, windows, and frames « Blasphemous Bits: 視窗切換原理

EmacsWiki: Winner Mode: 視窗組態的回復

當 Shell 遇見 Emacs -- 大話 Emacs Shell Mode 另外教了些shell的技巧

當 Shell 遇見 Emacs -- 大話 Emacs Shell Mode,第 2 部分 這比較不重要

大話 Emacs Shell Mode 第 3 部分 視窗的旋轉,或者應該說是buffer的旋轉…非常高段的技巧

EmacsWiki: David Young: 上三篇文章作者在emacswiki的主頁,將rotate(旋轉window)及roll(旋轉buffer)作了區分


版面-Emacs编辑器(Emacs) 主题:[原创]让窗格旋转起来附圖非常有說明力,看起來就跟商品化的ide一樣

其實看完第一篇其實你就己經知道怎麼在emacs裏面切出四個視窗來了,以下分開發與測試兩種組態來看。

開發期


左上放著主目錄視窗,可以進行make或git;左下放cscope;右上放程式原碼,右下放另一個程式原碼或文件。

測試期


左上放著主目錄視窗,可以進行make或git;左下放gdb(測試中);右上放程式a的終端機,右下放另一個程式的終端機。

artist mode


http://www.cinsk.org/emacs/emacs-artist.html

http://emacser.com/artist-mode.htm

我猜ptt上有些ascii arts是這樣子畫出來的…真的很有才…


圖片來源 https://nsaunders.files.wordpress.com/2009/11/emacs23_rails.png

沒有留言:

張貼留言