久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔
站長百科 | 數(shù)字化技能提升教程 數(shù)字化時代生存寶典
首頁
數(shù)字化百科
電子書
建站程序
開發(fā)
服務(wù)器
辦公軟件
開發(fā)教程
服務(wù)器教程
軟件使用教程
運(yùn)營教程
熱門電子書
WordPress教程
寶塔面板教程
CSS教程
Shopify教程
導(dǎo)航
程序頻道
推廣頻道
網(wǎng)賺頻道
人物頻道
網(wǎng)站程序
網(wǎng)頁制作
云計(jì)算
服務(wù)器
CMS
論壇
網(wǎng)店
虛擬主機(jī)
cPanel
網(wǎng)址導(dǎo)航
WIKI使用導(dǎo)航
WIKI首頁
最新資訊
網(wǎng)站程序
站長人物
頁面分類
使用幫助
編輯測試
創(chuàng)建條目
網(wǎng)站地圖
站長百科導(dǎo)航
站長百科
主機(jī)偵探
IDCtalk云說
跨境電商導(dǎo)航
WordPress啦
站長專題
網(wǎng)站推廣
網(wǎng)站程序
網(wǎng)站賺錢
虛擬主機(jī)
cPanel
網(wǎng)址導(dǎo)航專題
云計(jì)算
微博營銷
虛擬主機(jī)管理系統(tǒng)
開放平臺
WIKI程序與應(yīng)用
美國十大主機(jī)
編輯“
Emacs/在Emacs下用C/C++編程
”
人物百科
|
營銷百科
|
網(wǎng)賺百科
|
站長工具
|
網(wǎng)站程序
|
域名主機(jī)
|
互聯(lián)網(wǎng)公司
|
分類索引
Jiaomh
(
討論
|
貢獻(xiàn)
)
2010年11月3日 (三) 11:01的版本
(新頁面:
Emacs
本身的功能非常的強(qiáng)大。
程序員
有三種,一種是用
vi
的,一種是用emacs的,還有一種是其他。或許有些夸張,但也頗能體現(xiàn)出emacs...)
(差異) ←上一版本 |
最后版本
(
差異
) |
下一版本→
(
差異
)
跳轉(zhuǎn)至:
導(dǎo)航
、?
搜索
警告:您正在編輯的是本頁面的舊版本。
如果您發(fā)布該更改,該版本后的所有更改都會丟失。
警告:
您沒有登錄。如果您做出任意編輯,您的IP地址將會公開可見。如果您
登錄
或
創(chuàng)建
一個賬戶,您的編輯將歸屬于您的用戶名,且將享受其他好處。
反垃圾檢查。
不要
加入這個!
[[Emacs]]本身的功能非常的強(qiáng)大。[[程序員]]有三種,一種是用[[vi]]的,一種是用emacs的,還有一種是其他?;蛟S有些夸張,但也頗能體現(xiàn)出emacs在程序員中的地位。 ==概述== emacs最大的問題在于入門門檻較高。它看起來和多數(shù)人想象中的[[IDE]]相差甚遠(yuǎn),很多人看到emacs的第一眼就覺得它是個記事本(還是個非常難用的記事本),稍微好些的往往覺得emacs也就是個ultraEditor而已,真是暴殄天物了。 本例基本[[編程]]環(huán)境是: *Debian GNU/[[Linux]] sid [[操作系統(tǒng)]] *Gnome 2.10.0 桌面環(huán)境 *GUN Emacs 23.0.0.1 for debian *使用 Gnu tool chains(gcc,make,gdb等等) 后面的敘述都基于上述環(huán)境。另外,本文主要針對[[C]]/[[C++]]程序開發(fā),對其他語言有些也適用。 ==基本流程== 寫C++程序基本幾個步驟: *編輯[[代碼]] *編寫Makefile *編譯代碼,修改編譯錯誤 *調(diào)試代碼,修改邏輯錯誤 當(dāng)然,往往還需要閱讀別人的代碼。 根據(jù)上述步驟,本文主要針對以下幾個方面: *配置Emacs,建立便利的代碼編輯環(huán)境和Makefile編寫環(huán)境。 *在Emacs中編譯代碼,并修改編譯錯誤。 *在Emacs中配合GDB調(diào)試程序。 *利用cscope和ecb在emacs中閱讀代碼。 ==基本環(huán)境設(shè)置== ===編輯環(huán)境配置=== 要寫C++程序,當(dāng)然要用到cc-mode[[插件]]。CC-Mode原本是支持C語言的,但現(xiàn)在也能支持很多語言,比如 C++,[[Java]],[[Objective-C]],[[CORBA]],[[AWK]],[[Pike]]等等。CC-Mode是gnu-emacs的標(biāo)準(zhǔn)插件。如果您要求不高,那么默認(rèn)的配置或許就能滿足。CC-Mode的各種行為都可以自由地定制. 這里本例的.emacs文件中關(guān)于CC-Mode配置的部分,僅供參考: ;;;; CC-mode配置 http://cc-mode.sourceforge.net/ (require 'cc-mode) (c-set-offset 'inline-open 0) (c-set-offset 'friend '-) (c-set-offset 'substatement-open 0) <pre>;;;;本例的C/C++語言編輯策略 (defun my-c-mode-common-hook() (setq tab-width 4 indent-tabs-mode nil) ;;; hungry-delete and auto-newline (c-toggle-auto-hungry-state 1) ;;按鍵定義 (define-key c-mode-base-map [(control \`)] 'hs-toggle-hiding) (define-key c-mode-base-map [(return)] 'newline-and-indent) (define-key c-mode-base-map [(f7)] 'compile) (define-key c-mode-base-map [(meta \`)] 'c-indent-command) ;; (define-key c-mode-base-map [(tab)] 'hippie-expand) (define-key c-mode-base-map [(tab)] 'my-indent-or-complete) (define-key c-mode-base-map [(meta ?/)] 'semantic-ia-complete-symbol-menu)</pre> 注意一下,上面最后兩行是代碼自動補(bǔ)齊的快捷鍵。 <pre>;;預(yù)處理設(shè)置 (setq c-macro-shrink-window-flag t) (setq c-macro-preprocessor "cpp") (setq c-macro-cppflags " ") (setq c-macro-prompt-flag t) (setq hs-minor-mode t) (setq abbrev-mode t) ) (add-hook 'c-mode-common-hook 'my-c-mode-common-hook) ;;;;我的C++語言編輯策略 (defun my-c++-mode-hook() (setq tab-width 4 indent-tabs-mode nil) (c-set-style "stroustrup") ;; (define-key c++-mode-map [f3] 'replace-regexp) )</pre> ===自動補(bǔ)齊=== 自動補(bǔ)齊通常用的都是hippie-expand。不過有時候會覺得這個自動補(bǔ)齊“傻”了一點(diǎn),常會補(bǔ)齊出一些毫不相干的東西,因?yàn)閔ippie-expand是根據(jù)你敲過的詞和kill-ring等進(jìn)行判斷的,并不對程序語法進(jìn)行分析。 所以你還需要安裝一個代碼分析工具,然后把它加進(jìn)hippie-expand的擴(kuò)展策略里去。我們可以用semantic。 Semantic是CEDET 中的一個工具,CEDET是Collection of Emacs Development Environment Tools的縮寫,它包含了好幾個工具,都挺不錯的。 您可以在.emacs中對Semantic進(jìn)行配置,下面是本例的.emacs相關(guān)的配置,僅供參考: 導(dǎo)入cedet: (load-file "~/lib/emacs-lisp/cedet-1.0pre3/common/cedet.el") 配置Semantic的檢索范圍: (setq semanticdb-project-roots (list (expand-file-name "/"))) 自定義自動補(bǔ)齊命令,如果在單詞中間就補(bǔ)齊,否則就是tab。 <pre>(defun my-indent-or-complete () (interactive) (if (looking-at "\\>") (hippie-expand nil) (indent-for-tab-command)) ) (global-set-key [(control tab)] 'my-indent-or-complete)</pre> hippie的自動補(bǔ)齊策略,優(yōu)先調(diào)用了senator的分析結(jié)果: <pre>(autoload 'senator-try-expand-semantic "senator") (setq hippie-expand-try-functions-list '( senator-try-expand-semantic try-expand-dabbrev try-expand-dabbrev-visible try-expand-dabbrev-all-buffers try-expand-dabbrev-from-kill try-expand-list try-expand-list-all-buffers try-expand-line try-expand-line-all-buffers try-complete-file-name-partially try-complete-file-name try-expand-whole-kill ) )</pre> 注意一下前面CC-Mode配置中有這么兩行: (define-key c-mode-base-map [(tab)] 'my-indent-or-complete) define-key c-mode-base-map [(meta ?/)] 'semantic-ia-complete-symbol-menu) 這樣,我們在CC-Mode中就可以調(diào)用自定義的hippie補(bǔ)全了,快捷鍵是Tab。 另外還把快捷鍵“Alt + / ”綁定到了semantic-ia-complete-symbol-menu命令上,這是semantic的命令,它會根據(jù)分析結(jié)果彈出補(bǔ)齊的菜單,效果如下圖顯示: [[Thumbs_semantic-ia.jpg?]] CEDET中還有一個不錯的工具是speedbar,你可以用它在多個文件中快速切換。在本例的.emacs配置文件里,把speedbar關(guān)聯(lián)到了F5上: (global-set-key [(f5)] 'speedbar) 這樣用F5就可以調(diào)出speedbar,效果如下: [[Image:Thumbs speedbar.jpg]] ==編譯和調(diào)試程序== 按上面的配置,寫完程序和Makefile文件后,在Emacs源代碼窗口中按F7就可以進(jìn)行編譯。因?yàn)樵趍y-c-mode-common-hook()函數(shù)里,有這么一行: (define-key c-mode-base-map [(f7)] 'compile) 默認(rèn)情況下,emacs的compile命令是調(diào)用make -k,本例把它改成了make。你也可以把它改成其他的,比如gcc之類的。改下面的“make”就行了。 '(compile-command "make") Emacs會劃分一個窗格顯示編譯的消息,在編譯結(jié)束后,emacs會自動將編譯器的輸出和程序關(guān)聯(lián)起來,告訴你第幾行的[[程序]]有問題。直接在出錯的行號上按Enter,就可以跳轉(zhuǎn)到相應(yīng)文件的相應(yīng)行。其實(shí)我通常都是用鼠標(biāo)中鍵去點(diǎn)出錯行號:) 搞定了編譯錯誤后,接著要和邏輯錯誤斗爭了。其實(shí)對簡單的程序來說,把中間結(jié)果打印到終端是最簡單好用的調(diào)試辦法:)不過稍微復(fù)雜點(diǎn)的程序就會暈菜了,這時我們就需要拿gdb跟蹤程序流程了。 你用下面的命令就可以啟動gdb了。 M-x gdb gdb的命令就不在這里說了,它的文檔幾乎到處都是。emacs把gdb的命令和快捷鍵做了綁定,對于常用的命令,還是輸入快捷鍵比較方便。比如,C-c C-n是Next line,C-c C-s是step in,其實(shí)用的最多的快捷鍵也就是這兩個。 下面是本例的gdb效果圖: [[Image:Thumbs gdb.jpg]] ==閱讀代碼== 在emacs下讀代碼通常有三種工具,最簡單的是etags,最復(fù)雜的是ecb(emacs code browser),位于中間的是cscope。 etags和ctags一樣,只不過前者是用于emacs的,后者是用于vi的。 使用tags之前要先對[[源代碼]]分析建立tags文件,在代碼所在目錄中運(yùn)行:etags -R 即可。 ==參考來源== [http://emacser.com/emacs-cpp-dev.htm 參考來源] {{Emacs}} [[category:Emacs|Z]]
摘要:
請注意,您對站長百科的所有貢獻(xiàn)都可能被其他貢獻(xiàn)者編輯,修改或刪除。如果您不希望您的文字被任意修改和再散布,請不要提交。
您同時也要向我們保證您所提交的內(nèi)容是您自己所作,或得自一個不受版權(quán)保護(hù)或相似自由的來源(參閱
Wordpress-mediawiki:版權(quán)
的細(xì)節(jié))。
未經(jīng)許可,請勿提交受版權(quán)保護(hù)的作品!
取消
編輯幫助
(在新窗口中打開)
本頁使用的模板:
模板:Emacs
(
編輯
)
取自“
http://www.kktzf.com.cn/wiki/Emacs/在Emacs下用C/C%2B%2B編程
”