删除Emacs最小地图中的边缘箭头。

问题描述 投票:0回答:1

我想去掉边缘的部分。emacs最小地图缓冲区。 特别是行延续箭头。我仍然希望在主缓冲区中使用它们,但发现它们在最小地图中毫无意义。

我试着在我的 ~.emacs 文件中添加以下内容。

(add-hook 'minimap-mode-hook (lambda () (setq indicate-empty-lines nil)))
(add-hook 'minimap-mode-hook (lambda () (setq overflow-newline-into-fringeh nil)))
(add-hook 'minimap-mode-hook (lambda () (setq visual-line-mode 0)))

但似乎没什么用处 当涉及到lisp和修改emacs以满足我的想法时,我相当缺乏经验,所以也许我误解了应该如何做。

我试着看了一下 GNU网页 但仍然无法管理。如果能解释一下我做错了什么,我会非常感激。

emacs lisp hook fringe
1个回答
0
投票

我玩了一下,Minimap有点奇怪,它没有设置主要模式,也没有在minimap缓冲区中运行任何钩子(minimap-mode 本身就是 全球性 minor模式),所以看来我们需要使用建议来做这件事。

你说的是 "行延续箭头",但试过之后我觉得你的意思是 "行截断箭头",所以我的目标就是这个。

这样似乎就可以了。

(define-advice minimap-new-minimap (:after () hide-truncation-indicators)
  "Hide truncation fringe indicators in the minimap buffer."
  (with-current-buffer minimap-buffer-name
    (push '(truncation nil nil) ;; no truncation indicators
          ;; '(truncation nil right-arrow) ;; right indicator only
          ;; '(truncation left-arrow nil) ;; left indicator only
          ;; '(truncation left-arrow right-arrow) ;; default
          fringe-indicator-alist)))
© www.soinside.com 2019 - 2024. All rights reserved.