現在 Ubuntu Linux 7.10 を使用しており、Emacs でC言語のプログラミングをする上で、関数の入力補完を利用しようと

思っています。
できればcscope、それがダメならばgtags、それでもダメならばctagsを利用したemacsでの関数の入力補完方法を教えて
ください。
cscope、gtagsでの方法ならば、いるか賞の人に500ポイント差し上げます。
ctagsならば、いるか賞の人に200ポイント差し上げます。

回答の条件
  • 1人5回まで
  • 登録:2008/04/13 21:44:47
  • 終了:2008/04/18 06:54:32

ベストアンサー

id:pyopyopyo No.2

pyopyopyo回答回数341ベストアンサー獲得回数832008/04/13 23:13:16

ポイント750pt

* global + gtags.el の場合

gtags.el自体には補完の機能はなかったと思います。しかし以下の方法で一度 *Completions* というバッファを作成しておけば、補完できるようになります

  1. コマンドラインから gtags -v で、GTAGSファイルなどを生成する
  2. 以下の手順で、emacs 上に *Completions* というバッファをつくる。
    1. emacs で、M-x gtags-mode として、gtags モードにする
    2. M-x gtags-visit-rootdir で GTAGS ファイルのあるディレクトリを指定する
    3. M-x gtags-find-symbol を一度実行。TABを押す。
  3. 以上で、 M-/ で補完ができるようになります。

* ctags の場合

  1. コマンドラインから etags *.c *.h などとして TAGS ファイルをつくる
  2. emacs で M-x visit-tags-table として、TAGS ファイルのあるディレクトリを指定
  3. 以上で、M-TAB または M-x complete-symbol で補完できるようになります。

* 番外編

ソースコードが数個しかない、小規模なプロジェクトであれば emacsのデフォルトの機能である M-/ (つまり Alt + / )を使うのが良いと思います。

  1. emacs *.c *.h などとして一度全部のソースコードをemacsで開く
  2. 以上で、 M-/ で補完できるようになります。
id:BlueSkyDetector

ありがとうございます。

gtagsのほうのやり方で補完を利用できました。

gtagsとくらべるとctagsの方がリストにでてこないものが多い印象があるので、gtagsの方を使用したいと思います。

なお、環境変数に GTAGSROOT を設定しておけば M-x gtags-visit-rootdir を実行せずとも良いようです。

非常に勉強になりました。ありがとうございました。

一応、cscopeでの方法についても回答の募集をつづけます。

2008/04/14 12:25:55

その他の回答(1件)

id:felix33jp No.1

felix33jp回答回数484ベストアンサー獲得回数32008/04/13 21:58:11

ポイント5pt

emacsって開発した人はもう使うのやめたらって言ってるんですよね。私ももう使ってません。今はブラウザがすべての中心になっていますから。

id:BlueSkyDetector

寡聞にして、「emacsって開発した人はもう使うのやめたらって言ってる」ということは知りません。

ポインタを示してください。

javaならともかく、c言語プログラミングではまだまだ現役だと思っています。

 

あと、すいませんが、この回答ではポイントは差し上げにくいです。質問に対する回答になってませんよね?

こういう内容はコメントで書いてください。

 

もしこういう内容のことを書くならば、せめてLinux上で動作するC言語アプリケーションを作成する上で代替と

なるものを教えてください。

ちなみに、Linuxのkernelのコードを見るためにも使用していますが、vi、emacs以外で有用なものを知りませんし、実際のkernel開発者でvi、emacs以外使用している方も知りません。

 

追記:

つい最近のRMSへのインタビューがありましたが、emacsがさらに進化していく未来について語っています。

おそらく、felix33jp さんはRMSがメンテナを交代したニュースを見て、内容を取り違えたのではないでしょうか?

http://www.networkworld.com/community/node/25360

> What do you see as the future of Emacs?

> I would like to see it extended to operate as a word processor, editing formatted text.

2008/04/13 23:17:31
id:pyopyopyo No.2

pyopyopyo回答回数341ベストアンサー獲得回数832008/04/13 23:13:16ここでベストアンサー

ポイント750pt

* global + gtags.el の場合

gtags.el自体には補完の機能はなかったと思います。しかし以下の方法で一度 *Completions* というバッファを作成しておけば、補完できるようになります

  1. コマンドラインから gtags -v で、GTAGSファイルなどを生成する
  2. 以下の手順で、emacs 上に *Completions* というバッファをつくる。
    1. emacs で、M-x gtags-mode として、gtags モードにする
    2. M-x gtags-visit-rootdir で GTAGS ファイルのあるディレクトリを指定する
    3. M-x gtags-find-symbol を一度実行。TABを押す。
  3. 以上で、 M-/ で補完ができるようになります。

* ctags の場合

  1. コマンドラインから etags *.c *.h などとして TAGS ファイルをつくる
  2. emacs で M-x visit-tags-table として、TAGS ファイルのあるディレクトリを指定
  3. 以上で、M-TAB または M-x complete-symbol で補完できるようになります。

* 番外編

ソースコードが数個しかない、小規模なプロジェクトであれば emacsのデフォルトの機能である M-/ (つまり Alt + / )を使うのが良いと思います。

  1. emacs *.c *.h などとして一度全部のソースコードをemacsで開く
  2. 以上で、 M-/ で補完できるようになります。
id:BlueSkyDetector

ありがとうございます。

gtagsのほうのやり方で補完を利用できました。

gtagsとくらべるとctagsの方がリストにでてこないものが多い印象があるので、gtagsの方を使用したいと思います。

なお、環境変数に GTAGSROOT を設定しておけば M-x gtags-visit-rootdir を実行せずとも良いようです。

非常に勉強になりました。ありがとうございました。

一応、cscopeでの方法についても回答の募集をつづけます。

2008/04/14 12:25:55

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません