minibuffer 几十钟不定时的总是提示 让「Please type y or n, or C-v/M-v to scroll」

google 也搜了 “emacs prompt Please type y or n, or C-v/M-v to scroll”, 和 "emacs a local variables list is specified in cookies "

因为不知道, 产生这个问题 具体原因是什么 非IT 水平有限,

可能是你当前打开的文件末尾或者第一行设置了某个local var,也可能是当前打开的文件同目录下有一个 .dir-locals.el 文件。我记得file local var一般会提示4个选项,除了yes和no之外还有记住yes和no的选项,你是不是配置文件里面有file local variable的相关设置?

多谢, 应该是 找到原因了, 11月24日, 有想对 org-mode 中的 org-todo-keywords 改成自定义的 关键字, 网上找了个配置, 要加 下面这一行, 现在注释掉 就可以了

(setq enable-local-variables :t)

能再追问个问题吗, 如果还是想用这个设置, 怎么让它 不要总是 跳出来提示了?

使用 custom.el

把以下配置放进你的 early-init 或 init 里

(setq custom-file (expand-file-name "custom.el" user-emacs-directory))
(unless (file-exists-p custom-file)
  (write-region "" nil custom-file))
(when (file-exists-p custom-file)
  (load custom-file))

下次遇到提示,按感叹号(英文),即Shift+1,设置就会保存到 custom.el 里。

把你需要用到的file local var 以列表形式加入到safe-local-variable-values,这个变量控制哪些file local var是“安全”的,安全的file local var 默认不会提示。

话说你们的safe-local-variable-values 的值都有些什么?可以参考一下么? :grinning:

我没设置过这个东西,可能我用过的file local variable 都是默认安全的。。。

手动管理不累吗?让 custom 自动生成多好。

(custom-set-variables
 ;; custom-set-variables was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(safe-local-variable-values
   '((eval setq-local org-roam-db-location
	   (expand-file-name "org-roam.db" org-roam-directory))
     (eval setq-local org-roam-directory
	   (expand-file-name
	    (locate-dominating-file default-directory ".dir-locals.el")))
     (org-roam-db-location expand-file-name "./org-roam.db")
     (org-roam-directory expand-file-name ".")
     (origami-fold-style . triple-braces))))

以上的部分设置是从我的 .dir-locals.el 里自动生成到 custom.el 里的。

((nil . ((eval . (setq-local
                  org-roam-directory (expand-file-name (locate-dominating-file
                                                        default-directory ".dir-locals.el"))))
         (eval . (setq-local
                  org-roam-db-location (expand-file-name "org-roam.db"
                                                         org-roam-directory))))))

你提醒了一下,我觉得我应该要设置一下这个值,要不每次启动失败,custom.el没有加载的时候,打开文件总是要提示一下,按一下感叹号存储。

我翻了一下自己的值,大约长这样:

((elisp-lint-indent-specs
  (vulpea-utils-with-file . 1)
  (vulpea-utils-with-note . 1)
  (org-with-point-at . 1)
  (org-element-map . 2))
 (elisp-lint-indent-specs
  (vulpea-utils-with-file . 1)
  (vulpea-utils-with-note . 1)
  (org-roam-with-file . 2)
  (org-with-point-at . 1)
  (org-element-map . 2)
  (file-templates-set . defun)
  (leader-def . 0)
  (dlet . 1)
  (general-create-definer . 1)
  (eval-with-default-dir . 1)
  (bui-define-interface . 2)
  (use-package . 1)
  (buffer-lines-map . 1)
  (buffer-lines-each . 1)
  (buffer-lines-each-t . 1)
  (request . defun))
 (org-export-initial-scope . buffer)
 (org-list-two-spaces-after-bullet-regexp))

也看到了一些自己再也不用的功能了 :grin:

emacs裸奔或加载未完全的时,手动加入(包涵按感叹句加入到)custom.el 这些都是要弹一弹的。

不过看了你的 .dir-locals, 我应该也要好好设一设了。

我的 (load custom-file) 是写在 early-init 里的 ,倒是没注意过启动问题。

原来我的 dir-local 里路径是写死的,一个文件夹里一个样,后来看到 org-roam 有了更好的解决方案就抄了。

现在的好处是不同文件夹的 dir-local 可以是一样的,要新建一个 org-roam 文件夹,只需要把 dir-local 复制一份过去就可以。