【发布时间】:2015-12-29 05:50:22
【问题描述】:
我使用 elfeed 读取 emacs 中的 RSS,并希望制作一个循环浏览不同视图的函数:新闻、9gag、非新闻等。
我试图通过快速研究来编写一些代码。当我按 ctrl + 右箭头键时,它会在视图中循环。它工作正常,但我认为它不是最方便的代码。
我还想让它在按 ctrl + 左箭头键时反向浏览视图。
;;cycle through views
(setq a 0)
(defun cycle-list-view ()
(interactive)
(if (= a 3)
(progn
(elfeed-read-9gag)
(setq a 4)
))
(if (= a 2)
(progn
(elfeed-read-nonnews)
(setq a 3)
))
(if (= a 1)
(progn
(elfeed-read-news)
(setq a 2)
))
(if (= a 0)
(progn
(elfeed-read-defaultnews)
(setq a 1)
))
(if (= a 4)
(progn
(setq a 0)
))
)
(global-set-key (kbd "<C-right>") 'cycle-list-view)
【问题讨论】:
-
见函数
set-transient-map。您可以使用它来循环而不需要全局变量。或者测试last-command,如果是相同的命令则循环。 (实际上有几种方法可以在各种行为之间循环。)