如何指定某些mode打开时一定会使用horizontal split

如题,比方说我用counsel搜索了关键字后,使用C-c C-o开启ivy-occur-grep-mode,这时候如果窗口已经vertically split了,那就会从split的那个窗口打开ivy-occur-grep-mode的buffer。

这个behavior也没法通过split-width-threshold这个参数来设置,因为只要已经split了,那就会使用split的窗口,而不是在当前窗口下面split一个新的窗口。

求教有没有什么方法,能够让一些指定的mode,打开buffer的时候vertical split一个新的window在下面。类似右边的窗口。

我没遇见过具体需求所以没折腾过,不过你可以看看shackle

用 purpose 可以实现

强,无敌。可以了!!!治好了多年的颈椎病

(use-package shackle
    :defer t
    :init
    (shackle-mode)
    :config
    (setq shackle-rules '((ivy-occur-grep-mode :select t :align 'below :size 0.3)
                          (tide-references-mode :select t :align 'below :size 0.3)))
    )

其实主要就是ivy-occur, lsp find reference, tide-references之类的,老是覆盖掉旁边的window,很不方便。

3 个赞