[已解决] 有用emacs读rss的吗? 关于 newsticker 的问题

就是 newsticker,emacs自带,稍加配置一下感觉还不赖,就是每次打开newsticker都会 自动更新feeds,有谁知道怎么配置让它不自动更新,贴一下我的配置

(use-package newsticker
  :defer t
  :init
  (progn
    (add-to-list 'evil-emacs-state-modes 'newsticker-treeview-mode)
    (add-to-list 'evil-emacs-state-modes 'newsticker-treeview-list-mode)
    (setq
     newsticker-url-list-defaults nil   ;;设置默认的列表为空
     newsticker-retrieval-interval 0   ;don't fetch when I'm not reading RSS
     newsticker-automatically-mark-items-as-old nil

     newsticker-url-list
     '(("网易新闻" "http://news.163.com/special/00011K6L/rss_newsattitude.xml")))

    (add-hook 'newsticker-treeview-mode-hook
              (lambda ()
                (define-key newsticker-treeview-mode-map (kbd "j") 'newsticker-treeview-next-feed)
                (define-key newsticker-treeview-mode-map (kbd "k") 'newsticker-treeview-prev-feed)
                (define-key newsticker-treeview-mode-map (kbd "l") 'newsticker-treeview-next-page)
                ))
    (add-hook 'newsticker-treeview-list-mode-hook
              (lambda ()
                (define-key newsticker-treeview-list-mode-map (kbd "j") 'next-line)
                (define-key newsticker-treeview-list-mode-map (kbd "k") 'previous-line)
                ))
    ))
(provide 'init-rss)
2 个赞

我用的是 elfeed,和 Spacemacs 无缝衔接,感觉还不错。

newsticker 不错嘛,第一次用。也许你可以先解释下自动更新有什么问题吗?

elfeed我看了一下,没有newsticker类似的treeview,而且需要很多设置,感觉不太方便

就是每次M-x newsticker-show-news时,它都会连接网络更新相关的feed,我的想法是打开newsticker,不自动联网更新,而是我在需要的时候才更新

了解这个需求,我这两天也试用过 News Ticker 好几次,默认它会自动常驻在后台自动更新,正如它的名字的意思。透过 manual、Google(第一页就搜到了你的帖子)均没有过类似的问题,看了下源代码,自定义一个类似于 newsticker-show-news 命令,只是不更新:

;; 必须在 (require 'newsticker) 之前
(setq newsticker-retrieval-interval 0)  ; 不在后台自动更新

(setq newsticker-url-list-defaults nil
      newsticker-url-list '(("Topic" "https://emacs-china.org/latest.rss")
                            ("Post"  "https://emacs-china.org/posts.rss")
                            ("HN"    "https://news.ycombinator.com/rss")))

(defun my/newsticker-show-news ()
  (interactive)
  (require 'newsticker)
  (cl-letf (((symbol-function 'newsticker-start) #'ignore))
    (newsticker-show-news)))

之后用 my/newsticker-show-news 打开 UI,用 newsticker-start 更新。

3 个赞

Thank you,用my/newsticker-show-news打开,按 g更新,用来读rss确实不错

2 个赞