我試圖以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