1987'de, bir an yapıştırmayacağım kodu yazdım. Burada, anahtardan arabelleğe ilk işlev bağlayıcısını yakalamak için kullanılan mekanizma artık işe yaramaz ve sonsuz yineleme ile sonuçlanır. Sanırım şimdi bu tür bir şey yapmanın doğru bir yolu var, birisi beni içeri doldurabilir mi? Sadece Cx b rutin bağlamaz herhangi bir nedenemacs lisp içinde bir işlev sarmak
(defvar *real-buffer-switcher* nil)
(defun improve-buffer-switch()
(if *real-buffer-switcher* nil
(setq *real-buffer-switcher* (symbol-function 'switch-to-buffer))
(fset 'switch-to-buffer 'better-switch-to-buffer)
t))
;(setq *real-buffer-switcher* (symbol-function 'switch-to-buffer))
(defun better-switch-to-buffer (buffer-name &optional no-record)
(interactive "p") ; c-u c-x b goes ahead and creates. Note that
; buffer-name is fraudulently named so as to permit
; non-interactive calls.
;; first, filter out the noninteractive case.
(if (or (stringp buffer-name)
(bufferp buffer-name))
(funcall *real-buffer-switcher* buffer-name no-record)
;; interactive. Numeric arg?
(funcall *real-buffer-switcher*
(read-buffer "Buffer name: "
(other-buffer (current-buffer))
(= buffer-name 1)))))
(improve-buffer-switch)
Uzun zaman önceydi. Sanırım bir sebep vardı. – bmargulies