我尝试了emacs lisp的第一步,从"\\.synctex\\.gz"
中删除了LaTeX-clean-intermediate-suffixes
元素:
(eval-after-load 'latex
'(setq my-LaTeX-clean-intermediate-suffixes (remove '"\\.synctex\\.gz" LaTeX-clean-intermediate-suffixes)); that's not working
'(setq LaTeX-clean-intermediate-suffixes
(append my-LaTeX-clean-intermediate-suffixes (list "-blx\\.bib" "\\.run\\.xml"))))
如何在这里删除此元素?我找到了
remove
和delete
,对它们都进行了尝试,但是出现了wrong-number-of-arguments
-错误类型。更新
我尝试了这个:
(eval-after-load 'latex
(setq LaTeX-clean-intermediate-suffixes (delete "\\.synctex\\.gz" LaTeX-clean-intermediate-suffixes))
'(setq LaTeX-clean-intermediate-suffixes
(append LaTeX-clean-intermediate-suffixes (list "-blx\\.bib" "\\.run\\.xml"))))
但是我在Backtrace中收到了很长的输出:-(
最佳答案
您看到的错误不是由于对列表的操作,而是由于错误使用了eval-after-load。此函数仅允许两个参数:(eval-after-load FILE FORM)
。因此,您的代码段应阅读
(eval-after-load 'latex
'(setq LaTeX-clean-intermediate-suffixes (delete "\\.synctex\\.gz" LaTeX-clean-intermediate-suffixes)
LaTeX-clean-intermediate-suffixes (append LaTeX-clean-intermediate-suffixes (list "-blx\\.bib" "\\.run\\.xml"))))
(因为在单个setq语句中允许多个赋值)或更一般的变体(在一个
progn
中包含所需的多种形式):(eval-after-load 'latex
'(progn
(setq LaTeX-clean-intermediate-suffixes (delete "\\.synctex\\.gz" LaTeX-clean-intermediate-suffixes))
(setq LaTeX-clean-intermediate-suffixes (append LaTeX-clean-intermediate-suffixes (list "-blx\\.bib" "\\.run\\.xml")))))
关于emacs lisp : How to remove/delete an element of a list?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11573395/