3

私はorg-mode(Emacs:24.3.1、org-mode:7.9.3f8.0.6) は、さまざまな言語 (これまでのところ、主に elisp と python) のコード スニペットのデータベースです。これは org-mode-babel を使用して非常にうまく機能します。つまり、ドキュメントで説明されているように「コードフィールド」を作成した後、発行することで正しいメジャーモードを使用してコードを編集できますC-c '(つまりorg-edit-special)。ただし、次のような C++ ソース スニペットを編集する場合は、

#+begin_src c++
std::vector<int> v( 100 );
std::iota( std::begin( v ), std::end( v ), 0 ); // Fill with 0, 1, ..., 99.
#+end_src

エラーメッセージ

byte-code: Language mode `c++-mode' fails with: "Buffer *Org Src snippets.org[ c++ ]* has no process"

prined (snippets.orgは、スニペットを保存するために使用するファイルの名前です)。さらに、一時バッファ (実際に開く) に加えられた変更を保存できず、 を使用して一時バッファを終了できませんC-c '

以前にこの問題に遭遇した人はいますか?


更新:犯人を見つけました! 自動補完ソースac-source-clang-asyncは、それを台無しにする責任があります。私のac-clang設定:

(defun ac-cc-mode-clang-setup ()
  (message " * calling ac-cc-mode-clang-setup")
  (setq ac-clang-complete-executable "~/.emacs.d/site-lisp/emacs-clang-complete-async/clang-complete")
  (setq ac-clang-cflags
    (mapcar (lambda (item)(concat "-I" item))
        (split-string
         "
 /usr/include/c++/4.7
 /usr/include/c++/4.7/x86_64-linux-gnu
 /usr/include/c++/4.7/backward
 /usr/lib/gcc/x86_64-linux-gnu/4.7/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.7/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
 /usr/local/root_v5.32.04/include
"
         )))
  (setq ac-clang-flags ac-clang-cflags)
  ;; (setq ac-sources (append '(ac-source-clang-async ac-source-yasnippet) ac-sources))
  (setq ac-sources '(ac-source-filename ac-source-clang-async ac-source-yasnippet))
  (ac-clang-launch-completion-process)
  (ac-clang-update-cmdlineargs))

(defun ac-cc-mode-clang-config ()
  (message " * calling ac-cc-mode-clang-config")
  (add-hook 'c-mode-common-hook 'ac-cc-mode-clang-setup)
  (add-hook 'auto-complete-mode-hook 'ac-common-setup))

(ac-cc-mode-clang-config)

これをコメントアウトすると、すべてがうまく機能します。ソースファイルでclangを実行したいために問題が発生したと思いac-clangますが、これは純粋に仮想バッファであるため存在しません(つまり、関連ファイルがありません)。ただし、プログラムを作成するときに使用するためのサポートを失いたくない... が本物の C++ 編集 ( c++ 編集ではない) を行っているときにのみ実行されるac-clang場合、これは解決される可能性があると思います。これを解決する方法はありますか?ac-cc-mode-clang-configorg-mode

4

3 に答える 3

3

これは私のために働く:

#+begin_src C++ :includes '(<vector> <numeric> <iostream>) :flags -std=c++11
  std::vector<int> v( 100 );
  std::iota( std::begin( v ), std::end( v ), 0 );
  std::cout << v[7];
#+end_src

#+RESULTS:
: 7

Emacs 24.3.4。組織 8.0.6。

組織のセットアップ

(org-babel-do-load-languages
 'org-babel-load-languages
  '( (perl . t)
     (ruby . t)
     (sh . t)
     (python . t)
     (emacs-lisp . t)
     (matlab . t)
    (C . t)))
于 2013-07-29T13:50:38.723 に答える