我试图以Emacs打开两个窗口拆分和ansi-term打开的方式来定制我的Emacs init文件,并在我的init文件另一边。现在,如果Emacs已经打开,我写的函数(switch-to-next-window
)完美工作。emacs init - 拆分窗口并打开相邻的文件
我希望能够将光标切换到另一个窗口,然后在那里打开我的init文件。但是,如果我试图在启动时运行(实际上启动后,至少这是我的想法),我得到以下错误:window-live-p, nil
我在想,没有“下一个窗口”。但是我只是不知道在这里工作,因为我认为在Emacs完全启动后我只能调用我的函数?如果任何人都能指出我的逻辑错误,那会很棒!
(split-window-horizontally)
(setq initial-buffer-choice "*ansi-term*")
(defun switch-to-next-window()
(interactive)
(let* ((next-window (get-buffer-window (other-buffer (current-buffer) t))))
(select-window next-window)))
(add-hook 'emacs-startup-hook (lambda()(ansi-term "/bin/bash")))
(with-eval-after-load "~/.emacs.d/init.el"
(switch-to-next-window)
(setq initial-buffer-choice "~/.emacs.d/init.el"))
你可能要考虑使用[桌面](https://www.gnu.org/software/emacs/manual/ html_node/emacs/Saving-Emacs-Sessions.html)。 – sds