Emacs split windows下,打开相同文件会merge split windows。但我不想merge,不知道是哪个参数或者是哪个hook,导致这样的行为。不确定是不是spacemacs的坑,不过我试了下用dired打开文件,也是一样的效果。
复现如下:
-
split window
-
open the same file using dired or ranger
-
split windows are merged
Update:
发现好像是ranger的锅,但还是没找到解决方案。
看看 find-file-hooks
中有没有可疑的。
find-file-hooks
设成nil了还是一样的效果
会报这样的一个warning:
pop-to-buffer: Wrong type argument: window-valid-p, #<window 33>
M-x toggle-debug-on-error
开启调试观察下,出错的时候根据堆栈应该就能找出是谁引发的。
找到解决方案了,overwrite ranger-disable
函数。
(defun ranger-disable ()
"Interactively disable ranger-mode."
(interactive)
;; don't kill ranger buffer if open somewhere else
(if (> (length (get-buffer-window-list)) 1)
(delete-window)
(ranger-revert)))
(defun ranger-disable ()
"Interactively disable ranger-mode."
(interactive)
(ranger-revert))