help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Going through a list using the minibuffer


From: arvid-harnack
Subject: Going through a list using the minibuffer
Date: Sun, 13 Jun 2021 14:30:47 +0200 (CEST)

It is good , but I want to have something more elaborate.



Suppose I define a list namely '("alpha" "beta" "gamma")



I would like to get the minibuffer to show me the options one by
one as the down and up arrow keys are pressed.  Then in my
function I get the equivalent position "k" of the string in the

list.



Thanks 

Arvid




From: Emanuel Berg via Users list for the GNU Emacs text editor 
<help-gnu-emacs@gnu.org>
To: help-gnu-emacs@gnu.org
Subject: Re: Going through a list using the minibuffer
Date: 13/06/2021 02:14:59 Europe/Paris

arvid-harnack wrote:

> Would like to have a list of strings that can be selected
> using the minibuffer. And then set a variable
>
> number "k" that corresponds to the location of the string in
> the list.

Try this ...

;;; -*- lexical-binding: t -*-
;;;
;;; this file:
;;; http://user.it.uu.se/~embe8573/emacs-init/string-minibuffer.el
;;; https://dataswamp.org/~incal/emacs-init/string-minibuffer.el

(require 'cl-lib)

(defun select-list-item (lst)
(let ((ps ""))
(cl-loop for i from 0 to (1- (length lst))
for l in lst
do (setq ps (concat ps (format "%d: %s " i l))))
(nth (read-number (concat ps "[index?] ")) lst)))

;; (select-list-item '("test" "string" "three"))


-- 
underground experts united
https://dataswamp.org/~incal





reply via email to

[Prev in Thread] Current Thread [Next in Thread]