尝试过(setq split-width-threshold 9999),有效,但这个是全局的,我只想改flycheck-list-errors
接着尝试过
(require 'shackle)
(setq shackle-rules ‘(("\`\Flycheck errors.?\*\’" :align 'below :size 0.3)))
(shackle-mode)
此前尝试用类似命令禁止ein总给我创建新窗口,有效。代码:
(setq shackle-rules ‘(("\`\ein: .+?\.ipynb\\’" :regexp t :same t)))
无效。但不报错。
尝试popwin:
(require 'popwin)
(push '(flycheck-list-errors :position bottom) popwin: special-display-config)
同样无效。也不报错。
不知有没有别的解法?
你写的是正则,没有加上:regexp t
。要么就不写正则,直接"*Flycheck errors*"
。
(setq split-width-threshold 9999)
也不是都有效吧,如果你要局部的话可以这样
(let ((split-width-threshold 9999))
(flycheck-list-errors))
不过右边有窗口好像还是会复用后边的窗口
有个变量叫作 display-buffer-alist
你可以看看,好像是用来控制窗口
刚才测了一下。popwin push的那个指令直接"*Flycheck errors"是有效的,加上:regexp t无效。
shackle的指令无论怎么改都无效。
symbol’s function definition is void: flycheck-list-errors
看样子这个指令不认识flycheck-list-errors这个东西。
flycheck-list-errors 是我复制的你一楼的,你自己看下这个函数对不对,我没用 flycheck
这个拼写没错,但type好像不对。应该只是不能放在这个位置。
那就不清楚了,我用 flymake-show-diagnostics-buffer 试了一下没有问题。
你贴的错误提示是找不到这个函数,我去 flycheck 源码看了下有这个函数,应该是你用的时候没有 require 吧
个人还是推荐用 display-buffer-alist
这个比较靠谱
(setq display-buffer-alist
'(("^\\*Flymake diagnostics"
(display-buffer-reuse-window
display-buffer-in-side-window)
(reusable-frames . visible)
(side . bottom)
(window-height . 0.33))))
把上面的字符串改成 flycheck-list-errors 执行后的那个 buffer 的名字,支持正则表达式。
window-height 是窗口占得比例。
一个该变量的说明
1 个赞
亲测有效。非常感谢!
看样子不用装什么插件了。我决定去仔细研究一下display-buffer-alist
其实 popwin
和 shackle
都是用来 display-buffer-alist
来实现的,我使用shackle
来实现这个的。
很简单,把(flycheck-error-list-mode :select t :size 0.3 :align 'below)
加入到 shackle-rules
即可。popwin
也类似。