From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg via Users list for the GNU Emacs text editor Newsgroups: gmane.emacs.help Subject: Re: don't understand setq-default Date: Mon, 19 Apr 2021 05:06:26 +0200 Message-ID: <87lf9fkm6l.fsf@zoho.eu> References: <87mttvx1lo.fsf@zoho.eu> <87eef7ycd9.fsf@omarpolo.com> <87blabww2u.fsf@zoho.eu> <877dkzww0r.fsf@zoho.eu> <8735vnwu8z.fsf@zoho.eu> <87blaby6xx.fsf@omarpolo.com> Reply-To: Emanuel Berg Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="24398"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:wHSMUfX95/cp/ug6cNxIA9lJReI= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Mon Apr 19 05:07:10 2021 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 1lYKFi-0006C7-9W for geh-help-gnu-emacs@m.gmane-mx.org; Mon, 19 Apr 2021 05:07:10 +0200 Original-Received: from localhost ([::1]:52354 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lYKFh-0006TU-Cb for geh-help-gnu-emacs@m.gmane-mx.org; Sun, 18 Apr 2021 23:07:09 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44464) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lYKFB-0006TO-1v for help-gnu-emacs@gnu.org; Sun, 18 Apr 2021 23:06:37 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:50014) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lYKF9-0004BX-BV for help-gnu-emacs@gnu.org; Sun, 18 Apr 2021 23:06:36 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1lYKF6-0005OE-RB for help-gnu-emacs@gnu.org; Mon, 19 Apr 2021 05:06:32 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 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" Xref: news.gmane.io gmane.emacs.help:129060 Archived-At: Omar Polo wrote: > [ keep in mind that I'm not really an expert elisp hacker ] You are getting there... > Let's take the indent-tabs-mode variable for instance: you > set it to t to enable hard tabs, or nil if you don't. > For some modes you may want to use tabs (e.g. C, or Go), You may, but you don't need tabs in C. (I'm not familiar with Go.) The only thing that always wants tabs are the Makefiles, right? > > Another example: I'm writing a chat application in elisp. > I have a, say, toxe-friend-name that holds the name of the > chat you've opened. It's useful to keep this > a buffer-local, so it gets a different value per > chat-buffer, and the elisp code is simple. That's right, it is a good example, when you have several buffers of the same kind to hold some data piece or pieces connected to that particular buffer of whatever the program in general is suppose to do... > that buffer. (I don't know how to retrieve the global > value, but a short trip to the manual should tell me that) > > So, for example: > > (defvar my-var 5) Heh, OK so now the global has a default as well... let's see how this goes. > my-var > ;; => 5 Right, defined with a default and not set. So it is the default. What else is there to be. > (with-current-buffer (get-buffer-create "test") > (message "my-var is %d" my-var) ; my-var is 5 Not changed so this is the global-default (only) version at this time. > (make-local-variable 'my-var) > (setq my-var 7) > (message "my-var is %d" my-var) ; my-var is 7 Now it is set locally so now it is 7. By locally we mean buffer-local, that's the only local there is? > (setq-default my-var 'foo) > (message "my-var is %d" my-var)) ;; my-var is 7 Now we set the default but since it is set hat doesn't matter. > my-var > ;; => foo And now it isn't anymore so the default is there, great. So the pecking order is: local var global var local default global default ? and local default and global default are even lower because they don't do anything if there's a value there already. -- underground experts united https://dataswamp.org/~incal