디버깅하는 동안, 나는 보통 실행하는 동안 화면에 변수를 출력하기 위해 많은 추적을 작성합니다. Emacs가 나를 위해 템플릿을 작성할 수 있다면 좋을 것입니다. 나는 이맥스에서 어떻게 프로그래밍해야할지 모르겠다. 나는 당신의 도움을 구하고있다. :)이맥스에서 추적 템플릿을 생성하십시오.
나의 생각은 다음과 같다. M-x trace-template과 같은 것으로, 변수의 이름을 물어볼 것입니다. 그런 다음이 같은 활성 버퍼에 추가됩니다 날짜는 필요하지 그 날의 흔적에 대한 빠른 검색을 수행하는 그들을 제거 할 수 있습니다 주석 추가
// trace20130604
cout << "test.cpp variable: " << variable << endl;
. "test.cpp"는 자동으로 삽입되는 활성 버퍼입니다. 그리고 "variable"은 Emacs 명령이 실행될 때 묻는 변수의 이름입니다.
이 방법이 유용 할 것으로 생각하십니까? 쉽게 구현할 수 있습니까? 어쩌면 이미 구현 되었습니까? :)
이상적으로는 모드에 따라 달라 지므로 사용하는 언어에 따라 올바른 템플릿을 삽입 할 수 있습니다.
도움을 주셔서 감사합니다.
감사합니다. 몇 가지 주요-모드
에 대한
솔루션 나는 두 가지 주요-모드에 대해 다루 프란체스코의 솔루션을 확장했습니다. 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)))
)
)
안녕 프란체스코을, 답변 주셔서 대단히 감사합니다! .emacs를 여러 컴퓨터로 옮겨서 하나의 파일 만 옮겨야하기 때문에 두 번째 기능을 좋아합니다. 메이저 모드에 따라 다른 템플릿을 인쇄하기 위해 몇 가지 if를 추가했습니다. 그것은 나에게 약간의 시간이 걸렸다. 그러나 나는 내가 그것을했다라고 생각한다 :) – siritinga