From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Globe Trotter Newsgroups: gmane.emacs.help Subject: Re: help: how to load existing file after upgrading to Emacs 29.1 from 28.3, or save it without prompt Date: Sun, 12 Nov 2023 17:39:15 +0000 (UTC) Message-ID: <94450637.716536.1699810755091@mail.yahoo.com> References: <1741095947.686890.1699803039311.ref@mail.yahoo.com> <1741095947.686890.1699803039311@mail.yahoo.com> <831qcuvs3b.fsf@gnu.org> <878765838.2608508.1699810245902@mail.yahoo.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="29879"; mail-complaints-to="usenet@ciao.gmane.io" To: "help-gnu-emacs@gnu.org" Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Sun Nov 12 18:40:15 2023 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1r2ERT-0007a2-B8 for geh-help-gnu-emacs@m.gmane-mx.org; Sun, 12 Nov 2023 18:40:15 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1r2EQk-0002aF-Ex; Sun, 12 Nov 2023 12:39:30 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r2EQi-0002Us-FC for help-gnu-emacs@gnu.org; Sun, 12 Nov 2023 12:39:29 -0500 Original-Received: from sonic305-21.consmr.mail.ne1.yahoo.com ([66.163.185.147]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1r2EQd-00049B-FN for help-gnu-emacs@gnu.org; Sun, 12 Nov 2023 12:39:26 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1699810760; bh=vcNMtQIuD7Xs0GYY+8g0gRjU2jSqedampkt+zJ9zS3c=; h=Date:From:To:In-Reply-To:References:Subject:From:Subject:Reply-To; b=hHQ14hAVy0y546qIYsrtD7I1AwDcthOJr12Jq1i/WHVdOVnLd5TzwpQXThIwx9fKF0A7kuP9zLnn0qZJ631rD8UaAa5lA8ktyrzib4vg4rU7oX/V53w33kkMN8zHezq+cbJNMGi0fK8pCYa09DApwTLeBZTsdqVJJMuzXbefVYNCXJdBYECAy74uWSaUDmRGW1U6FVocSPL7yTDzPLrPgwRon0pMbgGxj1IcccMYkqLaM/7VZzkdqRYPtJXmlTt1PMixncW+SpTAtpAHmXvPzWxuoL2FCDV7WmvKBK5VnyqQdpLDJBwKjXXiJAMX540K3Szj/JaPrZ6gtqZ+ttkcsA== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1699810760; bh=pek60buiULWUw0pvb6QEbvI6GdrWFl37zU2E+Wi6t6o=; h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=PVC+yHfFhhT6BFF4BKA9KHFnV6MyHUhTfEoDW1k/HPtkrjNDMZsqBFBl3rVB6N1eoq9fgSLHw6zaVQ4okDvtTi/grqm1P16qL+9HHiH6WQNba4pW7IKmV+vgkSUQHzP87aUnk0CWtJiQ52M69Wer8wN14s9UfvYcMu0FDUjGoMIRVq71eJoi944a46VygwrbWxyteBKoA7qB9hjVDZxtf73usvYftuLyRgOyU/3V7GbiI/1hHluyiP65DXGIu0FA622RXTjeTLqXZxDftiSLbDGzRW1H+HdZSCAtgjmgl85xxWWO36Jr5DBFEK6TK/IPVYtqBSVjH4urOZICS2ICIg== X-YMail-OSG: 84CpPXUVM1mfiadMGoOR0o4MTlJPdBfyUVG3H93LlU64fgrHDZiJ5Wl2lh4svCB Tz2VVbypmlDbewsn1v06O3PjSjaUaL3sL0R4Z99MYjsK5OkszJPmvs8oi6W68iw6feHNhlcmUH38 EmQvqFt026TcUVQp0Hgyy6C_gn5A1A1ma.m02U9nqmEj8TC07fNpXS1XEfUWDXC.fXQGoSM3ASsF DxvnvnZyH5YNyyPD06XaSTOWaOZ50VCHUFo74DsNQJx0fxSFVCfItN2xkxCuLmBLmMVT5srbZW1K K6vKApAWRKjFojsVuWejbcb0LbnvR2OLiWvNJv3gEOf4lICedt.y4mJfhbA7r8ZyqWkF8yw5jMMa qtpI_MjKGZJVvtEg3_I45E2Fq0n7XJDQy3EngmNqh5voxtfZFBhtqdyCq.h.N4U5QXorbWug9PhN ifiTchSZs9nnjvb5F4Zpj771TNpXZMKmCOos2xaOgRaGU0gFyeWbe5soBFWm2LvgA32XEbvVz.z_ UZtP4SpQgwloGtaR6Kxw6ElHQOR.2kAuFbsORkHcuP4r2mLrCyG8UHQkNyS_qOvhKa2wwf8ouEGZ 5cAwlsQMqs_HAgduy3s2er8OnkNuC0eUXp8spWEtPAGRRKgZW3nC0bh88zj7Lut22HFp1dqWjMeE Rkt3sTuQlRDKXAonc.EF4di9K.VSJdRz2xvvB__BkT_Xx9ibEbijTB3xz5VdLhLpSZMYOZ9OkCOU QDELsOcqOA0PTdfASBGxaZdW470W1GwsHtlYTkIDjEb4Brzj6zZr6oa2cB8Vs1N1mWsQKeovB7Fl bN50vMek5NSmGEFlIXHLj6Kt_aEgbryOelmEvv8b6O X-Sonic-MF: X-Sonic-ID: 912a2c7d-d056-4b3e-81a9-6f4b1f2fbe5b Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic305.consmr.mail.ne1.yahoo.com with HTTP; Sun, 12 Nov 2023 17:39:20 +0000 In-Reply-To: <878765838.2608508.1699810245902@mail.yahoo.com> X-Mailer: WebService/1.1.21896 YMailNorrin Received-SPF: pass client-ip=66.163.185.147; envelope-from=itsme_410@yahoo.com; helo=sonic305-21.consmr.mail.ne1.yahoo.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:145493 Archived-At: On Sunday, November 12, 2023 at 10:46:06 AM CST, Eli Zaretskii wrote:=20 > Date: Sun, 12 Nov 2023 15:30:39 +0000 (UTC) > From: Globe Trotter >=20 > I am a long-term emacs user (for 31 years) but I have a strange problem s= ince my recent upgrade to 29.1 (as part of my Fedora distribution upgrade f= rom 38 to 39). >=20 >=20 > I try: >=20 > $ emacs test.txt >=20 > And I get a window that simply loads the following: >=20 > https://i.stack.imgur.com/ecDDL.png > Chrystal ball says something is wrong with your customizations.=C2=A0 Try >=C2=A0 $ emacs -Q test.txt > nstead.=C2=A0 If that behaves as you are used to, then look into your ini= t > file(s) for the culprit(s). Hi, Thanks for this! Yes, this loads the existing file, however it does not loa= d my default font (size is too=C2=A0 small). Init files: I have a .emacs file, but I do not have a init.el file. What sh= ould I be looking at? Here is my .emacs file. What should I be=20 ;; Added by Package.el.=C2=A0 This must come before configurations of ;; installed packages.=C2=A0 Don't delete this line.=C2=A0 If you don't wan= t it, ;; just comment it out by adding a semicolon to the start of the line. ;; You may delete these explanatory comments. ;; (package-initialize) (setq load-path (append load-path (list "~/lisp"))) ;; Startup settings for ESS (this is borrowed from VM) ;; ;; For some reason, native compilation breaks VM. As a workaround until the ;; problem is understood and fixed, disable native compilation of all VM ;; lisp files. ;; (eval-after-load "comp" ;;'(if (boundp 'native-comp-deferred-compilation-deny-list) ;;=C2=A0=C2=A0=C2=A0=C2=A0 (add-to-list 'native-comp-deferred-compilation-d= eny-list "*/ess\*.el")) (setq TeX-default-mode 'latex-mode) (setq text-mode-hook '(lambda () =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0(auto-fill-mode 1)= (abbrev-mode 1) =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0)) (define-key esc-map "#" 'goto-line) (setq default-major-mode 'text-mode) (setq auto-save-interval 1000) (setq ask-about-buffer-names t) (defun rec0() (interactive)(recenter 0)) (custom-set-variables =C2=A0;; custom-set-variables was added by Custom. =C2=A0;; If you edit it by hand, you could mess it up, so be careful. =C2=A0;; Your init file should contain only one such instance. =C2=A0;; If there is more than one, they won't work right. =C2=A0'(auto-compression-mode t nil (jka-compr)) =C2=A0'(case-fold-search t) =C2=A0'(column-number-mode t) =C2=A0'(current-language-environment "Latin-1") =C2=A0'(default-input-method "latin-1-prefix") =C2=A0'(font-use-system-font t) =C2=A0'(global-font-lock-mode t nil (font-lock)) =C2=A0'(send-mail-function 'mailclient-send-it) =C2=A0'(show-paren-mode t nil (paren)) =C2=A0'(text-mode-hook =C2=A0=C2=A0 '(turn-on-auto-fill =C2=A0=C2=A0=C2=A0=C2=A0 (lambda nil =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (auto-fill-mode 1) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (abbrev-mode 1)))) =C2=A0'(warning-suppress-log-types '((comp))) =C2=A0'(warning-suppress-types '((comp)))) (defun linux-c-mode () =C2=A0 "C mode with adjusted defaults for use with the Linux kernel." =C2=A0 (interactive) =C2=A0 (c-mode) =C2=A0 (c-set-style "K&R") =C2=A0 (setq tab-width 8) =C2=A0 (setq indent-tabs-mode t) =C2=A0 (setq c-basic-offset 8)) (setq auto-mode-alist (cons '(".*\\.[ch]$" . linux-c-mode) auto-mode-alist)= ) (setq inhibit-startup-message t) (autoload 'flyspell-mode "flyspell" "On-the-fly spelling checker." t) (add-hook 'message-mode-hook 'turn-on-flyspell) (add-hook 'text-mode-hook 'turn-on-flyspell) (add-hook 'c-mode-common-hook 'flyspell-prog-mode) (add-hook 'tcl-mode-hook 'flyspell-prog-mode) (defun turn-on-flyspell () =C2=A0 "Force flyspell-mode on using a positive arg.=C2=A0 For use in hooks= ." =C2=A0 (interactive) =C2=A0 (flyspell-mode 1)) ;;Flyspell is compatible with TeX editing. That is, Flyspell tries, as much= as possible, to avoid highlighting TeX command. In order to automate the s= tarting of Flyspell when editing LaTeX source files, one may add the follow= ing expression in his .emacs file: (add-hook 'LaTeX-mode-hook 'flyspell-mode) ;;Flyspell proposes corrections for miss-spelled words by the means of pop-= up menus. Clicking Mouse-2 on a highlighted word will raise a menu that pro= poses corrections. Alternatively you will be able to store the word in the = global dictionary, to add it to the current document dictionary or to ignor= e the miss-spelling for the current session. ;;Flyspell also proposes automatic corrections. With M-\t, Flyspell replace= s current miss-spelled word with a possible correction. If several correcti= ons are made possible, they are sorted and M-\t proposes a new correction e= ach time hit. Corrections may be sorted by alphabetical ordering (the defau= lt) or by likeness to the current word ordering. To enable the likeness cri= teria, uses: (setq flyspell-sort-corrections nil) ;;Flyspell considers that a word repeated twice is an error (for instance, = the second word word is highlighted). This feature can be disable with: (setq flyspell-doublon-as-error-flag nil) ;(add-to-list 'default-frame-alist '(font .=C2=A0 10x20 )) ;(set-face-attribute 'default t :font=C2=A0 10x20 ) (set-frame-font "10x20") ;; auto-complete taken from https://emacs.stackexchange.com/questions/5938/= how-to-make-auto-complete-work-in-auctex-mode (require 'package) (package-initialize) (ac-config-default) ;; Activate auto-complete for latex modes (AUCTeX or Emacs' builtin one). ;; https://raw.githubusercontent.com/vitoshka/ac-math/master/ac-math.el (require 'unicode-math-input) (require 'ac-math) ; This is not needed when you install from MELPA (add-to-list 'ac-modes 'latex-mode)=C2=A0=C2=A0 ; make auto-complete aware = of `latex-mode` (defun ac-latex-mode-setup ()=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 ; add ac-sources to default ac-sources =C2=A0 (setq ac-sources =C2=A0=C2=A0=C2=A0=C2=A0 (append '(ac-source-math-unicode ac-source-math-la= tex ac-source-latex-commands) =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ac-sources))) (setq ac-math-unicode-in-math-p t) ;; Activate autocomplete with ess from: https://stackoverflow.com/questions= /16075012/emacs-ess-auto-complete (setq ess-use-auto-complete t) ;; https://stackoverflow.com/questions/24106099/emacs-ess-indentation-and-a= uto-completion?rq=3D1 (define-key ess-mode-map [tab] 'ess-indent-or-complete) (custom-set-faces =C2=A0;; custom-set-faces was added by Custom. =C2=A0;; If you edit it by hand, you could mess it up, so be careful. =C2=A0;; Your init file should contain only one such instance. =C2=A0;; If there is more than one, they won't work right. =C2=A0'(default ((t (:family "DejaVu Sans Mono" :foundry "PfEd" :slant norm= al :weight normal :height 162 :width normal))))) ;(add-to-list 'default-frame-alist '(font ."Terminus-20")) ;(set-face-attribute 'default t :font "Terminus-20") ;; http://blog.vivekhaldar.com/post/4809065853/dotemacs-extract-interactive= ly-change-font-size (defun my/zoom-in () =C2=A0 "Increase font size by 10 points" =C2=A0 (interactive) =C2=A0 (set-face-attribute 'default nil =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 :height =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (+ (face-attribute 'def= ault :height) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 10))) (defun my/zoom-out () =C2=A0 "Decrease font size by 10 points" =C2=A0 (interactive) =C2=A0 (set-face-attribute 'default nil =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 :height =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (- (face-attribute 'def= ault :height) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 10))) ;; change font size, interactively (global-set-key (kbd "C->") 'my/zoom-in) (global-set-key (kbd "C-<") 'my/zoom-out) (add-hook 'mail-mode-hook 'turn-on-auto-fill) (defun my-mail-mode-hook () =C2=A0 (auto-fill-mode 1) =C2=A0 (abbrev-mode 1) =C2=A0 (local-set-key "\C-Xk" 'server-edit)) (add-hook 'mail-mode-hook 'my-mail-mode-hook) =C2=A0 (add-to-list 'auto-mode-alist '(".*mutt.*" . message-mode))=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0 =C2=A0 =C2=A0 (setq mail-header-separator "")=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 = =C2=A0 =C2=A0 (add-hook 'message-mode-hook =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 'turn-on-auto-fill =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (function =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (lambda () =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (p= rogn =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 (local-unset-key "\C-c\C-c") =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 (define-key message-mode-map "\C-c\C-c" '(lambda () =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 "save and exit quickly" =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (interactive) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (save-buffer) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (server-edit))))))) ;; define a function that runs the given command line (defun email-cleanup () =C2=A0=C2=A0 (call-process-shell-command "for f in /tmp/mutt-* ;do email-pr= ocess $f ;done")) ;; add the above function to the hook (add-hook 'kill-emacs-hook #'email-cleanup) ;;https://endlessparentheses.com/ispell-and-abbrev-the-perfect-auto-correct= .html (define-key ctl-x-map "\C-i" =C2=A0 #'endless/ispell-word-then-abbrev) (defun endless/simple-get-word () =C2=A0 (car-safe (save-excursion (ispell-get-word nil)))) (defun endless/ispell-word-then-abbrev (p) =C2=A0 "Call `ispell-word', then create an abbrev for it. With prefix P, create local abbrev. Otherwise it will be global. If there's nothing wrong with the word at point, keep looking for a typo until the beginning of buffer. You can skip typos you don't want to fix with `SPC', and you can abort completely with `C-g'." =C2=A0 (interactive "P") =C2=A0 (let (bef aft) =C2=A0=C2=A0=C2=A0 (save-excursion =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (while (if (setq bef (endless/simple-get-wor= d)) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 ;; Word was corrected or used quit. =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 (if (ispell-word nil 'quiet) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 nil ; End the loop. =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ;; Also end if we reach `bob'. =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (not (bobp))) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 ;; If there's no word at point, keep looking =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 ;; until `bob'. =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 (not (bobp))) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (backward-word) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (backward-char)) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (setq aft (endless/simple-get-word))) =C2=A0=C2=A0=C2=A0 (if (and aft bef (not (equal aft bef))) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (let ((aft (downcase aft)) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 (bef (downcase bef))) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (define-abbrev =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (if p lo= cal-abbrev-table global-abbrev-table) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bef aft) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (message "\"%s\" now= expands to \"%s\" %sally" =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bef aft (if p "loc" "glob"))) =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (user-error "No typo at or before point")))) (setq save-abbrevs 'silently) (setq-default abbrev-mode t) ;;https://bugzilla.redhat.com/show_bug.cgi?id=3D2109745#38