72 lines
2.1 KiB
EmacsLisp
72 lines
2.1 KiB
EmacsLisp
;;; init-emergency-fix.el --- Emergency fixes for editing issues -*- lexical-binding: t -*-
|
|
;;; Commentary:
|
|
;;; Quick fixes for when editing is broken
|
|
|
|
;;; Code:
|
|
|
|
;; Emergency function to restore editing capability
|
|
(defun fix-editing-now ()
|
|
"Emergency fix to restore editing capability."
|
|
(interactive)
|
|
;; Disable read-only mode
|
|
(read-only-mode -1)
|
|
(setq buffer-read-only nil)
|
|
|
|
;; Disable god-mode if it's enabled
|
|
(when (boundp 'god-local-mode)
|
|
(god-local-mode -1))
|
|
(when (boundp 'god-global-mode)
|
|
(god-global-mode -1))
|
|
|
|
;; Disable view-mode if active
|
|
(when (bound-and-true-p view-mode)
|
|
(view-mode -1))
|
|
|
|
;; Ensure we're not in special modes
|
|
(when (bound-and-true-p special-mode)
|
|
(fundamental-mode))
|
|
|
|
;; Disable any potential read-only causing modes
|
|
(when (bound-and-true-p buffer-read-only)
|
|
(toggle-read-only -1))
|
|
|
|
;; Reset cursor type
|
|
(setq cursor-type 'bar)
|
|
|
|
;; Ensure CUA mode isn't causing issues
|
|
(when cua-mode
|
|
(cua-mode -1)
|
|
(cua-mode 1))
|
|
|
|
(message "Editing should be restored. If not, try M-x fundamental-mode"))
|
|
|
|
;; Diagnostic function
|
|
(defun diagnose-editing-issue ()
|
|
"Diagnose why editing might be disabled."
|
|
(interactive)
|
|
(let ((issues '()))
|
|
(when buffer-read-only
|
|
(push "Buffer is read-only" issues))
|
|
(when (bound-and-true-p god-local-mode)
|
|
(push "God-mode is enabled" issues))
|
|
(when (bound-and-true-p view-mode)
|
|
(push "View-mode is enabled" issues))
|
|
(when (bound-and-true-p special-mode)
|
|
(push "Special-mode is active" issues))
|
|
(when (eq major-mode 'fundamental-mode)
|
|
(push "In fundamental-mode" issues))
|
|
(if issues
|
|
(message "Issues found: %s" (string-join issues ", "))
|
|
(message "No obvious issues found. Mode: %s, Read-only: %s"
|
|
major-mode buffer-read-only))))
|
|
|
|
;; Global keybinding for emergency fix
|
|
(global-set-key (kbd "C-c C-!") 'fix-editing-now)
|
|
(global-set-key (kbd "C-c C-?") 'diagnose-editing-issue)
|
|
|
|
;; Ensure fundamental settings are correct
|
|
(setq-default buffer-read-only nil)
|
|
(setq inhibit-read-only nil)
|
|
|
|
(provide 'init-emergency-fix)
|
|
;;; init-emergency-fix.el ends here |