ecb problem

http://osdir.com/ml/emacs.jdee/2007-07/msg00008.html

                          • -

Subject: ede-save-cache: Buffer is read-only: #
A new problem: After just upgrading JDE, ecb, and CEDET whenever I try to quit emacs (even if I never opened a file to edit) I get:

ede-save-cache: Buffer is read-only: #

There is this buffer .projects.ede that I can't get rid of.

                          • -

Can resolve as the following


sudo rm ~/.projects.ede


In my case, "~/.projects.ede" owned by root

emacs C++ 開発環境 link集

emacsc++開発を行うための情報を集めました。まとめをここでしています


以下それぞれのリンク

Emacs で C 言語プログラミングを始める人へのイントロダクション

  • 初心者向けdocment
  • 以下の2項目が役立つ
    • タグジャンプ 
      • ここで説明しているtagファイルの作成方法 $ find . -name "*.[chCH]" -print | etags - はubuntu7.10では動かなかった
    • 関数名の補完入力がM-tabでできる
  • タグジャンプはここで説明してるetagより後述のgtagの方が便利

Benjamin Rutt's Emacs C development tips (English)

Using Emacs for Programming(English)

GNU GLOBAL ソースコードタグシステム (gtag)

etags ctags

ffap

  • fileを開くタグジャンプのようなもの

#include  の上にカーソル置いて c-x c-fするとxx.hppが開く

BOOKMARKの使い方

bufferの各場所に名前をつけておくというもの

Emacs Code Browser http://ecb.sourceforge.net/

様々な機能がある。使いこなせてない。

flymake

emacs gdb-mode の使い方

printf debug

Making Emacs Stand Up To Visual Studio 7 http://www.kuro5hin.org/print/2003/4/1/21741/10470

  • 情報が古くあまり役に立たなかったecb使えばすむ話

.emacsの使いかた

リンク集の情報をまとめた.emacsの使いかたをまとめた

  • C-c C-q (c-indent-defun) 関数全体のindent
  • M-x align そろえる
  • M-; (comment-dwim) 選択領域をコメントアウトまたは逆
    • M-x comment-region リージョンをコメント・アウトする。
    • M-x uncomment-region リージョンのコメントを解除する
  • M-$ (ispell-word) カーソル下のワードのスペル・チェックを行なう。
  • M-x ispell-region リージョンに対してスペル・チェックを行なう。
  • M-x ispell-comments-and-strings コメントと文字列だけを対象にスペル・チェックを行なう。
  • ispell
    • (スペース・キー) 一度だけ正しい単語として受け入れる
    • i 正しい単語として辞書に登録する
    • a 正しい単語として、このセッションの間受け入れる
    • r 正しい単語をユーザーが入力する
    • q ispell を終了する
  • M-$ (ispell-word) flyspellで自動チェック中の修正
  • gtags
    • M-t 関数定義にジャンプ
    • M-r 関数呼び出し場所にジャンプ
    • M-s シンボル参照先にジャンプ
  • etags
    • M-x visit-tags-table TAGSファイルを生成
    • M-. 関数定義にジャンプ
    • C-u M-. 次の候補にジャンプ
    • C-x 4 . 別ウィンドウを開いて、タグ・ジャンプする。
    • C-x 5 . 別フレームを開いて、タグ・ジャンプする。
    • M-* タグ・ジャンプする前の位置へ戻る。
    • M-TAB 関数名の補間入力
    • C-u M-TAB Cの標準関数の補間入力
  • compile
    • C-c c compile実行
    • M-x compile compile実行
    • C-x ` エラー行へジャンプ
  • M-x goto-line
  • BOOKMARK
    • C-x r m RET ブックマークを設定する。
    • C-x r m BOOKMARK RET BOOKMARKという名前のブックマークを設定する(bookmark-set)
    • C-x r b BOOKMARK RET BOOKMARKであるブックマークに移動する(bookmark-jump)。
    • C-x r l すべてのブックマークを一覧表示する(list-bookmarks)。
    • M-x bookmark-save ブックマークファイルに保存する

まとめと .emcas

emacsc++をするための情報をまとめたリンクまとめおよびその他の周辺情報のリンクemacs C++ 開発環境link集をまとめた開発環境は以下で作れる.なおここで紹介している方法の大部分はemacs22でしか動かないので注意.
 まず必要なソフトをインストールする.ubuntu7.10の場合は以下でinstallできる
$sudo apt-get install global exuberant-ctags ecb emacs22
.emacsは以下のようにする(設定済みmeadowでも動くようにしてある.).

;;c-mode auto indent http://at-aka.blogspot.com/2006/12/emacs-c.html
(add-hook 'c-mode-common-hook
          '(lambda ()
             ;; センテンスの終了である ';' を入力したら、自動改行+インデント
             (c-toggle-auto-hungry-state 1)
             ;; RET キーで自動改行+インデント
             (define-key c-mode-base-map "\C-m" 'newline-and-indent)
))

;;c-mode flyspell http://at-aka.blogspot.com/2006/12/emacs-c.html
(add-hook 'c-mode-common-hook
          '(lambda ()
             ;; flyspell-prog-mode をオンにする
             (flyspell-prog-mode)
))

;; C-c c で compile コマンドを呼び出す http://at-aka.blogspot.com/2006/12/emacs-c.html
(define-key mode-specific-map "c" 'compile)

;http://www.bloomington.in.us/~brutt/emacs-c-dev.html
;(c-toggle-hungry-state 1);emacs22 ubuntu7.10で動かない 

;;ffap http://www.bookshelf.jp/soft/meadow_23.html#SEC226
(ffap-bindings)
;(setq ffap-c-path   (cons "~/src"  ffap-c-path   )) ;自分のソース置き場のパスを通す

;;gtags href="http://d.hatena.ne.jp/higepon/20060107/1136628498
(autoload 'gtags-mode "gtags" "" t)

;なぜか動かない。デフォルトのままで使っている
;(setq gtags-mode-hook
;      '(lambda ()
;         (local-set-key "\M-t" 'gtags-find-tag)
;         (local-set-key "\M-r" 'gtags-find-rtag)
;         (local-set-key "\M-s" 'gtags-find-symbol)
;         (local-set-key "\C-t" 'gtags-pop-stack)
;         ))


(add-hook 'c-mode-common-hook
          '(lambda()
             (gtags-mode 1)
             (gtags-make-complete-list)
             ))

(when (and (featurep 'meadow) (locate-library "cygwin-mount"))
  (require 'cygwin-mount)
  (cygwin-mount-activate))


;;gdb href="http://narupon.tdiary.net/20061022.html
(setq gdb-many-windows t)
(setq gdb-use-separate-io-buffer t) ; "IO buffer" が必要ない場合は  nil で


;ecb cedet etc http://d.hatena.ne.jp/Tetsujin/20070720/1184861022
;; Load CEDET
;
;(load-file "~/usr/share/emacs/site-lisp/cedet-1.0pre4/common/cedet.el")
(if (featurep 'meadow)
    (load-file "C:/meadow/packages/lisp/cedet/common/cedet.el")
   (load-file "/usr/share/emacs/site-lisp/cedet-common/cedet.el") ; for ubuntu7.10
)

;; Enabling various SEMANTIC minor modes.  See semantic/INSTALL for more ideas.
;; Select one of the following:
(setq semantic-load-turn-everything-on t)

;;;ecb
;      (add-to-list 'load-path
;                   "~/usr/share/emacs/site-lisp/ecb-2.32")
;      (add-to-list 'load-path
;                   "~/usr/share/emacs/22.1/site-lisp/ecb-2.32")
(if (featurep 'meadow)()
  (require 'ecb)
)

;;flymake with CEDET http://www.emacswiki.org/cgi-bin/wiki/FlyMake から
(if (featurep 'meadow)
    (progn 
      (require 'lmcompile)
      (add-hook 'compilation-finish-functions 'vj-compilation-finish-highlight)
      (defun vj-compilation-finish-highlight (buffer result-str)
        (interactive)
        (lmcompile-do-highlight))
      )
)

emacs C++開発環境

emacs C++ 開発環境を学習する

emacsc++開発をする方法は以下の順番で下記リンクを読むことで学ぶことができる.

  1. Emacs で C 言語プログラミングを始める人へのイントロダクション で基本を学ぶ
    1. etagsの使いかた
      1. tag fileの生成は以下
      2. sudo apt-get install exuberant-ctags
      3. cd src_dir
      4. etags -R . my-src-dir
      5. あとはM-. で呼べる
  2. ffepの使い方を学ぶ http://www.bookshelf.jp/soft/meadow_23.html#SEC226
  3. Emacs + GLOBALでソース読みを快適にでgtagsの使い方を学ぶ
    1. 準備は
      1. sudo apt-get install global
      2. cd src_dir
      3. gtags -v
  4. gdbの見える化gdbの使い方を学ぶ
  5. Emacs Code Browser(ECB)を入れてみたでecbの使い方を学ぶ

これらをまとめた.emacs次にまとめた