書いておく
(require 'perspective) (setq persp-show-modestring 'header) ;; 有効化 (persp-mode 1) ;; persp-modeはC-x xがプレフィックス ;; 現在のperspectiveに限定したbs-show (global-set-key (kbd "C-x C-M-b") '(lambda (arg) (interactive "p") (require 'bs nil t) (call-interactively 'persp-bs-show))) ;; perspectiveの状態をEmacs終了時に保存し、復元できるようにする (setq persp-state-default-file "~/.emacs.d/persp-state-file") (add-hook 'kill-emacs-hook #'persp-state-save) (defvar persp-switch-prefix "C-M-%d") (defvar persp-first-perspective "2") ;; 最初のワークスペースは"2"に設定 (defvar persp-top-perspective "0") (defvar persp-bottom-perspective "9") (defun persp-set-keybind () (mapc (lambda (i) (persp-switch (int-to-string i)) (global-set-key (kbd (format persp-switch-prefix i)) `(lambda () (interactive) (persp-switch ,(int-to-string i))))) (number-sequence (string-to-number persp-top-perspective) (string-to-number persp-bottom-perspective)))) (defun persp-my-setup () (persp-set-keybind) (persp-switch persp-first-perspective) (persp-kill "main")) (add-hook 'persp-state-after-load-hook 'persp-my-setup) (add-hook 'after-init-hook 'persp-my-setup) ;; *で始まるバッファ名を候補から削除 -> たとえば*scratch*に変えられない副作用 (setq ido-ignore-buffers (append '("\\`\\*") ido-ignore-buffers)) ;; *で始まるバッファ名を候補から非表示・表示をトグルする関数 (defun persp-toggle-ignore-buffers () (interactive) (if (member "\\`\\*" ido-ignore-buffers) (setq ido-ignore-buffers '("\\` ")) (setq ido-ignore-buffers (append '("\\`\\*") ido-ignore-buffers)))) ;; .で始まるファイル名を削除 (setq ido-ignore-files (append '("\\`\\.") ido-ignore-files))