[救救孩子吧]org-mode 代码块折叠后 一大坨黑条是什么 怎么解决

有的后面有 有的又没有 看着实在难受 求大神指导一下

问了gpt 说用这个 (setq org-hide-emphasis-markers t) ;; 隐藏折叠时生成的长黑条
实际测试下来还是有

换个 theme

百分之80的theme都有黑条…有没有啥优雅的解决方案

把 block 那个 face 的 extend 去掉

新人不是很懂啊 大哥 能不能说的详细点

C-h f set-face-attribute

用 modus-themes 这个主题。

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52587

这可能是个BUG

解决方案 org mode - Prevent org source block face from bleeding out in fold - Emacs Stack Exchange

;; 获取当前主题的背景色
(defun get-theme-background-color ()
  (cdr (assoc 'background-color (frame-parameters))))

(defun set-org-block-end-line-color ()
  "Set org-src-block face background color to current theme's background color."
  (interactive)
  (let ((background-color (get-theme-background-color))) ; 获取当前主题的背景色
    (set-face-attribute 'org-block-end-line nil :background background-color))) ; 设置 org-src-block face 的背景色属性

(advice-add 'consult-theme :after (lambda (&rest args) (set-org-block-end-line-color)))

最终的解决方案

1 个赞

手动解决的办法就是代码块和上下标题之间有空行

你这么做 在折叠行的行尾 按tab 不会展开 相当于在空行进行了一次tab

1 个赞

怪不得,感谢提醒

原来如此!!!我一直以为加空行是正确操作。。。。

试了下解决办法,好像 ef-theme 当中无效。但是在 gruvbox 中是有效的

我几十个主题全有效 原理就是把src end 换成和背景色一样