[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Emacs-fråga



On Tuesday 08 April 2003 21.19, Daniel Sundberg wrote:
> Är det möjligt att i emacs kunna hoppa mellan olika buffrar med hjälp av
> alt+siffra ungefär som man hoppar mellan tabbar i galeon eller mellan
> tabbar i xchat? Jag har letat i flera timmar på nätet efter något liknande
> men det närmaste jag kommer är funktioner för att bläddra mellan buffrar
> ungefär som ctrl+tab funkar i MDI-applikationer för win32.

Den bifogade filen borde lösa ditt problem. Observera dock att det är mitt 
första emacs hack så det är lite av ett fulhack, men det funkar. Ladda in 
filen så kan du med C-M-<0-9> markera en buffert som du sen kommer åt med 
M-<0-9>.

// Erik

-- 
This is an example for a correct signature.

Erik Johansson <ml@erre.user.lysator.liu.se>

;; Author:  Erik Johansson <erre@lysator.liu.se> 
;; Created: 2003-04-09
;; License: GPL
;; Version: 0.1
;;
;; Changelog:
;; 2003-04-09: Created
;;
;; If you improve it, please let me know.
;;
;; Usage: Load it in your .emacs with (load "/path/to/switch-buffer.el").
;;        Press C-M-<0-9> to associate current buffer with M-<0-9>.

(setq *my-buffer-list* (make-vector 10 'nil))

(defun set-quick-buffer (buffer nr)
	(if (vectorp *my-buffer-list*)
			(aset *my-buffer-list* nr buffer)
		(progn 
			(setq *my-buffer-list* (make-vector 10 'nil))
			(aset *my-buffer-list* nr buffer)))
	'done)

(defun get-quick-buffer (nr)
	(if (vectorp *my-buffer-list*)
			(let ((buffer (aref *my-buffer-list* nr)))
				(if (and (bufferp buffer) (buffer-name buffer))
						(switch-to-buffer buffer)
					'no-such-buffer))
		'error))

(global-set-key (kbd "M-1") (lambda () (interactive) (get-quick-buffer 0)))
(global-set-key (kbd "M-2") (lambda () (interactive) (get-quick-buffer 1)))
(global-set-key (kbd "M-3") (lambda () (interactive) (get-quick-buffer 2)))
(global-set-key (kbd "M-4") (lambda () (interactive) (get-quick-buffer 3)))
(global-set-key (kbd "M-5") (lambda () (interactive) (get-quick-buffer 4)))
(global-set-key (kbd "M-6") (lambda () (interactive) (get-quick-buffer 5)))
(global-set-key (kbd "M-7") (lambda () (interactive) (get-quick-buffer 6)))
(global-set-key (kbd "M-8") (lambda () (interactive) (get-quick-buffer 7)))
(global-set-key (kbd "M-9") (lambda () (interactive) (get-quick-buffer 8)))
(global-set-key (kbd "M-0") (lambda () (interactive) (get-quick-buffer 9)))

(global-set-key (kbd "C-M-1") (lambda () (interactive) 
																(set-quick-buffer (current-buffer) 0)))
(global-set-key (kbd "C-M-2") (lambda () (interactive) 
																(set-quick-buffer (current-buffer) 1)))
(global-set-key (kbd "C-M-3") (lambda () (interactive) 
																(set-quick-buffer (current-buffer) 2)))
(global-set-key (kbd "C-M-4") (lambda () (interactive) 
																(set-quick-buffer (current-buffer) 3)))
(global-set-key (kbd "C-M-5") (lambda () (interactive) 
																(set-quick-buffer (current-buffer) 4)))
(global-set-key (kbd "C-M-6") (lambda () (interactive) 
																(set-quick-buffer (current-buffer) 5)))
(global-set-key (kbd "C-M-7") (lambda () (interactive) 
																(set-quick-buffer (current-buffer) 6)))
(global-set-key (kbd "C-M-8") (lambda () (interactive) 
																(set-quick-buffer (current-buffer) 7)))
(global-set-key (kbd "C-M-9") (lambda () (interactive) 
																(set-quick-buffer (current-buffer) 8)))
(global-set-key (kbd "C-M-0") (lambda () (interactive) 
																(set-quick-buffer (current-buffer) 9)))

Reply to: