当我使用
更改emacs中的条纹时 (set-fringe-mode 0)
它会影响所有窗口。有没有办法只改变一个窗口的条纹尺寸?我想改变边缘取决于我正在处理的窗口的模式(让我们说一个边缘用于有代码的窗口,另一个用于编辑markdown)我目前还没能这样做。 / p>
非常感谢!
答案 0 :(得分:5)
函数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
)。
答案 1 :(得分:0)
set-window-fringes
将在缓冲区本地的基础上执行此操作,因此在模式启动挂钩中沿(set-window-fringes nil 8 8)
行调用它,其中8s(或您喜欢的任何内容)引用左右像素宽度。所以,例如对于文本模式:
(add-hook 'text-mode-hook
(lambda ()
(set-window-fringes nil 8 8)))