只有在Emacs中才有办法改变窗口的边缘大小吗?

  • 本文关键字:边缘 窗口 Emacs 改变 emacs
  • 更新时间 :
  • 英文 :


当我使用

在emacs中更改边缘时
 (set-fringe-mode 0)

影响所有窗口。有没有办法只更改一个窗口的条纹大小?我想根据我正在工作的窗口的模式来改变边缘(让我们说一个边缘用于有代码的窗口,另一个用于编辑标记),我目前还不能这样做。

非常感谢!

函数set-window-fringes允许您自定义特定窗口的边缘:

(set-window-fringes (selected-window) 0 0)

这将当前窗口的左右边缘的宽度设置为0像素。您可以根据需要更改值(第一个数字参数控制左侧边缘的宽度,第二个数字参数控制右侧边缘的宽度)。

您可以将对set-window-fringes的调用包装在一个函数中,并将该函数添加到您想要自定义边缘的模式的钩子中:

(defun hide-fringes ()
  (set-window-fringes (selected-window) 0 0))
(add-hook 'markdown-mode-hook 'hide-fringes)

请注意,您可以使用lambda函数用于此目的,以及(如@Dan建议),但当添加自定义代码到钩子时,最好将其包装在一个函数中,以便能够轻松地从钩子中删除

(通过remove-hook)。

set-window-fringes将在缓冲区本地的基础上执行此操作,因此在模式启动钩子中沿着(set-window-fringes nil 8 8)行对其进行调用,其中8(或您喜欢的任何内容)指的是左侧和右侧的像素宽度。例如,对于文本模式:

(add-hook 'text-mode-hook
          (lambda ()
            (set-window-fringes nil 8 8)))

最新更新