在Emacs Lisp中切换自动填充模式
我正在尝试使用键盘快捷键切换在Emacs Lisp中切换自动填充模式,emacs,elisp,Emacs,Elisp,我正在尝试使用键盘快捷键切换自动填充模式的开或关。 在我的~/.emacs中,我有 (setq-default auto-fill-function 'do-auto-fill) 现在,我尝试使用此函数解决我的问题: (defun my-switch-auto-fill-mode () (interactive) (if (auto-fill-function) (auto-fill-mode 0) (auto-fill-mode 1))) 但是它不起作用。像这样
自动填充模式
的开或关。
在我的~/.emacs
中,我有
(setq-default auto-fill-function 'do-auto-fill)
现在,我尝试使用此函数解决我的问题:
(defun my-switch-auto-fill-mode ()
(interactive)
(if (auto-fill-function)
(auto-fill-mode 0)
(auto-fill-mode 1)))
但是它不起作用。像这样的简单事情会起作用:
(global-set-key (kbd "<f2>") 'auto-fill-mode)
只打开它。
要从lisp代码中切换,请使用:
(call-interactively 'auto-fill-mode)
(本地设置键(kbd“”)“自动填充模式)
有什么问题?@abo abo谢谢!它确实有效。@HåkonHægland解决您实际问题的最佳方法是abo abo。代码的问题是:(1)您想测试自动填充功能
,而不是(自动填充功能)
;(2) 您没有在if分支中重置自动填充功能
。@abo abo:请将您的评论作为答案发表。赫康格兰:请接受abo abo的答案作为解决方案。这会将此问题标记为已解决。@Tobias是的,如果有人能给出答案并解释这一混淆,那将非常好:)或(自动文件模式切换)
,这是从Lisp切换次要模式的标准方法。即使自动填充模式
的docstring没有提到它,所有适当的次要模式(即用定义次要模式
定义的模式)都支持此参数。
(call-interactively 'auto-fill-mode)