Попалась тут фотка..
Действительно, кто не прослезится, увидев самоделку с Д226Б - тот не из наших. Реально так повеяло.. уж и забыл напрочь такое.
(global-set-key (kbd "<escape>") (lambda ()
(interactive)
(keyboard-escape-quit)
(rkill-buffers wf-buffers-group1)))
Клавиша Esc в первую очередь выполняет стандартную функцию отмены действия. Лично я вообще не сторонник заучивания каких-либо клавиш по умолчанию, особенно не совпадающих в разных приложениях (в Emacs это Ctrl+G, а не Esc, в Firefox- Ctrl+T вместо Ctrl+N, и так далее), и исключений обычно не делаю.(defadvice undefined (around undefined-advice activate)
(shell-command "xdotool key ISO_Next_Group")
(message "Ru > En switched, try again!"))
чтобы в таком случае автоматически переключалась раскладка, в данном примере это сделано с помощью xdotool.(defun mylispcode-search ()
"Search string in Emacs *.el files"
(interactive)
(let ((q (read-string " > ")) (f "~/*.org ~/.emacs ~/.emacs.d/*.el"))
(message (shell-command-to-string (concat "grep -h -A 1 -B 1 " q " " f)))))
(defun mylispcode-search ()
"Search string in Emacs *.el files"
(interactive)
(let ( (lf (directory-files "~/.emacs.d/misc_settings/" t nil nil)) f)
(setq lf (cddr lf)) ;; remove "." and ".." links from list
(add-to-list 'lf "~/.emacs")
(generate-new-buffer "*SEARCH")
(with-current-buffer "*SEARCH"
(lisp-mode)
(dolist (f lf)
(insert (concat "\n [" (format "%s" f) "] \n\n"))
(insert-file-contents f)
(goto-char (point-max))))
(switch-to-buffer "*SEARCH")
(goto-char (point-min))
(re-search-forward (read-string ">> ") nil t)))
(defvar wf-buffers-group1 "\\*\\(?:Help\\|Messages\\|scratch\\|Occur\\)\\*") (global-set-key (kbd "C-b") (lambda() "List buffers" (interactive) (rkill-buffers wf-buffers-group1) (buffer-menu) (isearch-forward) ;; чтобы не жать Enter дважды (execute-kbd-macro (kbd "RET")) (rkill-buffers "\\*Buffer.List\\*") ))Переключение к списку всех нужных буферов по привычной для меня комбинации Ctrl+B, после нажатия которой достаточно начать набирать имя требуемого буфера, а потом нажать Enter или Esc, или еще какую-нибудь клавишу. Или просто тупо кликнуть мышкой ;)
(require 'cl)
(defun rkill-buffers (rexp)
"Закрыть совпадающие буферы МОЛЧА"
(flet ((kill-buffer-ask (buffer) (kill-buffer buffer)))
(kill-matching-buffers rexp)))
(defun switch-to-previous-buffer () (interactive) (switch-to-buffer (other-buffer (current-buffer) 1)))
Следующие Предыдущие Главная страница