如何定义可执行函数的Emacs书签以跳转至每日变化的Today文件?
如何定义打开时执行函数的Emacs书签?
直接在bookmark-alist的filename字段绑定(today-file)会报错wrong-type-argument stringp (today-file),原因是Emacs默认要求filename字段的值是字符串类型,而非未求值的函数表达式。
要实现打开书签时自动执行函数的需求,最直接的方法是给书签添加自定义handler属性,让Emacs打开该书签时调用指定的处理函数,而非默认的文件打开逻辑:
(add-to-list 'bookmark-alist '("Today" (handler . (lambda () (find-file (today-file)))) (description . "打开当日的Today文件")))
添加这条配置后,使用bookmark-jump调用"Today"书签时,就会自动执行lambda函数,通过today-file获取当日文件路径并打开。
你当前用按键绑定实现的逻辑是可行的,而上述书签方案本质是把相同的逻辑整合到了书签系统中,更符合书签的使用场景。
内容的提问来源于stack exchange,提问作者René Steetskamp
相关产品推荐
相关产品推荐

