如何固定指定buffer所在window的宽度?

最近用undotree,发现没有控制弹出buffer宽度的变量,也有可能是我没找到:( 我用popwin插件控制他弹出的位置和宽度,但是使用n和p移动节点的时候就会恢复原来没用popwin控制的宽度,我想请问一下有没有控制指定buffer的宽度的方法

看看这个变量呢:display-buffer-alist

看看这个变量呢:display-buffer-alist

图片 你看我写的有问题吗?好像不起作用

(("\\`\\*Embark Collect \\(Live\\|Completions\\)\\*" nil
  (window-width . 20)))

像这样,第二个应该是函数或者函数列表或者 nil

(("^\\*eldoc for"
      (display-buffer-reuse-window
          display-buffer-below-selected)
      (window-height . shrink-window-if-larger-than-buffer)))
1 个赞

可以了,最终是这样子,就是没有了diff

(use-package undo-tree
  :diminish t
  :ensure t
  :init
  (global-undo-tree-mode)
  :config
  (setq undo-tree-auto-save-history nil)
  (setq undo-tree-visualizer-timestamps t)
  ;;(setq undo-tree-visualizer-diff t)
  (add-to-list 'display-buffer-alist
             '("\\*undo-tree\\*"
               (display-buffer-in-side-window)
               (side . left) 
               (window-width . 20))) ;; 宽度设置为 20 列

  :bind
  (("C-x u" . undo-tree-visualize))) 

如果加入了diff的话就会出现split-window: Cannot split side window or parent of side window,不过无伤大雅,这个diff也没多大用

:pray:感谢你的回答

1 个赞

较个真 :joy:,准确的说是 window 的宽度,buffer是没有宽度的

:hushed:喔喔,好像是的,我改个标题