我想我的第一个步骤,的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"))))
Run Code Online (Sandbox Code Playgroud)
我该如何删除此元素?我发现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"))))
Run Code Online (Sandbox Code Playgroud)
但我在Backtrace中收到相当长的输出:-(
Tho*_*mas 17
正如assem所指出的那样,代码中似乎有额外的空格会阻止正确的调用remove.
请注意这两个delete和remove工作等目的,只要在列表的元素可以比较正确地通过equal它用于他们两个.如果要比较使用eq,请使用函数delq或remq.
之间的主要区别delete和remove(或delq和remq分别)是delete由副作用移除给定元素,即,改变代替给定的列表中,而remove不会而是返回去除了元件给定列表的副本.
(setq list1 '("foo" "bar" "baz"))
(setq list2 (remove "bar" list1))
(message "list1: %s" list1)
(message "list2: %s" list2)
(setq list3 (delete "bar" list1))
(message "list1: %s" list1)
(message "list3: %s" list3)
Run Code Online (Sandbox Code Playgroud)
如果您评估上面的代码,您将在*Message*缓冲区中找到以下输出:
list1: (foo bar baz)
list2: (foo baz)
list1: (foo baz)
list3: (foo baz)
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,打完电话后remove上list1,它并没有改变.但是在你打电话之后delete,它已经改变了.
小智 6
您看到的错误不是由于操作列表而是由于错误使用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"))))
Run Code Online (Sandbox Code Playgroud)
(因为在单个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")))))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7391 次 |
| 最近记录: |