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 18:05:35 +0000 (UTC) Message-ID: <1378865739.317522.1699812335470@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> <94450637.716536.1699810755091@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="3640"; 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 19:06:45 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 1r2Er6-0000jn-Vk for geh-help-gnu-emacs@m.gmane-mx.org; Sun, 12 Nov 2023 19:06:45 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1r2EqE-0006UX-0F; Sun, 12 Nov 2023 13:05:50 -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 1r2EqB-0006U1-QA for help-gnu-emacs@gnu.org; Sun, 12 Nov 2023 13:05:47 -0500 Original-Received: from sonic306-21.consmr.mail.ne1.yahoo.com ([66.163.189.83]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1r2Eq8-0002QT-01 for help-gnu-emacs@gnu.org; Sun, 12 Nov 2023 13:05:46 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1699812340; bh=Iks85ljlNMTXVXOcjjBknaXPA8O+0yLSX/lDBjM4EFI=; h=Date:From:To:In-Reply-To:References:Subject:From:Subject:Reply-To; b=OmAqbXB89aH5Sj08U7ZQQRXfAidZ9tjU4b3d8ebcBxjv+gJnO9LvWvF4UmuRKAbXMYIHF1+Cj9zUlFAdaPGUrWoH+y9L9O717VyJ57PxDUmY0o01p4R+8dKsnQhJl5ezad3DxkY67zLkMbb/vpUxEzDWvFvo4kyDR6pU+peOjYQFkoxznThZUrQam/ED5QGzFaW4HymSxaHhPU5T6DhXfrTA9I3v5gB7U3iM+B0dJ16yaZt6DOMdOGyaRu/ch0fYSpZVm6bgxY+K9b6psQWXsjEXRd36dyMBz6vc/nlcKXMdlXVcPIXryshgWWBycK9dMEniBh9MddQay0z0A6nrZg== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1699812340; bh=HG9uhmGzGeV4T9EbhgZlgnXYvYQCUerqHzNeKEio1HZ=; h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=cDWS/pqzvIP1iOEc6IechEHO5nxKZ/J1F0jJ3M+pnxyFpuJM1he9tEBErSQnHk4WYMGjTAEFxi6WvxXMPWinuQnZFOYWNDb3qKqrzoBlIv3agCG55iDTYdvpYvk5CNUC4rZbNYrcUy6SWiz7S0kXsm92n/YfXVsgbXYqb7nRGVdaZ5G3doMYsyakVgGR52GsrSvrC5/CIVyCtrI9h6PkNVBV7HmWG28o0uVTbTKzhZimURVUUdQT2AClDw+b8E7Q1I3AMmMhLhaLV4NpiEAcj9TeYfdiEVVSl0SlxaEb+LNJEbCEZ4q7s86IhKx0NVgZuBDQKaKTRT967K1aniCvqA== X-YMail-OSG: wojS6TUVM1kB.vOAPKehqUN.ncN4amkv5ta47uFe4RyciLKuwQAk9HcYe6JHsjs q4cztx9hIVci_kTPdLbIbWKjiP5Zo5W.Qf4VTrXXsjOyDIBxy0VarVqOWjauI7AZoR18yrrdVMPJ iQZCEEn1GvrTVPsF_S9OEGTllAGicc.zg5kEFcnrHal4iw6MHlPlQc68wcKXwbg43Jeii0V4.An5 Vm_GN2KrZRwXU4a61N9CSZlMzF1FcUVYRhGKet2R2tiqrzVqROJtccODd_pZnXQ7wwAGZ80IjT2s pW7xvzWDtJEexk.twRl70mkemvmamDClvXW52xDpTGTwPwbMvTOBLyytsnpBSZevhcUtjUEa5Rct xPWOkh32Ntx5gKI.AlENM7TgGCjJp082sraPnG8n5T7drCamdJqR06SQjwC8PJ6AIqYi1D2P5ZIm HuEqCrgAMLp9tR3K8wnRDcM_b1TJ1.pVJWW0jKnqeNuI5zyKgERpgqWtThXgNJfaTi4LaVGGiRzP bx0WC4IXFPFpcvRy8zjSc4lMNLSrfPiBLfW8.zx2seyVJg0r83ZuXYLcTjqQ6F1Npr7aAG8ANEt_ 3MDM7qGBJa6vFF4rA1XyBffcwhu7JOnT7Ma7AlWtkw9zPBS7xzwLlJPGiGfaypdhRTdlBH3Wl6W3 177Ifx2HvWJxc0Q0Oxb_DjSH1VT2JOEANvjE1.miYq4RzdREtQvTRnFBCTnIsukKU4KQ6EsvK5Qq Ul0WcUg_aC0Fli4XSK7R4kesSoS3dOGakYrV8Gvjfj30raujB35ElxS8kpgNXFRBIjM78skC245h 3l1f0k7UoXXkepzN5z_l99pT0MO05QbD4rf.bapr4V X-Sonic-MF: X-Sonic-ID: 5e7d273e-d9a9-405b-9f07-a37e79f831c5 Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic306.consmr.mail.ne1.yahoo.com with HTTP; Sun, 12 Nov 2023 18:05:40 +0000 In-Reply-To: <94450637.716536.1699810755091@mail.yahoo.com> X-Mailer: WebService/1.1.21896 YMailNorrin Received-SPF: pass client-ip=66.163.189.83; envelope-from=itsme_410@yahoo.com; helo=sonic306-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:145494 Archived-At: Just to update on some more things I tried, to not much use, and that is, I= removed both my .emacs and .emacs.d directories. However, the behavior of nothing loading persists when I do not use `emacs = -Q` but only `emacs`. Also, exiting creates=C2=A0 a file in: .emacs.d/eln-cache/29.1-4c106e1f whi= ch is as follows: $ file subr--trampoline-64656c6574652d63686172_delete_char_0.eln subr--trampoline-64656c6574652d63686172_delete_char_0.eln: ELF 64-bit LSB s= hared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]= =3D7f26b8d38ee003d7f505b345aabb3e85734886c8, not stripped I don't know what this is, or what to do with this. It may be a Fedora 39 problem, of course, but thanks for any further sugges= tions and help. On Sunday, November 12, 2023 at 11:39:15 AM CST, Globe Trotter wrote:=20 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