emacs init - 拆分窗口并打开彼此相邻的文件

时间:2017-07-07 08:38:20

标签: emacs init

我正在尝试自定义我的Emacs init文件,以便Emacs打开时会分割两个窗口并且ansi-term在一侧打开,而我的init文件在另一侧打开。现在,如果Emacs已经打开,我编写的函数(switch-to-next-window)可以正常工作。

我希望将光标切换到另一个窗口,然后在那里打开我的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"))

1 个答案:

答案 0 :(得分:0)

在初始缓冲区打开后更改initial-buffer-choice不会产生任何影响。

将所有内容放入emacs-startup-hook并使用find-file-other-window函数:

有什么用处
(add-hook 'emacs-startup-hook
          (lambda ()
            (ansi-term "/bin/bash")
            (split-window-horizontally)
            (find-file-other-window "~/.emacs.d/init.el")))
相关问题