Emacs Lisp编辑嵌套列表

时间:2017-09-07 04:00:06

标签: list emacs buffer elisp

我有一个问题,我想解决。我有一个方法列表和缓冲区位置。我用表格

创建了它
 (("method_foo" 588 . 640)
  ("method_bar" 557 . 587)
  ("method_baz" 605 . 630))

等等。我有一个机制来获得我需要的新职位。但是我似乎无法找到更新列表中缓冲区位置的简洁方法。这似乎是一件简单的事情,特别是对于 LIS t P 的处理器,但我似乎无法弄明白。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

从:

开始
(setq my-alist '(("method_foo" 588 . 640)
                 ("method_bar" 557 . 587)
                 ("method_baz" 605 . 630)))

如果您想将"method_bar"的排名从(557 . 587)更改为(60 . 80),您可以这样做:

(let ((positions (assoc "method_bar" my-alist)))
  (setf (cadr positions) 60
        (cddr positions) 80))

有关{{的用法的详细信息,请参阅 Ch i g (elisp)Setting Generalized Variables RET 1}}