問題タブ [cc-mode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
emacs - c-common-init およびその他の c-mode 関数を適切に要求できない
これは、この 1 か月か 2 か月の間に起こったに違いありません。誰のせいなのかわかりませんが、c モードから派生したモードをバイトコンパイルしようとすると、Emacs は派生モードで参照されている c モード関数を見つけることができません。cc-bytecom.el を調べたところ (新しいかどうかはわかりませんが、新しいように見えます)、 と の 2 つのマクロが定義されていcc-requre
ますcc-provide
。私は彼らが何をしているのか本当に理解できませんが、Emacs がこれらの関数が利用可能でなければならないことを発見するのを妨げているようです。私のコードで、何も変更(requre 'cc-mode)
しないように置き換えようとすると。(cc-requre 'cc-mode)
上記のマクロはコンパイル時にのみ適用されるようですが、確実にはわかりません. (eval-when-compile (cc-bytecomp-restore-environment))
andも呼び出します(eval-when-compile (cc-bytecomp-load (symbol-name ,cc-part)))
. 私はそれが何をするのか理解するのに苦労しています。
emacs - 引数リストの移動
私はC++プログラマーであり、そしてもちろん私たちの最愛のemacs(v24.2)で構成されるセットアップを使用していcc-mode
ますCEDET
。
私が見逃している機能は、引数のリストをすばやくポイント移動する関数です。この例を考えてみましょう。
ポイントが最初の直前にあるところint
。ここで、引数のリストをすばやく移動する簡単な方法、つまり、コンマ(引数の区切り文字)を過ぎた最初の非空白文字の直前に移動するforward-argument
(および同様の)関数を作成したいと思います。
私はそれを行う小さな関数を書きましたが、それは私が望む方法ではありません:backward-argument
原則として、この関数は次のコンマにジャンプするだけです。それは私が望む行動ではありません。
次のような関数が欲しいのですが。
- 編集:次の引数セパレーター(つまり、C ++の場合はコンマ)にジャンプし、その引数セパレーターの直後にポイントを配置します
- カンマの後に空白があるかどうかを確認します。存在する場合、ポイントは最初の非空白文字に移動されます(つまり、マークがポイント する場所の
,| int
ように見えます), |int
|
- 引数リストの最後で停止し、メッセージを出力します(例:「引数リストの最後」)
- その「スコープ」内にとどまります。つまり、マークが指す
|int b3
場所に|make_pair( int b4, int b5 )
移動します。|int a6
|
あなたのelisp
「ハッカー」からの助けは大歓迎です!
編集:いくつかの説明を追加しました。
Edit2:その例の「コード」を修正しました
emacs - emacs バッチ インデント vs. cc モード アクセス ラベル
emacs を使用してインデント ソース ファイルをバッチ処理しようとしています。私はコマンドを使用しています:
emacs-format-file.el の内容は次のとおりです。
Emacs は、1 つの例外を除いて、私の好みに合わせてファイルをインデントします。"public"、"private"、および "protected" キーワードはすべて余分なスペースでインデントされています。
これらのキーワードを前の開き括弧に合わせたいと思います。この質問に基づいて、 「アクセスラベル」を設定するとこれが修正されると思いましたが、効果はないようです。
私は何が欠けていますか?
emacs - irony-mode がインクルード パスを取得しない
私は最近irony-mode
、emacs (24.3.1) で補完のために使い始めました。ただし、システム インクルード パスをパッケージに追加できないようです。
私は自分の設定にこのコードを持っています:
irony-mode は正しくロードされ、補完はコンパイラーが明示的に認識しているインクルード パス (つまり、 によって出力されるすべて) に対して完全に機能しますecho "" | g++ -v -x c++ -E -
が、追加のインクルード パスinc
は取得されません (相対パスか絶対パスかは関係ありません)。
ただし、.clang_complete
ファイルに情報を追加してロードするとC-c C-b
、インクルード パスが認識されて使用されます。明らかに、これは理想的とは言えない設定です。
.clang_complete
作業中のコードごとにファイル を作成したくない.clang_complete
ファイルは自動的にロードされません。
ヘッダー ファイルを探す場所を指定するための作業方法 (プロジェクトごとのセットアップを必要としない、コードごとにプロジェクト管理ファイルを作成したくない) はありますか?irony-mode
c++ - コンストラクターの初期化子リストのインデントが間違っています
私は使用していますが、emacs インデント エンジンと新しい初期化リストemacs 24.3
で次の問題が発生しました。C++11
例を挙げましょう:という名前Class
の型のメンバーを持つクラスを考えてみましょう。Emacs はコンストラクターを次のようにインデントします。std::vector<int>
m_vector
一方、私はこの構文を期待します:
これに対する簡単な修正はありますか?
emacs - Emacs 24.3.50.4 で d モードのロードが失敗する
d-mode.el
またはd-mode.elc
( https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode ) を Emacs の最近のスナップショットでロードしようとすると、次のように失敗します。
emacs - Emacs の ccmode での改行と自動インデント中括弧
私はEmacsを使用しています。これを書くときにそれが欲しいです(|がポイントです):
Enter キー (または別のキーなど) を押すと、次のようになります。
そのため、ブロックの内容をすぐに入力し始めることができ、ブロックは自動的に閉じられます。
これどうやってするの?