當(dāng)前位置:
首頁(yè) >
【转】Emacs -- 自动补齐
發(fā)布時(shí)間:2025/3/15
53
豆豆
生活随笔
收集整理的這篇文章主要介紹了
【转】Emacs -- 自动补齐
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. Emacs 自帶的hippie-expand (參考的是王垠的)
hippie-expand是 Emacs 自帶的功能,
把M-/ 綁定到 hippie-expand,在.emacs文件中加入
;;綁定按鍵
(global-set-key [(meta ?/)] 'hippie-expand)
hippie-expand 的補(bǔ)全方式。它是一個(gè)優(yōu)先列表, hippie-expand 會(huì)優(yōu)先使用表最前面的函數(shù)來(lái)補(bǔ)全。通常的設(shè)置是:
(setq hippie-expand-try-functions-list
'(try-expand-dabbrev
try-expand-dabbrev-visible
try-expand-dabbrev-all-buffers
try-expand-dabbrev-from-kill
try-complete-file-name-partially
try-complete-file-name
try-expand-all-abbrevs
try-expand-list
try-expand-line
try-complete-lisp-symbol-partially
try-complete-lisp-symbol))
首先使用當(dāng)前的buffer補(bǔ)全,如果找不到,就到別的可見(jiàn)的窗口里尋找,
如果還找不到,那么到所有打開(kāi)的buffer去找,如果還……那么到kill-ring里,
到文件名,到簡(jiǎn)稱(chēng)列表里,到list,…… 當(dāng)前使用的匹配方式會(huì)在 echo 區(qū)域
顯示.
確實(shí)是非常好用,基本上我M-/就能到達(dá)我想要的了.
2 采用etags
etags能像cscope那樣,在代碼里跳來(lái)跳去,比如查找函數(shù),變量等,它還能夠自動(dòng)補(bǔ)齊代碼.
1),先生成etags文件
find . /usr/include/ -name "*.c" -or -name "*.cpp" -or -name "*.hpp" -or -name "*.h" |xargs etags --members --language=c++
2).配置.emacs
(setq tags-file-name "~/TAGS")
3),使用
在emacs中,M-tab 就可以自動(dòng)補(bǔ)齊了,不過(guò)有時(shí)候還是不是很好用.
M-. 查找一個(gè)tag,比如函數(shù)定義類(lèi)型定義等。
C-u M-. 查找下一個(gè)tag的位置
M-* 回到上一次運(yùn)行M-.前的光標(biāo)位置。 M-TAB 自動(dòng)補(bǔ)齊函數(shù)名。
3 采用cedet包
1)下載cedet
網(wǎng)址是 http://cedet.sourceforge.net/
2)編譯
tar -zxf cedet-1.0pre3.tar.gz
cd cedet-1.0pre3
make
如果make不成功的話,就看看那個(gè)說(shuō)明吧
3)配置
查看emacs的配置文件在哪里
whereis emacs
拷貝編譯好了的cedet
cp -r cedet-1.0pre3 /usr/share/emacs/
查看是否有我們需要的那個(gè)文件
ls /usr/share/emacs/cedet-1.0pre3/common/cedet.el
配置.emacs文件,在.emacs文件中加入
;;;;;;;;;;cedet
(load-file "/usr/share/emacs/cedet-1.0pre3/common/cedet.el")
;;設(shè)置檢索范圍
(setq semanticdb-project-roots
(list
(expand-file-name "/")));;可以設(shè)置為項(xiàng)目的頂級(jí)目錄
;;綁定按鍵,ctr+tab,以下三種,任意選擇一個(gè),我喜歡第二個(gè)
;;(global-set-key [(control tab)] 'senator-complete-symbol);
(global-set-key [(control tab)] ' senator-completion-menu-popup)
;; (global-set-key [(control tab)] 'semantic-ia-complete-symbol-menu)
4)使用
在一個(gè)未輸入完成的函數(shù)上嘗試下ctr+tab鍵
hippie-expand是 Emacs 自帶的功能,
把M-/ 綁定到 hippie-expand,在.emacs文件中加入
;;綁定按鍵
(global-set-key [(meta ?/)] 'hippie-expand)
hippie-expand 的補(bǔ)全方式。它是一個(gè)優(yōu)先列表, hippie-expand 會(huì)優(yōu)先使用表最前面的函數(shù)來(lái)補(bǔ)全。通常的設(shè)置是:
(setq hippie-expand-try-functions-list
'(try-expand-dabbrev
try-expand-dabbrev-visible
try-expand-dabbrev-all-buffers
try-expand-dabbrev-from-kill
try-complete-file-name-partially
try-complete-file-name
try-expand-all-abbrevs
try-expand-list
try-expand-line
try-complete-lisp-symbol-partially
try-complete-lisp-symbol))
首先使用當(dāng)前的buffer補(bǔ)全,如果找不到,就到別的可見(jiàn)的窗口里尋找,
如果還找不到,那么到所有打開(kāi)的buffer去找,如果還……那么到kill-ring里,
到文件名,到簡(jiǎn)稱(chēng)列表里,到list,…… 當(dāng)前使用的匹配方式會(huì)在 echo 區(qū)域
顯示.
確實(shí)是非常好用,基本上我M-/就能到達(dá)我想要的了.
2 采用etags
etags能像cscope那樣,在代碼里跳來(lái)跳去,比如查找函數(shù),變量等,它還能夠自動(dòng)補(bǔ)齊代碼.
1),先生成etags文件
find . /usr/include/ -name "*.c" -or -name "*.cpp" -or -name "*.hpp" -or -name "*.h" |xargs etags --members --language=c++
2).配置.emacs
(setq tags-file-name "~/TAGS")
3),使用
在emacs中,M-tab 就可以自動(dòng)補(bǔ)齊了,不過(guò)有時(shí)候還是不是很好用.
M-. 查找一個(gè)tag,比如函數(shù)定義類(lèi)型定義等。
C-u M-. 查找下一個(gè)tag的位置
M-* 回到上一次運(yùn)行M-.前的光標(biāo)位置。 M-TAB 自動(dòng)補(bǔ)齊函數(shù)名。
3 采用cedet包
1)下載cedet
網(wǎng)址是 http://cedet.sourceforge.net/
2)編譯
tar -zxf cedet-1.0pre3.tar.gz
cd cedet-1.0pre3
make
如果make不成功的話,就看看那個(gè)說(shuō)明吧
3)配置
查看emacs的配置文件在哪里
whereis emacs
拷貝編譯好了的cedet
cp -r cedet-1.0pre3 /usr/share/emacs/
查看是否有我們需要的那個(gè)文件
ls /usr/share/emacs/cedet-1.0pre3/common/cedet.el
配置.emacs文件,在.emacs文件中加入
;;;;;;;;;;cedet
(load-file "/usr/share/emacs/cedet-1.0pre3/common/cedet.el")
;;設(shè)置檢索范圍
(setq semanticdb-project-roots
(list
(expand-file-name "/")));;可以設(shè)置為項(xiàng)目的頂級(jí)目錄
;;綁定按鍵,ctr+tab,以下三種,任意選擇一個(gè),我喜歡第二個(gè)
;;(global-set-key [(control tab)] 'senator-complete-symbol);
(global-set-key [(control tab)] ' senator-completion-menu-popup)
;; (global-set-key [(control tab)] 'semantic-ia-complete-symbol-menu)
4)使用
在一個(gè)未輸入完成的函數(shù)上嘗試下ctr+tab鍵
轉(zhuǎn)載于:https://www.cnblogs.com/napoleon_liu/archive/2010/01/28/1658615.html
總結(jié)
以上是生活随笔為你收集整理的【转】Emacs -- 自动补齐的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 视频转为flv和图片
- 下一篇: 游记序