Jekyll似乎很高兴排除emacs filename~
和filename.~n~
备份文件,但我不能使其排除#filename#
或.#filename#
。尽管它们实际上并没有复制到发布的站点,但是当我在监视模式下编辑文件时,它们会不断触发文件再生。
有什么我可以放入exclude
或其他设置来阻止此行为的东西吗?
答案 0 :(得分:0)
我试图弄清楚#
是否是Ruby中的特殊字符WRT模式匹配,但是我在学习Jekyll时正在学习Ruby,所以……?随机尝试,也许会起作用,\#
和##
并没有帮助。
因此,从Emacs方面,我修改了auto-save-file-name-p
和make-auto-save-file-name
以在自动保存文件的末尾添加一个~
,因此它们现在是#filename#~
,并且Jekyll会愉快地忽略以~
结尾的文件(请参阅:https://www.gnu.org/software/emacs/manual/html_node/elisp/Auto_002dSaving.html)。
最后我还关闭了创建.#filename
文件的锁文件。
即使从Jekyll源头修复它可能会更好,但它能奏效。
因此,如果这对您来说是个问题,请在您的.emacs
中输入以下内容:
(defun auto-save-file-name-p (filename)
"Return non-nil if FILENAME can be yielded by..."
(string-match "^#.*#~$" filename))
(defun make-auto-save-file-name ()
"Return file name to use for auto-saves \
of current buffer.."
(if buffer-file-name
(concat
(file-name-directory buffer-file-name)
"#"
(file-name-nondirectory buffer-file-name)
"#~")
(expand-file-name
(concat "#%" (buffer-name) "#~"))))
(setq create-lockfiles nil)
答案 1 :(得分:0)
我找到了一个“部分”解决方案,我遇到了类似的问题,因为我的备份文件名被设置为 .~1 .~2 等(部分原因是它不适用于“include:”集中的“_redirects”之类的文件:我最终仍然在_site中有一个“_redirects~”文件
尝试了 _config.yml 文件中的所有内容:
# exclude:
# - *~*
# - *.*~1
# - "_*~1"
无效,似乎禁止使用不受保护的通配符 * 开头,
直到我注意到“--verbose”记录中排除的文件有一个起始 /
即使对于子目录中的文件,这也是解决方案:在模式开头使用 /。
什么有效:
exclude:
- /*#
- /*~*