デバッグ中、私は通常、実行中に画面に変数を出力するために多くのトレースを書き込みます。Emacs がテンプレートを作成してくれるとよいのですが。私はEmacsでそれをプログラムする方法を知らないので、あなたの助けを求めています:)
私の考えは次のとおりです。変数の名前を要求する Mx trace-template のようなもの。次に、次のようなものがアクティブ バッファに追加されます。
// trace20130604
cout << "test.cpp variable: " << variable << endl;
コメントに追加された日付により、その日の痕跡をすばやく検索して、不要なときにそれらを削除できます。「test.cpp」はアクティブなバッファで、自動的に挿入されます。そして、「変数」は、実行時に Emacs コマンドが尋ねる変数の名前です。
これは役に立つと思いますか?実装は簡単ですか?たぶん、すでに実装されていますか?:)
理想的には、モード固有である必要があるため、使用している言語に応じて適切なテンプレートを挿入できます。
助けてくれてどうもありがとう!
よろしく。
いくつかの主要モードのソリューション
Francesco のソリューションを拡張して、2 つのメジャー モードをカバーしました。Elispで何かをしようとするのはこれが初めてで、コードは醜いと思いますが、うまくいくようです。
(defun trace-template (variable-name)
(interactive "sVariable Name: ")
(if (string-equal (format "%s" major-mode) "c++-mode")
(progn
(insert (format-time-string "// trace%Y%m%d\n"))
(insert (format "cout << \"%s %s:\" << %s << endl;\n\n"
(file-name-nondirectory buffer-file-name)
variable-name variable-name)))
)
(if (string-equal (format "%s" major-mode) "fortran-mode")
(progn
(insert (format-time-string "! trace%Y%m%d\n"))
(insert (format "WRITE(*,*) \"%s %s:\", %s\n\n"
(file-name-nondirectory buffer-file-name)
variable-name variable-name)))
)
)