2017-07-07 17 views
0

Emacsの初期化ファイルをカスタマイズして、Emacsが2つのウィンドウを分割して開き、ansi-termを片側に開き、initファイルを向こう側。今、Emacsが既に開いている場合、私が書いた関数(switch-to-next-window)は完全に動作します。emacs 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")) 
+0

あなたは、[デスクトップ](https://www.gnu.org/software/emacs/manual/を使用して検討する必要がありますhtml_node/emacs/Saving-Emacs-Sessions.html)を使用してください。 – sds

答えて

0

初期バッファを開いた後に変更することは効果がありません。 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"))) 
+0

完璧に動作してくれてありがとう! emacsで利用可能な機能を見つけるのにまだ苦労しています – SandraK

関連する問題