emacs에서 나의 전형적인 SQL 모드는 다음과 같습니다.Emacs : 모든 sql-mode 버퍼를 방문하여 적절한 sql 버퍼를 설정하는 방법
a. foo.sql 파일을 열고 편집을 시작하십시오.
b. sql-send-region에 대한 키 바인딩을 사용하여 실행할지 결정하십시오.
c. 적절한 사용자 정의 (db-connect) 함수를 실행하여 적절한 db에 연결하고 * SQL * 버퍼를 만듭니다.
그러나 foo.sql은 환경을 새로 고치고 이와 같은 버퍼가 있음을 감지하기 위해 버퍼에서 "mx sql-mode"를 수행하지 않으면 * SQL * 버퍼의 존재에 대해 알지 못합니다 포인트. 내 사용자 지정 db 연결 함수에 sql-mode를 사용하여 모든 버퍼를 방문하고 sql-buffer 변수를 업데이트하는 코드를 포함하고 싶습니다. 여러 스택 오버플로 멤버가 이전에 이와 비슷한 작업을 수행 했음에 틀림 없습니다. 난 당신이 인수와 같은 'SQL 모드를 전달할 수 있습니다
(defun buffer-mode (buffer-or-name)
(with-current-buffer buffer-or-name major-mode))
(defun filter-buffers-by-mode (mode)
(delq nil
(mapcar
(lambda (x) (and (eq (buffer-mode x) mode) x))
(buffer-list))))
전공 모드로 버퍼를 필터링 할 수있는이 작은 도우미 함수를 구현했습니다
이 코드는 Emacs의 일부 이전 버전 용입니까? Emacs 23.3.1 (OS X)에서 (void-function buffer-mode) 실패합니다. 나는 버퍼의 주요 모드를 추출한다는 것을 추측하고있다. 버퍼 로컬 인'major-mode' 변수에서 사용할 수 있습니다. – vpit3833
아니요, 오래되었습니다. 그저 쓴 것인데 완전히 잊어 버렸습니다. (버퍼 모드 (버퍼 또는 이름 제외) (현재 버퍼 버퍼 또는 이름 메이저 모드 사용)) –