* Generality of defvar @ 2022-07-26 20:35 carlmarcos--- via Users list for the GNU Emacs text editor 2022-07-26 23:01 ` Philip Kaludercic ` (2 more replies) 0 siblings, 3 replies; 27+ messages in thread From: carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-07-26 20:35 UTC (permalink / raw) To: Help Gnu Emacs Have been looking into defvar and noticed the generality of its use (defvar aname t) (defvar bname nil) (defvar cname 1) (defvar dname "text") Then I can do (when aname (setq debug-on-error t)) (when bname (setq debug-on-error nil)) Is this correct? ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-26 20:35 Generality of defvar carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-07-26 23:01 ` Philip Kaludercic [not found] ` <87r127h40s.fsf@posteo.net-N7wjq17--3-2> 2022-07-26 23:16 ` Emanuel Berg 2 siblings, 0 replies; 27+ messages in thread From: Philip Kaludercic @ 2022-07-26 23:01 UTC (permalink / raw) To: carlmarcos--- via Users list for the GNU Emacs text editor; +Cc: carlmarcos carlmarcos--- via Users list for the GNU Emacs text editor <help-gnu-emacs@gnu.org> writes: > Have been looking into defvar and noticed the generality of its use > > (defvar aname t) > (defvar bname nil) > (defvar cname 1) > (defvar dname "text") > > Then I can do > > (when aname (setq debug-on-error t)) > (when bname (setq debug-on-error nil)) > > Is this correct? You can /do/ it, but what do you /want/ to archive? ^ permalink raw reply [flat|nested] 27+ messages in thread
[parent not found: <87r127h40s.fsf@posteo.net-N7wjq17--3-2>]
* Re: Generality of defvar [not found] ` <87r127h40s.fsf@posteo.net-N7wjq17--3-2> @ 2022-07-26 23:10 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-07-27 7:29 ` Thibaut Verron [not found] ` <CAFsi02SEVCEjGNoQ6vPZvMw7d5F39JZAAPCR5VOUnzQDUERkQA@mail.gmail.com-N7yZ2U2----2> 0 siblings, 2 replies; 27+ messages in thread From: carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-07-26 23:10 UTC (permalink / raw) To: Philip Kaludercic Cc: carlmarcos--- via Users list for the GNU Emacs text editor Jul 26, 2022, 23:01 by philipk@posteo.net: > carlmarcos--- via Users list for the GNU Emacs text editor > <help-gnu-emacs@gnu.org> writes: > >> Have been looking into defvar and noticed the generality of its use >> >> (defvar aname t) >> (defvar bname nil) >> (defvar cname 1) >> (defvar dname "text") >> >> Then I can do >> >> (when aname (setq debug-on-error t)) >> (when bname (setq debug-on-error nil)) >> >> Is this correct? >> > > You can /do/ it, but what do you /want/ to archive? > Want to use a defvar to enable or disable some functionality using `when', such as enabling error diagnostics with the command (when myopt (setq debug-on-error t)) ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-26 23:10 ` carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-07-27 7:29 ` Thibaut Verron [not found] ` <CAFsi02SEVCEjGNoQ6vPZvMw7d5F39JZAAPCR5VOUnzQDUERkQA@mail.gmail.com-N7yZ2U2----2> 1 sibling, 0 replies; 27+ messages in thread From: Thibaut Verron @ 2022-07-27 7:29 UTC (permalink / raw) To: carlmarcos Cc: Philip Kaludercic, carlmarcos--- via Users list for the GNU Emacs text editor Le mer. 27 juil. 2022 à 01:11, carlmarcos--- via Users list for the GNU Emacs text editor <help-gnu-emacs@gnu.org> a écrit : > Jul 26, 2022, 23:01 by philipk@posteo.net: > > > carlmarcos--- via Users list for the GNU Emacs text editor > > <help-gnu-emacs@gnu.org> writes: > > > >> Have been looking into defvar and noticed the generality of its use > >> > >> (defvar aname t) > >> (defvar bname nil) > >> (defvar cname 1) > >> (defvar dname "text") > >> > >> Then I can do > >> > >> (when aname (setq debug-on-error t)) > >> (when bname (setq debug-on-error nil)) > >> > >> Is this correct? > >> > > > > You can /do/ it, but what do you /want/ to archive? > > > Want to use a defvar to enable or disable some functionality using `when', > such as enabling error diagnostics with the command > > (when myopt (setq debug-on-error t)) > In principle yes, but for this example there already is a variable for that purpose, debug-on-error. So you might as well just use it as your control variable, and use conditionals like (when debug-on-error ...) or (unless debug-on-error ...) if you want to do more things. Also, those lines: (when aname (setq debug-on-error t)) (when bname (setq debug-on-error nil)) are equivalent to (setq debug-on-error (and aname (not bname))) I don't really see the point of having two variables hold opposite values. Wouldn't (if aname (setq debug-on-error t) (setq debug-on-error nil)) or equivalently (setq debug-on-error aname) be more what you want? ^ permalink raw reply [flat|nested] 27+ messages in thread
[parent not found: <CAFsi02SEVCEjGNoQ6vPZvMw7d5F39JZAAPCR5VOUnzQDUERkQA@mail.gmail.com-N7yZ2U2----2>]
* Re: Generality of defvar [not found] ` <CAFsi02SEVCEjGNoQ6vPZvMw7d5F39JZAAPCR5VOUnzQDUERkQA@mail.gmail.com-N7yZ2U2----2> @ 2022-07-27 12:18 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-07-27 12:34 ` Emanuel Berg 0 siblings, 1 reply; 27+ messages in thread From: carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-07-27 12:18 UTC (permalink / raw) To: Thibaut Verron Cc: Philip Kaludercic, carlmarcos--- via Users list for the GNU Emacs text editor Jul 27, 2022, 07:29 by thibaut.verron@gmail.com: > Le mer. 27 juil. 2022 à 01:11, carlmarcos--- via Users list for the GNU > Emacs text editor <help-gnu-emacs@gnu.org> a écrit : > >> Jul 26, 2022, 23:01 by philipk@posteo.net: >> >> > carlmarcos--- via Users list for the GNU Emacs text editor >> > <help-gnu-emacs@gnu.org> writes: >> > >> >> Have been looking into defvar and noticed the generality of its use >> >> >> >> (defvar aname t) >> >> (defvar bname nil) >> >> (defvar cname 1) >> >> (defvar dname "text") >> >> >> >> Then I can do >> >> >> >> (when aname (setq debug-on-error t)) >> >> (when bname (setq debug-on-error nil)) >> >> >> >> Is this correct? >> >> >> > >> > You can /do/ it, but what do you /want/ to archive? >> > >> Want to use a defvar to enable or disable some functionality using `when', >> such as enabling error diagnostics with the command >> >> (when myopt (setq debug-on-error t)) >> > > In principle yes, but for this example there already is a variable for that > purpose, debug-on-error. > So you might as well just use it as your control variable, and use > conditionals like (when debug-on-error ...) or (unless debug-on-error ...) > if you want to do more things. > > Also, those lines: > > (when aname (setq debug-on-error t)) > (when bname (setq debug-on-error nil)) > > are equivalent to > > (setq debug-on-error (and aname (not bname))) > > I don't really see the point of having two variables hold opposite values. > Wouldn't > > (if aname > (setq debug-on-error t) > (setq debug-on-error nil)) > > or equivalently > > (setq debug-on-error aname) > > be more what you want? > Thank you very much for your elaboration. This is what I got right now (defvar error-diagnostics t "Enable error diagnostics if non-nil.") (defun enable-error-diagnostics () "Enable error diagnostics with backtrace buffer. One can exit the debugger with the q command." (setq debug-on-error t) (setq debug-ignored-errors t)) (when error-diagnostics (enable-error-diagnostics)) ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-27 12:18 ` carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-07-27 12:34 ` Emanuel Berg 2022-07-27 12:52 ` carlmarcos--- via Users list for the GNU Emacs text editor 0 siblings, 1 reply; 27+ messages in thread From: Emanuel Berg @ 2022-07-27 12:34 UTC (permalink / raw) To: help-gnu-emacs carlmarcos--- via Users list for the GNU Emacs text editor wrote: > (defun enable-error-diagnostics () > "Enable error diagnostics with backtrace buffer. > One can exit the debugger with the q command." You can refer to keys in docstrings like this: \\[forward-word] That way, it isn't hardcoded so if later changed/configured it'll still show the right key. -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-27 12:34 ` Emanuel Berg @ 2022-07-27 12:52 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-07-27 13:21 ` Thibaut Verron 0 siblings, 1 reply; 27+ messages in thread From: carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-07-27 12:52 UTC (permalink / raw) To: Emanuel Berg; +Cc: help-gnu-emacs -- Sent with Tutanota, enjoy secure & ad-free emails. Jul 27, 2022, 12:34 by incal@dataswamp.org: > carlmarcos--- via Users list for the GNU Emacs text editor wrote: > >> (defun enable-error-diagnostics () >> "Enable error diagnostics with backtrace buffer. >> One can exit the debugger with the q command." >> > > You can refer to keys in docstrings like this: > > \\[forward-word] > > That way, it isn't hardcoded so if later changed/configured > it'll still show the right key. > How can I figure out what key to use in the docstring for exiting the backtrace buffer? ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-27 12:52 ` carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-07-27 13:21 ` Thibaut Verron 2022-07-27 13:24 ` carlmarcos--- via Users list for the GNU Emacs text editor 0 siblings, 1 reply; 27+ messages in thread From: Thibaut Verron @ 2022-07-27 13:21 UTC (permalink / raw) To: carlmarcos; +Cc: Emanuel Berg, help-gnu-emacs Le mer. 27 juil. 2022 à 14:52, carlmarcos--- via Users list for the GNU Emacs text editor <help-gnu-emacs@gnu.org> a écrit : > > > -- > Sent with Tutanota, enjoy secure & ad-free emails. > > > > Jul 27, 2022, 12:34 by incal@dataswamp.org: > > > carlmarcos--- via Users list for the GNU Emacs text editor wrote: > > > >> (defun enable-error-diagnostics () > >> "Enable error diagnostics with backtrace buffer. > >> One can exit the debugger with the q command." > >> > > > > You can refer to keys in docstrings like this: > > > > \\[forward-word] > > > > That way, it isn't hardcoded so if later changed/configured > > it'll still show the right key. > > > How can I figure out what key to use in the docstring for exiting the > backtrace buffer? > The function bound to 'q' is quit-window. But since this function doesn't have a global binding, you need to tell the docstring to use the appropriate keymap to look the binding up. Something like "Enable error diagnostics with backtrace buffer. \\<backtrace-mode-map> (note: this is the part telling emacs where to look for the key) One can exit the debugger with the `quit-window' command (bound to \\[quit-window])." ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-27 13:21 ` Thibaut Verron @ 2022-07-27 13:24 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-07-27 13:47 ` Thibaut Verron 0 siblings, 1 reply; 27+ messages in thread From: carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-07-27 13:24 UTC (permalink / raw) To: Thibaut Verron; +Cc: Emanuel Berg, help-gnu-emacs Jul 27, 2022, 13:21 by thibaut.verron@gmail.com: > Le mer. 27 juil. 2022 à 14:52, carlmarcos--- via Users list for the GNU Emacs text editor <> help-gnu-emacs@gnu.org> > a écrit : > >> >> >> Jul 27, 2022, 12:34 by >> incal@dataswamp.org>> : >> >> > carlmarcos--- via Users list for the GNU Emacs text editor wrote: >> > >> >> (defun enable-error-diagnostics () >> >> "Enable error diagnostics with backtrace buffer. >> >> One can exit the debugger with the q command." >> >> >> > >> > You can refer to keys in docstrings like this: >> > >> > \\[forward-word] >> > >> > That way, it isn't hardcoded so if later changed/configured >> > it'll still show the right key. >> > >> How can I figure out what key to use in the docstring for exiting the backtrace buffer? >> > > The function bound to 'q' is quit-window. But since this function doesn't have a global binding, you need to tell the docstring to use the appropriate keymap to look the binding up. > > Something like > > "Enable error diagnostics with backtrace buffer. > > \\<backtrace-mode-map> (note: this is the part telling emacs where to look for the key) > One can exit the debugger with the `quit-window' command (bound to \\[quit-window])." > > Although quit-window is bound to q, the command \\[quit-window] just inserts M-x quit-window, rather than q. ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-27 13:24 ` carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-07-27 13:47 ` Thibaut Verron 2022-07-27 16:29 ` Christopher Dimech 0 siblings, 1 reply; 27+ messages in thread From: Thibaut Verron @ 2022-07-27 13:47 UTC (permalink / raw) To: carlmarcos; +Cc: Emanuel Berg, help-gnu-emacs Le mer. 27 juil. 2022 à 15:24, <carlmarcos@tutanota.com> a écrit : > > Jul 27, 2022, 13:21 by thibaut.verron@gmail.com: > > > Le mer. 27 juil. 2022 à 14:52, carlmarcos--- via Users list for the GNU > Emacs text editor <> help-gnu-emacs@gnu.org> > a écrit : > > > >> > >> > >> Jul 27, 2022, 12:34 by >> incal@dataswamp.org>> : > >> > >> > carlmarcos--- via Users list for the GNU Emacs text editor wrote: > >> > > >> >> (defun enable-error-diagnostics () > >> >> "Enable error diagnostics with backtrace buffer. > >> >> One can exit the debugger with the q command." > >> >> > >> > > >> > You can refer to keys in docstrings like this: > >> > > >> > \\[forward-word] > >> > > >> > That way, it isn't hardcoded so if later changed/configured > >> > it'll still show the right key. > >> > > >> How can I figure out what key to use in the docstring for exiting the > backtrace buffer? > >> > > > > The function bound to 'q' is quit-window. But since this function > doesn't have a global binding, you need to tell the docstring to use the > appropriate keymap to look the binding up. > > > > Something like > > > > "Enable error diagnostics with backtrace buffer. > > > > \\<backtrace-mode-map> (note: this is the part telling emacs where to > look for the key) > > One can exit the debugger with the `quit-window' command (bound to > \\[quit-window])." > > > > > Although quit-window is bound to q, the command \\[quit-window] just > inserts > M-x quit-window, rather than q. > Yes, that's precisely because quit-window doesn't have a global binding. You need to add \\<backtrace-mode-map> somewhere in the docstring to tell emacs to show bindings for the backtrace buffers, rather than global bindings. Best wishes, Thibaut ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-27 13:47 ` Thibaut Verron @ 2022-07-27 16:29 ` Christopher Dimech 2022-07-27 16:39 ` Thibaut Verron 0 siblings, 1 reply; 27+ messages in thread From: Christopher Dimech @ 2022-07-27 16:29 UTC (permalink / raw) To: thibaut.verron; +Cc: carlmarcos, Emanuel Berg, help-gnu-emacs > Sent: Thursday, July 28, 2022 at 1:47 AM > From: "Thibaut Verron" <thibaut.verron@gmail.com> > To: carlmarcos@tutanota.com > Cc: "Emanuel Berg" <incal@dataswamp.org>, "help-gnu-emacs" <help-gnu-emacs@gnu.org> > Subject: Re: Generality of defvar > > Le mer. 27 juil. 2022 à 15:24, <carlmarcos@tutanota.com> a écrit : > > > > > Jul 27, 2022, 13:21 by thibaut.verron@gmail.com: > > > > > Le mer. 27 juil. 2022 à 14:52, carlmarcos--- via Users list for the GNU > > Emacs text editor <> help-gnu-emacs@gnu.org> > a écrit : > > > > > >> > > >> > > >> Jul 27, 2022, 12:34 by >> incal@dataswamp.org>> : > > >> > > >> > carlmarcos--- via Users list for the GNU Emacs text editor wrote: > > >> > > > >> >> (defun enable-error-diagnostics () > > >> >> "Enable error diagnostics with backtrace buffer. > > >> >> One can exit the debugger with the q command." > > >> >> > > >> > > > >> > You can refer to keys in docstrings like this: > > >> > > > >> > \\[forward-word] > > >> > > > >> > That way, it isn't hardcoded so if later changed/configured > > >> > it'll still show the right key. > > >> > > > >> How can I figure out what key to use in the docstring for exiting the > > backtrace buffer? > > >> > > > > > > The function bound to 'q' is quit-window. But since this function > > doesn't have a global binding, you need to tell the docstring to use the > > appropriate keymap to look the binding up. > > > > > > Something like > > > > > > "Enable error diagnostics with backtrace buffer. > > > > > > \\<backtrace-mode-map> (note: this is the part telling emacs where to > > look for the key) > > > One can exit the debugger with the `quit-window' command (bound to > > \\[quit-window])." > > > > > > > > Although quit-window is bound to q, the command \\[quit-window] just > > inserts > > M-x quit-window, rather than q. > > > > Yes, that's precisely because quit-window doesn't have a global binding. > You need to add \\<backtrace-mode-map> somewhere in the docstring to tell > emacs to show bindings for the backtrace buffers, rather than global > bindings. > > Best wishes, > Thibaut Sounds good advice, but the result could be Uses keymap ‘backtrace-mode-map’, which is not currently defined. ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-27 16:29 ` Christopher Dimech @ 2022-07-27 16:39 ` Thibaut Verron 2022-07-28 6:42 ` Christopher Dimech 0 siblings, 1 reply; 27+ messages in thread From: Thibaut Verron @ 2022-07-27 16:39 UTC (permalink / raw) To: Christopher Dimech; +Cc: carlmarcos, Emanuel Berg, help-gnu-emacs Le mer. 27 juil. 2022 à 18:29, Christopher Dimech <dimech@gmx.com> a écrit : > > > > Sent: Thursday, July 28, 2022 at 1:47 AM > > From: "Thibaut Verron" <thibaut.verron@gmail.com> > > To: carlmarcos@tutanota.com > > Cc: "Emanuel Berg" <incal@dataswamp.org>, "help-gnu-emacs" < > help-gnu-emacs@gnu.org> > > Subject: Re: Generality of defvar > > > > Le mer. 27 juil. 2022 à 15:24, <carlmarcos@tutanota.com> a écrit : > > > > > > > > Jul 27, 2022, 13:21 by thibaut.verron@gmail.com: > > > > > > > Le mer. 27 juil. 2022 à 14:52, carlmarcos--- via Users list for the > GNU > > > Emacs text editor <> help-gnu-emacs@gnu.org> > a écrit : > > > > > > > >> > > > >> > > > >> Jul 27, 2022, 12:34 by >> incal@dataswamp.org>> : > > > >> > > > >> > carlmarcos--- via Users list for the GNU Emacs text editor wrote: > > > >> > > > > >> >> (defun enable-error-diagnostics () > > > >> >> "Enable error diagnostics with backtrace buffer. > > > >> >> One can exit the debugger with the q command." > > > >> >> > > > >> > > > > >> > You can refer to keys in docstrings like this: > > > >> > > > > >> > \\[forward-word] > > > >> > > > > >> > That way, it isn't hardcoded so if later changed/configured > > > >> > it'll still show the right key. > > > >> > > > > >> How can I figure out what key to use in the docstring for exiting > the > > > backtrace buffer? > > > >> > > > > > > > > The function bound to 'q' is quit-window. But since this function > > > doesn't have a global binding, you need to tell the docstring to use > the > > > appropriate keymap to look the binding up. > > > > > > > > Something like > > > > > > > > "Enable error diagnostics with backtrace buffer. > > > > > > > > \\<backtrace-mode-map> (note: this is the part telling emacs where to > > > look for the key) > > > > One can exit the debugger with the `quit-window' command (bound to > > > \\[quit-window])." > > > > > > > > > > > Although quit-window is bound to q, the command \\[quit-window] just > > > inserts > > > M-x quit-window, rather than q. > > > > > > > Yes, that's precisely because quit-window doesn't have a global binding. > > You need to add \\<backtrace-mode-map> somewhere in the docstring to tell > > emacs to show bindings for the backtrace buffers, rather than global > > bindings. > > > > Best wishes, > > Thibaut > > Sounds good advice, but the result could be > > Uses keymap ‘backtrace-mode-map’, which is not currently defined. > My bad, it should have been debugger-mode-map. ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-27 16:39 ` Thibaut Verron @ 2022-07-28 6:42 ` Christopher Dimech 2022-07-28 7:06 ` Thibaut Verron 0 siblings, 1 reply; 27+ messages in thread From: Christopher Dimech @ 2022-07-28 6:42 UTC (permalink / raw) To: thibaut.verron; +Cc: carlmarcos, Emanuel Berg, help-gnu-emacs Sent: Thursday, July 28, 2022 at 4:39 AM From: "Thibaut Verron" <thibaut.verron@gmail.com> To: "Christopher Dimech" <dimech@gmx.com> Cc: carlmarcos@tutanota.com, "Emanuel Berg" <incal@dataswamp.org>, "help-gnu-emacs" <help-gnu-emacs@gnu.org> Subject: Re: Generality of defvar Le mer. 27 juil. 2022 à 18:29, Christopher Dimech <[1]dimech@gmx.com> a écrit : > Sent: Thursday, July 28, 2022 at 1:47 AM > From: "Thibaut Verron" <[2]thibaut.verron@gmail.com> > To: [3]carlmarcos@tutanota.com > Cc: "Emanuel Berg" <[4]incal@dataswamp.org>, "help-gnu-emacs" <[5]help-gnu-emacs@gnu.org> > Subject: Re: Generality of defvar > > Le mer. 27 juil. 2022 à 15:24, <[6]carlmarcos@tutanota.com> a écrit : > > > > > Jul 27, 2022, 13:21 by [7]thibaut.verron@gmail.com: > > > > > Le mer. 27 juil. 2022 à 14:52, carlmarcos--- via Users list for the GNU > > Emacs text editor <> [8]help-gnu-emacs@gnu.org> > a écrit : > > > > > >> > > >> > > >> Jul 27, 2022, 12:34 by >> [9]incal@dataswamp.org>> : > > >> > > >> > carlmarcos--- via Users list for the GNU Emacs text editor wrote: > > >> > > > >> >> (defun enable-error-diagnostics () > > >> >> "Enable error diagnostics with backtrace buffer. > > >> >> One can exit the debugger with the q command." > > >> >> > > >> > > > >> > You can refer to keys in docstrings like this: > > >> > > > >> > \\[forward-word] > > >> > > > >> > That way, it isn't hardcoded so if later changed/configured > > >> > it'll still show the right key. > > >> > > > >> How can I figure out what key to use in the docstring for exiting the > > backtrace buffer? > > >> > > > > > > The function bound to 'q' is quit-window. But since this function > > doesn't have a global binding, you need to tell the docstring to use the > > appropriate keymap to look the binding up. > > > > > > Something like > > > > > > "Enable error diagnostics with backtrace buffer. > > > > > > \\<backtrace-mode-map> (note: this is the part telling emacs where to > > look for the key) > > > One can exit the debugger with the `quit-window' command (bound to > > \\[quit-window])." > > > > > > > > Although quit-window is bound to q, the command \\[quit-window] just > > inserts > > M-x quit-window, rather than q. > > > > Yes, that's precisely because quit-window doesn't have a global binding. > You need to add \\<backtrace-mode-map> somewhere in the docstring to tell > emacs to show bindings for the backtrace buffers, rather than global > bindings. > > Best wishes, > Thibaut Sounds good advice, but the result could be Uses keymap ‘backtrace-mode-map’, which is not currently defined. My bad, it should have been debugger-mode-map. Not quite right yet. References 1. mailto:dimech@gmx.com 2. mailto:thibaut.verron@gmail.com 3. mailto:carlmarcos@tutanota.com 4. mailto:incal@dataswamp.org 5. mailto:help-gnu-emacs@gnu.org 6. mailto:carlmarcos@tutanota.com 7. mailto:thibaut.verron@gmail.com 8. mailto:help-gnu-emacs@gnu.org 9. mailto:incal@dataswamp.org ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-28 6:42 ` Christopher Dimech @ 2022-07-28 7:06 ` Thibaut Verron 2022-07-28 7:34 ` Christopher Dimech 0 siblings, 1 reply; 27+ messages in thread From: Thibaut Verron @ 2022-07-28 7:06 UTC (permalink / raw) To: Christopher Dimech; +Cc: carlmarcos, Emanuel Berg, help-gnu-emacs Le jeu. 28 juil. 2022 à 08:42, Christopher Dimech <dimech@gmx.com> a écrit : > > *Sent:* Thursday, July 28, 2022 at 4:39 AM > *From:* "Thibaut Verron" <thibaut.verron@gmail.com> > *To:* "Christopher Dimech" <dimech@gmx.com> > *Cc:* carlmarcos@tutanota.com, "Emanuel Berg" <incal@dataswamp.org>, > "help-gnu-emacs" <help-gnu-emacs@gnu.org> > *Subject:* Re: Generality of defvar > Le mer. 27 juil. 2022 à 18:29, Christopher Dimech <dimech@gmx.com> a > écrit : > >> >> >> > Sent: Thursday, July 28, 2022 at 1:47 AM >> > From: "Thibaut Verron" <thibaut.verron@gmail.com> >> > To: carlmarcos@tutanota.com >> > Cc: "Emanuel Berg" <incal@dataswamp.org>, "help-gnu-emacs" < >> help-gnu-emacs@gnu.org> >> > Subject: Re: Generality of defvar >> > >> > Le mer. 27 juil. 2022 à 15:24, <carlmarcos@tutanota.com> a écrit : >> > >> > > >> > > Jul 27, 2022, 13:21 by thibaut.verron@gmail.com: >> > > >> > > > Le mer. 27 juil. 2022 à 14:52, carlmarcos--- via Users list for the >> GNU >> > > Emacs text editor <> help-gnu-emacs@gnu.org> > a écrit : >> > > > >> > > >> >> > > >> >> > > >> Jul 27, 2022, 12:34 by >> incal@dataswamp.org>> : >> > > >> >> > > >> > carlmarcos--- via Users list for the GNU Emacs text editor >> wrote: >> > > >> > >> > > >> >> (defun enable-error-diagnostics () >> > > >> >> "Enable error diagnostics with backtrace buffer. >> > > >> >> One can exit the debugger with the q command." >> > > >> >> >> > > >> > >> > > >> > You can refer to keys in docstrings like this: >> > > >> > >> > > >> > \\[forward-word] >> > > >> > >> > > >> > That way, it isn't hardcoded so if later changed/configured >> > > >> > it'll still show the right key. >> > > >> > >> > > >> How can I figure out what key to use in the docstring for exiting >> the >> > > backtrace buffer? >> > > >> >> > > > >> > > > The function bound to 'q' is quit-window. But since this function >> > > doesn't have a global binding, you need to tell the docstring to use >> the >> > > appropriate keymap to look the binding up. >> > > > >> > > > Something like >> > > > >> > > > "Enable error diagnostics with backtrace buffer. >> > > > >> > > > \\<backtrace-mode-map> (note: this is the part telling emacs where >> to >> > > look for the key) >> > > > One can exit the debugger with the `quit-window' command (bound to >> > > \\[quit-window])." >> > > > >> > > > >> > > Although quit-window is bound to q, the command \\[quit-window] just >> > > inserts >> > > M-x quit-window, rather than q. >> > > >> > >> > Yes, that's precisely because quit-window doesn't have a global binding. >> > You need to add \\<backtrace-mode-map> somewhere in the docstring to >> tell >> > emacs to show bindings for the backtrace buffers, rather than global >> > bindings. >> > >> > Best wishes, >> > Thibaut >> >> Sounds good advice, but the result could be >> >> Uses keymap ‘backtrace-mode-map’, which is not currently defined. > > > My bad, it should have been debugger-mode-map. > > > Not quite right yet. > I guess one should also put (require 'debug) at some point along with the function definition? Best wishes, Thibaut ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-28 7:06 ` Thibaut Verron @ 2022-07-28 7:34 ` Christopher Dimech 2022-07-28 9:37 ` thibaut.verron 0 siblings, 1 reply; 27+ messages in thread From: Christopher Dimech @ 2022-07-28 7:34 UTC (permalink / raw) To: thibaut.verron; +Cc: carlmarcos, Emanuel Berg, help-gnu-emacs Sent: Thursday, July 28, 2022 at 7:06 PM From: "Thibaut Verron" <thibaut.verron@gmail.com> To: "Christopher Dimech" <dimech@gmx.com> Cc: carlmarcos@tutanota.com, "Emanuel Berg" <incal@dataswamp.org>, "help-gnu-emacs" <help-gnu-emacs@gnu.org> Subject: Re: Generality of defvar Le jeu. 28 juil. 2022 à 08:42, Christopher Dimech <[1]dimech@gmx.com> a écrit : Sent: Thursday, July 28, 2022 at 4:39 AM From: "Thibaut Verron" <[2]thibaut.verron@gmail.com> To: "Christopher Dimech" <[3]dimech@gmx.com> Cc: [4]carlmarcos@tutanota.com, "Emanuel Berg" <[5]incal@dataswamp.org>, "help-gnu-emacs" <[6]help-gnu-emacs@gnu.org> Subject: Re: Generality of defvar Le mer. 27 juil. 2022 à 18:29, Christopher Dimech <[7]dimech@gmx.com> a écrit : > Sent: Thursday, July 28, 2022 at 1:47 AM > From: "Thibaut Verron" <[8]thibaut.verron@gmail.com> > To: [9]carlmarcos@tutanota.com > Cc: "Emanuel Berg" <[10]incal@dataswamp.org>, "help-gnu-emacs" <[11]help-gnu-emacs@gnu.org> > Subject: Re: Generality of defvar > > Le mer. 27 juil. 2022 à 15:24, <[12]carlmarcos@tutanota.com> a écrit : > > > > > Jul 27, 2022, 13:21 by [13]thibaut.verron@gmail.com: > > > > > Le mer. 27 juil. 2022 à 14:52, carlmarcos--- via Users list for the GNU > > Emacs text editor <> [14]help-gnu-emacs@gnu.org> > a écrit : > > > > > >> > > >> > > >> Jul 27, 2022, 12:34 by >> [15]incal@dataswamp.org>> : > > >> > > >> > carlmarcos--- via Users list for the GNU Emacs text editor wrote: > > >> > > > >> >> (defun enable-error-diagnostics () > > >> >> "Enable error diagnostics with backtrace buffer. > > >> >> One can exit the debugger with the q command." > > >> >> > > >> > > > >> > You can refer to keys in docstrings like this: > > >> > > > >> > \\[forward-word] > > >> > > > >> > That way, it isn't hardcoded so if later changed/configured > > >> > it'll still show the right key. > > >> > > > >> How can I figure out what key to use in the docstring for exiting the > > backtrace buffer? > > >> > > > > > > The function bound to 'q' is quit-window. But since this function > > doesn't have a global binding, you need to tell the docstring to use the > > appropriate keymap to look the binding up. > > > > > > Something like > > > > > > "Enable error diagnostics with backtrace buffer. > > > > > > \\<backtrace-mode-map> (note: this is the part telling emacs where to > > look for the key) > > > One can exit the debugger with the `quit-window' command (bound to > > \\[quit-window])." > > > > > > > > Although quit-window is bound to q, the command \\[quit-window] just > > inserts > > M-x quit-window, rather than q. > > > > Yes, that's precisely because quit-window doesn't have a global binding. > You need to add \\<backtrace-mode-map> somewhere in the docstring to tell > emacs to show bindings for the backtrace buffers, rather than global > bindings. > > Best wishes, > Thibaut Sounds good advice, but the result could be Uses keymap ‘backtrace-mode-map’, which is not currently defined. My bad, it should have been debugger-mode-map. Not quite right yet. I guess one should also put (require 'debug) at some point along with the function definition? Seems more bother than it solves. Cannot see how users would be able to figure all this complication out. References 1. mailto:dimech@gmx.com 2. mailto:thibaut.verron@gmail.com 3. mailto:dimech@gmx.com 4. mailto:carlmarcos@tutanota.com 5. mailto:incal@dataswamp.org 6. mailto:help-gnu-emacs@gnu.org 7. mailto:dimech@gmx.com 8. mailto:thibaut.verron@gmail.com 9. mailto:carlmarcos@tutanota.com 10. mailto:incal@dataswamp.org 11. mailto:help-gnu-emacs@gnu.org 12. mailto:carlmarcos@tutanota.com 13. mailto:thibaut.verron@gmail.com 14. mailto:help-gnu-emacs@gnu.org 15. mailto:incal@dataswamp.org ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-28 7:34 ` Christopher Dimech @ 2022-07-28 9:37 ` thibaut.verron 2022-07-28 13:57 ` Christopher Dimech 0 siblings, 1 reply; 27+ messages in thread From: thibaut.verron @ 2022-07-28 9:37 UTC (permalink / raw) To: Christopher Dimech, carlmarcos, Emanuel Berg, help-gnu-emacs On 28/07/2022 09:34, Christopher Dimech <dimech@gmx.com> wrote: > *Sent:* Thursday, July 28, 2022 at 7:06 PM > *From:* "Thibaut Verron" <thibaut.verron@gmail.com> > *To:* "Christopher Dimech" <dimech@gmx.com> > *Cc:* carlmarcos@tutanota.com, "Emanuel Berg" <incal@dataswamp.org>, > "help-gnu-emacs" <help-gnu-emacs@gnu.org> > *Subject:* Re: Generality of defvar > Le jeu. 28 juil. 2022 à 08:42, Christopher Dimech <dimech@gmx.com > <mailto:dimech@gmx.com>> a écrit : > > *Sent:* Thursday, July 28, 2022 at 4:39 AM > *From:* "Thibaut Verron" <thibaut.verron@gmail.com > <mailto:thibaut.verron@gmail.com>> > *To:* "Christopher Dimech" <dimech@gmx.com <mailto:dimech@gmx.com>> > *Cc:* carlmarcos@tutanota.com <mailto:carlmarcos@tutanota.com>, > "Emanuel Berg" <incal@dataswamp.org <mailto:incal@dataswamp.org>>, > "help-gnu-emacs" <help-gnu-emacs@gnu.org > <mailto:help-gnu-emacs@gnu.org>> > *Subject:* Re: Generality of defvar > Le mer. 27 juil. 2022 à 18:29, Christopher Dimech <dimech@gmx.com > <mailto:dimech@gmx.com>> a écrit : > > > > > Sent: Thursday, July 28, 2022 at 1:47 AM > > From: "Thibaut Verron" <thibaut.verron@gmail.com > <mailto:thibaut.verron@gmail.com>> > > To: carlmarcos@tutanota.com <mailto:carlmarcos@tutanota.com> > > Cc: "Emanuel Berg" <incal@dataswamp.org > <mailto:incal@dataswamp.org>>, "help-gnu-emacs" > <help-gnu-emacs@gnu.org <mailto:help-gnu-emacs@gnu.org>> > > Subject: Re: Generality of defvar > > > > Le mer. 27 juil. 2022 à 15:24, <carlmarcos@tutanota.com > <mailto:carlmarcos@tutanota.com>> a écrit : > > > > > > > > Jul 27, 2022, 13:21 by thibaut.verron@gmail.com > <mailto:thibaut.verron@gmail.com>: > > > > > > > Le mer. 27 juil. 2022 à 14:52, carlmarcos--- via Users > list for the GNU > > > Emacs text editor <> help-gnu-emacs@gnu.org > <mailto:help-gnu-emacs@gnu.org>> > a écrit : > > > > > > > >> > > > >> > > > >> Jul 27, 2022, 12:34 by >> incal@dataswamp.org > <mailto:incal@dataswamp.org>>> : > > > >> > > > >> > carlmarcos--- via Users list for the GNU Emacs text > editor wrote: > > > >> > > > > >> >> (defun enable-error-diagnostics () > > > >> >> "Enable error diagnostics with backtrace buffer. > > > >> >> One can exit the debugger with the q command." > > > >> >> > > > >> > > > > >> > You can refer to keys in docstrings like this: > > > >> > > > > >> > \\[forward-word] > > > >> > > > > >> > That way, it isn't hardcoded so if later > changed/configured > > > >> > it'll still show the right key. > > > >> > > > > >> How can I figure out what key to use in the docstring > for exiting the > > > backtrace buffer? > > > >> > > > > > > > > The function bound to 'q' is quit-window. But since this > function > > > doesn't have a global binding, you need to tell the > docstring to use the > > > appropriate keymap to look the binding up. > > > > > > > > Something like > > > > > > > > "Enable error diagnostics with backtrace buffer. > > > > > > > > \\<backtrace-mode-map> (note: this is the part telling > emacs where to > > > look for the key) > > > > One can exit the debugger with the `quit-window' command > (bound to > > > \\[quit-window])." > > > > > > > > > > > Although quit-window is bound to q, the command > \\[quit-window] just > > > inserts > > > M-x quit-window, rather than q. > > > > > > > Yes, that's precisely because quit-window doesn't have a > global binding. > > You need to add \\<backtrace-mode-map> somewhere in the > docstring to tell > > emacs to show bindings for the backtrace buffers, rather than > global > > bindings. > > > > Best wishes, > > Thibaut > > Sounds good advice, but the result could be > > Uses keymap ‘backtrace-mode-map’, which is not currently defined. > > My bad, it should have been debugger-mode-map. > Not quite right yet. > > I guess one should also put (require 'debug) at some point along with > the function definition? > Seems more bother than it solves. Cannot see how users would be able to > figure all this complication > out. For sure. But it's really a rare situation, and not one that is likely to hit first time users: one has to be writing a function with a docstring, and this docstring has to involve a key bound in a keymap defined in another file, and not loaded by default. Even for users developing their own packages, usually the keymap will be defined in a file loaded at the same time as the function, completely hiding this subtlety. Still, I would almost be tempted to consider this case a bug, and to expect that emacs should autoload debug.el to display the relevant information. Thibaut ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-28 9:37 ` thibaut.verron @ 2022-07-28 13:57 ` Christopher Dimech 0 siblings, 0 replies; 27+ messages in thread From: Christopher Dimech @ 2022-07-28 13:57 UTC (permalink / raw) To: thibaut.verron; +Cc: carlmarcos, Emanuel Berg, help-gnu-emacs > Sent: Thursday, July 28, 2022 at 9:37 PM > From: thibaut.verron@gmail.com > To: "Christopher Dimech" <dimech@gmx.com>, carlmarcos@tutanota.com, "Emanuel Berg" <incal@dataswamp.org>, "help-gnu-emacs" <help-gnu-emacs@gnu.org> > Subject: Re: Generality of defvar > > On 28/07/2022 09:34, Christopher Dimech <dimech@gmx.com> wrote: > > *Sent:* Thursday, July 28, 2022 at 7:06 PM > > *From:* "Thibaut Verron" <thibaut.verron@gmail.com> > > *To:* "Christopher Dimech" <dimech@gmx.com> > > *Cc:* carlmarcos@tutanota.com, "Emanuel Berg" <incal@dataswamp.org>, > > "help-gnu-emacs" <help-gnu-emacs@gnu.org> > > *Subject:* Re: Generality of defvar > > Le jeu. 28 juil. 2022 à 08:42, Christopher Dimech <dimech@gmx.com > > <mailto:dimech@gmx.com>> a écrit : > > > > *Sent:* Thursday, July 28, 2022 at 4:39 AM > > *From:* "Thibaut Verron" <thibaut.verron@gmail.com > > <mailto:thibaut.verron@gmail.com>> > > *To:* "Christopher Dimech" <dimech@gmx.com <mailto:dimech@gmx.com>> > > *Cc:* carlmarcos@tutanota.com <mailto:carlmarcos@tutanota.com>, > > "Emanuel Berg" <incal@dataswamp.org <mailto:incal@dataswamp.org>>, > > "help-gnu-emacs" <help-gnu-emacs@gnu.org > > <mailto:help-gnu-emacs@gnu.org>> > > *Subject:* Re: Generality of defvar > > Le mer. 27 juil. 2022 à 18:29, Christopher Dimech <dimech@gmx.com > > <mailto:dimech@gmx.com>> a écrit : > > > > > > > > > Sent: Thursday, July 28, 2022 at 1:47 AM > > > From: "Thibaut Verron" <thibaut.verron@gmail.com > > <mailto:thibaut.verron@gmail.com>> > > > To: carlmarcos@tutanota.com <mailto:carlmarcos@tutanota.com> > > > Cc: "Emanuel Berg" <incal@dataswamp.org > > <mailto:incal@dataswamp.org>>, "help-gnu-emacs" > > <help-gnu-emacs@gnu.org <mailto:help-gnu-emacs@gnu.org>> > > > Subject: Re: Generality of defvar > > > > > > Le mer. 27 juil. 2022 à 15:24, <carlmarcos@tutanota.com > > <mailto:carlmarcos@tutanota.com>> a écrit : > > > > > > > > > > > Jul 27, 2022, 13:21 by thibaut.verron@gmail.com > > <mailto:thibaut.verron@gmail.com>: > > > > > > > > > Le mer. 27 juil. 2022 à 14:52, carlmarcos--- via Users > > list for the GNU > > > > Emacs text editor <> help-gnu-emacs@gnu.org > > <mailto:help-gnu-emacs@gnu.org>> > a écrit : > > > > > > > > > >> > > > > >> > > > > >> Jul 27, 2022, 12:34 by >> incal@dataswamp.org > > <mailto:incal@dataswamp.org>>> : > > > > >> > > > > >> > carlmarcos--- via Users list for the GNU Emacs text > > editor wrote: > > > > >> > > > > > >> >> (defun enable-error-diagnostics () > > > > >> >> "Enable error diagnostics with backtrace buffer. > > > > >> >> One can exit the debugger with the q command." > > > > >> >> > > > > >> > > > > > >> > You can refer to keys in docstrings like this: > > > > >> > > > > > >> > \\[forward-word] > > > > >> > > > > > >> > That way, it isn't hardcoded so if later > > changed/configured > > > > >> > it'll still show the right key. > > > > >> > > > > > >> How can I figure out what key to use in the docstring > > for exiting the > > > > backtrace buffer? > > > > >> > > > > > > > > > > The function bound to 'q' is quit-window. But since this > > function > > > > doesn't have a global binding, you need to tell the > > docstring to use the > > > > appropriate keymap to look the binding up. > > > > > > > > > > Something like > > > > > > > > > > "Enable error diagnostics with backtrace buffer. > > > > > > > > > > \\<backtrace-mode-map> (note: this is the part telling > > emacs where to > > > > look for the key) > > > > > One can exit the debugger with the `quit-window' command > > (bound to > > > > \\[quit-window])." > > > > > > > > > > > > > > Although quit-window is bound to q, the command > > \\[quit-window] just > > > > inserts > > > > M-x quit-window, rather than q. > > > > > > > > > > Yes, that's precisely because quit-window doesn't have a > > global binding. > > > You need to add \\<backtrace-mode-map> somewhere in the > > docstring to tell > > > emacs to show bindings for the backtrace buffers, rather than > > global > > > bindings. > > > > > > Best wishes, > > > Thibaut > > > > Sounds good advice, but the result could be > > > > Uses keymap ‘backtrace-mode-map’, which is not currently defined. > > > > My bad, it should have been debugger-mode-map. > > Not quite right yet. > > > > I guess one should also put (require 'debug) at some point along with > > the function definition? > > Seems more bother than it solves. Cannot see how users would be able to > > figure all this complication > > out. > > For sure. But it's really a rare situation, and not one that is likely to hit first time users: one has to be writing a function with a docstring, and this docstring has to involve a key bound in a keymap defined in another file, and not loaded by default. > > Even for users developing their own packages, usually the keymap will be defined in a file loaded at the same time as the function, completely hiding this subtlety. > > Still, I would almost be tempted to consider this case a bug, and to expect that emacs should autoload debug.el to display the relevant information. > > Thibaut I concur Thibaut. Do send a report as you suggest. ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-26 20:35 Generality of defvar carlmarcos--- via Users list for the GNU Emacs text editor 2022-07-26 23:01 ` Philip Kaludercic [not found] ` <87r127h40s.fsf@posteo.net-N7wjq17--3-2> @ 2022-07-26 23:16 ` Emanuel Berg 2022-07-26 23:23 ` Emanuel Berg ` (2 more replies) 2 siblings, 3 replies; 27+ messages in thread From: Emanuel Berg @ 2022-07-26 23:16 UTC (permalink / raw) To: help-gnu-emacs carlmarcos--- via Users list for the GNU Emacs text editor wrote: > Have been looking into defvar and noticed the generality of > its use > > (defvar aname t) > (defvar bname nil) > (defvar cname 1) > (defvar dname "text") For practical reasons it can be better to do (defvar var-name) (setq var-name 'var-value) instead because if you do something with that and want to reset it, it's enough to evaluate the second line, whereas if you just have the first line you tend to evaluate that one and if/because the variable is already set at that point then nothing will happen ... -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-26 23:16 ` Emanuel Berg @ 2022-07-26 23:23 ` Emanuel Berg 2022-07-26 23:36 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-07-27 4:57 ` Yuri Khan 2 siblings, 0 replies; 27+ messages in thread From: Emanuel Berg @ 2022-07-26 23:23 UTC (permalink / raw) To: help-gnu-emacs >> (defvar aname t) [...] > > For practical reasons it can be better to do > > (defvar var-name) > (setq var-name 'var-value) Here `defvar' only tells the byte-compiler that you intend to use a variable with that name. It doesn't create such a variable. -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-26 23:16 ` Emanuel Berg 2022-07-26 23:23 ` Emanuel Berg @ 2022-07-26 23:36 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-07-27 4:57 ` Yuri Khan 2 siblings, 0 replies; 27+ messages in thread From: carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-07-26 23:36 UTC (permalink / raw) To: Emanuel Berg; +Cc: help-gnu-emacs Jul 26, 2022, 23:16 by incal@dataswamp.org: > carlmarcos--- via Users list for the GNU Emacs text editor wrote: > >> Have been looking into defvar and noticed the generality of >> its use >> >> (defvar aname t) >> (defvar bname nil) >> (defvar cname 1) >> (defvar dname "text") >> > > For practical reasons it can be better to do > > (defvar var-name) > (setq var-name 'var-value) > > instead because if you do something with that and want to > reset it, it's enough to evaluate the second line, whereas if > you just have the first line you tend to evaluate that one and > if/because the variable is already set at that point then > nothing will happen ... > I cannot follow what you are trying to say. ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-26 23:16 ` Emanuel Berg 2022-07-26 23:23 ` Emanuel Berg 2022-07-26 23:36 ` carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-07-27 4:57 ` Yuri Khan 2022-07-27 6:59 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-07-29 15:56 ` Emanuel Berg 2 siblings, 2 replies; 27+ messages in thread From: Yuri Khan @ 2022-07-27 4:57 UTC (permalink / raw) To: help-gnu-emacs On Wed, 27 Jul 2022 at 06:17, Emanuel Berg <incal@dataswamp.org> wrote: > For practical reasons it can be better to do > > (defvar var-name) > (setq var-name 'var-value) > > instead because if you do something with that and want to > reset it, it's enough to evaluate the second line, whereas if > you just have the first line you tend to evaluate that one and > if/because the variable is already set at that point then > nothing will happen ... Yes, but you can press C-M-x on a (defvar var-name 'var-value) and it will get re-set to the new value even if the variable is already defined. ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-27 4:57 ` Yuri Khan @ 2022-07-27 6:59 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-07-29 15:56 ` Emanuel Berg 1 sibling, 0 replies; 27+ messages in thread From: carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-07-27 6:59 UTC (permalink / raw) To: Yuri Khan; +Cc: help-gnu-emacs Jul 27, 2022, 04:57 by yuri.v.khan@gmail.com: > On Wed, 27 Jul 2022 at 06:17, Emanuel Berg <incal@dataswamp.org> wrote: > >> For practical reasons it can be better to do >> >> (defvar var-name) >> (setq var-name 'var-value) >> >> instead because if you do something with that and want to >> reset it, it's enough to evaluate the second line, whereas if >> you just have the first line you tend to evaluate that one and >> if/because the variable is already set at that point then >> nothing will happen ... >> > > Yes, but you can press C-M-x on a (defvar var-name 'var-value) and it > will get re-set to the new value even if the variable is already > defined. > So I can keep it (defvar var-name t) or (defvar var-name nil) ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: Generality of defvar 2022-07-27 4:57 ` Yuri Khan 2022-07-27 6:59 ` carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-07-29 15:56 ` Emanuel Berg 2022-07-29 16:25 ` [External] : " Drew Adams 1 sibling, 1 reply; 27+ messages in thread From: Emanuel Berg @ 2022-07-29 15:56 UTC (permalink / raw) To: help-gnu-emacs Yuri Khan wrote: >> (defvar var-name) >> (setq var-name 'var-value) >> >> instead because if you do something with that and want to >> reset it, it's enough to evaluate the second line, whereas >> if you just have the first line you tend to evaluate that >> one and if/because the variable is already set at that >> point then nothing will happen ... > > Yes, but you can press C-M-x on a (defvar var-name > 'var-value) and it will get re-set to the new value even if > the variable is already defined. So you can! I just tested and you are right. Did they change that recently? Okay then, I guess there is no point in doing (defvar var-name) (setq var-name 'var-value) anymore. -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 27+ messages in thread
* RE: [External] : Re: Generality of defvar 2022-07-29 15:56 ` Emanuel Berg @ 2022-07-29 16:25 ` Drew Adams 2022-07-30 3:56 ` Emanuel Berg 0 siblings, 1 reply; 27+ messages in thread From: Drew Adams @ 2022-07-29 16:25 UTC (permalink / raw) To: Emanuel Berg, help-gnu-emacs@gnu.org > > Yes, but you can press C-M-x on a (defvar var-name > > 'var-value) and it will get re-set to the new value even if > > the variable is already defined. > > So you can! I just tested and you are right. Did they change > that recently? 80s? 70s? ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [External] : Re: Generality of defvar 2022-07-29 16:25 ` [External] : " Drew Adams @ 2022-07-30 3:56 ` Emanuel Berg 2022-07-30 19:36 ` Drew Adams 0 siblings, 1 reply; 27+ messages in thread From: Emanuel Berg @ 2022-07-30 3:56 UTC (permalink / raw) To: help-gnu-emacs Drew Adams wrote: >>> Yes, but you can press C-M-x on a (defvar var-name >>> 'var-value) and it will get re-set to the new value even >>> if the variable is already defined. >> >> So you can! I just tested and you are right. Did they >> change that recently? > > 80s? 70s? Haha :) Nevermind then. -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 27+ messages in thread
* RE: [External] : Re: Generality of defvar 2022-07-30 3:56 ` Emanuel Berg @ 2022-07-30 19:36 ` Drew Adams 2022-08-01 3:24 ` Emanuel Berg 0 siblings, 1 reply; 27+ messages in thread From: Drew Adams @ 2022-07-30 19:36 UTC (permalink / raw) To: Emanuel Berg, help-gnu-emacs@gnu.org > >>> Yes, but you can press C-M-x on a (defvar var-name > >>> 'var-value) and it will get re-set to the new value even > >>> if the variable is already defined. > >> > >> So you can! I just tested and you are right. Did they > >> change that recently? > > > > 80s? 70s? > > Haha :) > > Nevermind then. Sorry, I guess that might have sounded a bit snarky. Dunno when this behavior was defined for Elisp `defvar' (and some others), but it's been there as long as I can remember, which probably goes back to Emacs 18, in the early 80s. ^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [External] : Re: Generality of defvar 2022-07-30 19:36 ` Drew Adams @ 2022-08-01 3:24 ` Emanuel Berg 0 siblings, 0 replies; 27+ messages in thread From: Emanuel Berg @ 2022-08-01 3:24 UTC (permalink / raw) To: help-gnu-emacs Drew Adams wrote: >>>>> Yes, but you can press C-M-x on a (defvar var-name >>>>> 'var-value) and it will get re-set to the new value even >>>>> if the variable is already defined. >>>> >>>> So you can! I just tested and you are right. Did they >>>> change that recently? >>> >>> 80s? 70s? >> >> Haha :) >> >> Nevermind then. > > Sorry, I guess that might have sounded a bit snarky. No, I like the old-school parts of me. The parts of me that I consider old-school ... > Dunno when this behavior was defined for Elisp `defvar' (and > some others), but it's been there as long as I can remember, > which probably goes back to Emacs 18, in the early 80s. Yeah, must have picked that up from some old manual. -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2022-08-01 3:24 UTC | newest] Thread overview: 27+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-07-26 20:35 Generality of defvar carlmarcos--- via Users list for the GNU Emacs text editor 2022-07-26 23:01 ` Philip Kaludercic [not found] ` <87r127h40s.fsf@posteo.net-N7wjq17--3-2> 2022-07-26 23:10 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-07-27 7:29 ` Thibaut Verron [not found] ` <CAFsi02SEVCEjGNoQ6vPZvMw7d5F39JZAAPCR5VOUnzQDUERkQA@mail.gmail.com-N7yZ2U2----2> 2022-07-27 12:18 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-07-27 12:34 ` Emanuel Berg 2022-07-27 12:52 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-07-27 13:21 ` Thibaut Verron 2022-07-27 13:24 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-07-27 13:47 ` Thibaut Verron 2022-07-27 16:29 ` Christopher Dimech 2022-07-27 16:39 ` Thibaut Verron 2022-07-28 6:42 ` Christopher Dimech 2022-07-28 7:06 ` Thibaut Verron 2022-07-28 7:34 ` Christopher Dimech 2022-07-28 9:37 ` thibaut.verron 2022-07-28 13:57 ` Christopher Dimech 2022-07-26 23:16 ` Emanuel Berg 2022-07-26 23:23 ` Emanuel Berg 2022-07-26 23:36 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-07-27 4:57 ` Yuri Khan 2022-07-27 6:59 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-07-29 15:56 ` Emanuel Berg 2022-07-29 16:25 ` [External] : " Drew Adams 2022-07-30 3:56 ` Emanuel Berg 2022-07-30 19:36 ` Drew Adams 2022-08-01 3:24 ` Emanuel Berg
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).