(require 'god-mode) (global-set-key (kbd "") 'god-mode-all) (defun original-god-mode-lookup-key-sequence (&optional key key-string-so-far) ()) (fset 'original-god-mode-lookup-key-sequence (symbol-function 'god-mode-lookup-key-sequence)) (defun god-mode-lookup-key-sequence (&optional key key-string-so-far) "Lookup the command for the given `key' (or the next keypress, if `key' is nil). This function sometimes recurses. `key-string-so-far' should be nil for the first call in the sequence." (interactive) (message (format "%s" key)) (case key (?x (original-god-mode-lookup-key-sequence ?t key-string-so-far)) (?t (original-god-mode-lookup-key-sequence ?x key-string-so-far)) (t (original-god-mode-lookup-key-sequence key key-string-so-far)))) (defun my-update-cursor () (if god-local-mode (set-cursor-color "Red") (set-cursor-color "White")) (setq cursor-type (if (or god-local-mode buffer-read-only) 'box 'bar))) (define-key god-local-mode-map (kbd ".") 'repeat) (add-hook 'god-mode-enabled-hook 'my-update-cursor) (add-hook 'god-mode-disabled-hook 'my-update-cursor) (defun god-toggle-on-overwrite () "Toggle god-mode on overwrite-mode." (if (bound-and-true-p overwrite-mode) (god-local-mode-pause) (god-local-mode-resume))) (add-hook 'overwrite-mode-hook 'god-toggle-on-overwrite) (define-key god-local-mode-map (kbd "i") 'god-local-mode) (global-set-key (kbd "C-x C-1") 'delete-other-windows) (global-set-key (kbd "C-x C-2") 'split-window-below) (global-set-key (kbd "C-x C-3") 'split-window-right) (global-set-key (kbd "C-x C-0") 'delete-window) (god-mode-all)