norm@athena.mit.edu (Wayne M Miller) (03/23/91)
A few days ago I posted a request for help concerning a function to toggle between three separate modes. What follows is the improved version of the function. ;; Easy switch-mode (C-c C-t) (setq my-mode-queue (list 'latex-mode 'c-mode 'fundamental-mode)) (defun my-toggle-mode () "Toggle major modes quickly." (interactive) (funcall (car my-mode-queue)) (setq my-mode-queue (append (cdr my-mode-queue) (list (car my-mode-queue)))) (refresh-mode-line)) (defun refresh-mode-line () (save-excursion (set-buffer (other-buffer))) (set-buffer-modified-p (buffer-modified-p)) (sit-for 0)) (global-set-key "\C-c\C-t" 'my-toggle-mode) This version has the advantage of storing the modes in a variable, rather than creating a separate function for each mode, changing the binding of the key after each call. I would like to eventually convert this function to a more generic toggle function that takes as an argument a list of commands to cycle through. However, I am new to elisp, so I am having trouble doing this. If anyone has any suggestions, please contact me. -- ============================================================================== Wayne M Miller | "What can you say about a society that norm@athena.mit.edu | says God is dead and Elvis is alive?" ==============================================================================