gpt4 book ai didi

emacs:视觉线模式和填充段落

转载 作者:行者123 更新时间:2023-12-04 13:30:03 25 4
gpt4 key购买 nike

我现在使用关闭了可视行模式的 Emacs 23 进行文本编辑,但出于习惯一直按 M-q (因此添加了硬包装行结尾......)。我想知道是否有一种方法可以添加一个条件来禁用填充段落(或删除与 M-q 的绑定(bind)),以用于打开视觉线模式的模式,但为那些我仍在的模式重新启用它使用自动填充模式?谢谢!

最佳答案

(defun maybe-fill-paragraph (&optional justify region)
"Fill paragraph at or after point (see `fill-paragraph').

Does nothing if `visual-line-mode' is on."
(interactive (progn
(barf-if-buffer-read-only)
(list (if current-prefix-arg 'full) t)))
(or visual-line-mode
(fill-paragraph justify region)))

;; Replace M-q with new binding:
(global-set-key "\M-q" 'maybe-fill-paragraph)

而不是使用 global-set-key ,也可以重新绑定(bind) M-q仅在特定模式下。 (或者,您可以更改全局绑定(bind),然后在特定模式下将 M-q 绑定(bind)回 fill-paragraph。)请注意,许多模式是自动加载的,因此在激活模式之前可能不会定义它们的键映射。要设置特定于模式的绑定(bind),我通常使用如下函数:
(add-hook 'text-mode-hook
(defun cjm-fix-text-mode ()
(define-key text-mode-map "\M-q" 'maybe-fill-paragraph)
(remove-hook 'text-mode-hook 'cjm-fix-text-mode)))

( remove-hook 不是绝对必要的,但该函数只需要运行一次。)

关于emacs:视觉线模式和填充段落,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1416171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com