从Jekyll排除emacs临时文件

时间:2019-01-26 01:18:03

标签: emacs jekyll

Jekyll似乎很高兴排除emacs filename~filename.~n~备份文件,但我不能使其排除#filename#.#filename#。尽管它们实际上并没有复制到发布的站点,但是当我在监视模式下编辑文件时,它们会不断触发文件再生。

有什么我可以放入exclude或其他设置来阻止此行为的东西吗?

2 个答案:

答案 0 :(得分:0)

我试图弄清楚#是否是Ruby中的特殊字符WRT模式匹配,但是我在学习Jekyll时正在学习Ruby,所以……?随机尝试,也许会起作用,\###并没有帮助。

因此,从Emacs方面,我修改了auto-save-file-name-pmake-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:
 - /*#
 - /*~*