From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.help Subject: Re: 26.1 emacs-mac 7.2; map key to interactive lisp function (command) with an argument Date: Mon, 22 Oct 2018 09:25:12 +0300 Message-ID: <83ftwyts53.fsf@gnu.org> References: <50DFDFDA-C01D-49AA-97FB-30DF4DE9BB46@scratch.space> <878t2r11m5.fsf@web.de> <34075097-4888-4CA1-84BE-23F1380EF41E@scratch.space> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: blaine.gmane.org 1540189434 32086 195.159.176.226 (22 Oct 2018 06:23:54 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 22 Oct 2018 06:23:54 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Mon Oct 22 08:23:50 2018 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gETcz-0008Eh-CM for geh-help-gnu-emacs@m.gmane.org; Mon, 22 Oct 2018 08:23:49 +0200 Original-Received: from localhost ([::1]:33220 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gETf5-0005FB-VX for geh-help-gnu-emacs@m.gmane.org; Mon, 22 Oct 2018 02:25:59 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:57149) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gETec-0005Eu-9W for help-gnu-emacs@gnu.org; Mon, 22 Oct 2018 02:25:30 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gETeY-0002oc-T5 for help-gnu-emacs@gnu.org; Mon, 22 Oct 2018 02:25:30 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:45042) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gETeY-0002oX-Os for help-gnu-emacs@gnu.org; Mon, 22 Oct 2018 02:25:26 -0400 Original-Received: from [176.228.60.248] (port=2165 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1gETeY-0003Jj-EN for help-gnu-emacs@gnu.org; Mon, 22 Oct 2018 02:25:26 -0400 In-reply-to: <34075097-4888-4CA1-84BE-23F1380EF41E@scratch.space> (message from Van L on Mon, 22 Oct 2018 10:00:27 +1100) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.21 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.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.org gmane.emacs.help:118386 Archived-At: > From: Van L > Date: Mon, 22 Oct 2018 10:00:27 +1100 > > ┌──── > │ 1 (defun set-face-height (number) > │ 2 "Face height is set to NUMBER." > │ 3 (interactive "nInsert number: ") > │ 4 (set-face-attribute 'default (selected-frame) :height number)) > │ 5 > │ 6 (defun set-face-height-202 () > │ 7 "Set height of face to 202" > │ 8 (interactive) > │ 9 (set-face-attribute 'default (selected-frame) :height 202)) > │ 10 (global-set-key (kbd "C-c o") 'set-face-height-202) > │ 11 > │ 12 (defun set-face-height-256 () > │ 13 "Set height of face to 256" > │ 14 (interactive) > │ 15 (set-face-attribute 'default (selected-frame) :height 256)) > │ 16 (global-set-key (kbd "C-c O") 'set-face-height-256) > └──── > > At the outset my goal was to get rid of lines 6 to 9, 12 to 15. Why would you want that? Copy/paste is cheap, much cheaper than your time (assuming you need to do something other than play with Lisp forms). It's possible, but it's advanced stuff, so beginners are well advised to steer away from that. The "advanced" way of doing what you wanted was explained by Michael: use a lambda-function that calls set-face-height with the appropriate argument. (Actually, I'd do away with set-face-height entiely, and call set-face-attribute directly.) > 1) (info "(elisp) Calling Functions") > - experiment with funcall and fail funcall needs an argument that is a symbol or one whose value is a symbol. There's a telltale example in the doc string. > 2) (info "(elisp) Interactive Call") > - experiment with funcall-interactively and fail Ditto. > The guiding lamp I take to Lisp is it is a Russian Doll of lists. Yes, but there's a difference between a normal list and a quoted one: the latter doesn't get evaluated right away.