如何在Emacs中启动时将文件加载到缓冲区并切换到缓冲区

时间:2011-08-16 18:32:04

标签: emacs

我有一个TODO文件,我加载emacs最多使用90%的时间。当我加载emacs虽然它默认加载临时缓冲区。我想最初加载TODO文件。我是Emacs的新手,并尝试使用.emacs文件搜索方法,但到目前为止还没有任何工作。

以下是我的尝试:

1:使用find-file获取文件并切换到缓冲区以将其加载到屏幕

(switch-to-buffer (find-file "c:/Users/Seb/Documents/Emacs/TODO_List.org"))

2:使用pop-to-buffer来加载文件

(pop-to-buffer (find-file "c:/Users/Seb/Documents/Emacs/TODO_List.org"))

3:保存桌面,以便下次加载

(desktop-save-mode 1)

这些都不起作用。

这是我的完整.emacs文件,因为你可以看到它几乎没用过!

(custom-set-variables
 ;; custom-set-variables was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
; '(inhibit-startup-buffer-menu t)
'(inhibit-startup-screen t)
'(initial-buffer-choice t))
(custom-set-faces
  ;; custom-set-faces was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 )

;; Set the current directory to the Emacs Documents dir
(cd "C:/Users/Seb/Documents/Emacs")

;; Open TODO list on start up
(pop-to-buffer (find-file "c:/Users/Seb/Documents/Emacs/TODO_List.org"))

;; Turn off the annoying tool bar at startup - to turn back on 
;; just type M-x tool-bar-mode
(tool-bar-mode -1)

;; Move the mouse when cursor is near
(mouse-avoidance-mode 'cat-and-mouse)

;; This enables saving the current desktop on shutdown.
(desktop-save-mode 1)

;; XML Pretty Print
(defun xml-pretty-print (begin end)
  "Pretty format XML markup in region. You need to have nxml-mode
http://www.emacswiki.org/cgi-bin/wiki/NxmlMode installed to do
this.  The function inserts linebreaks to separate tags that have
nothing but whitespace between them.  It then indents the markup
by using nxml's indentation rules."
  (interactive "r")
  (save-excursion
      (nxml-mode)
      (goto-char begin)
      (while (search-forward-regexp "\>[ \\t]*\<" nil t) 
        (backward-char) (insert "\n"))
      (indent-region begin end))
    (message "Ah, much better!"))

1 个答案:

答案 0 :(得分:23)

在你的启动文件中,你有这一行:

'(initial-buffer-choice t))

作为“custom-set-variables”命令的一部分。 “initial-buffer-choice”的文档字符串是:

  

启动Emacs后显示的缓冲区。如果值为零并且   inhibit-startup-screen' is nil, show the startup screen. If the value is string, visit the specified file or directory using 找到文件”。如果是t,打开` scratch '缓冲区。

因此,您指定的值('t')导致启动后显示*scratch*缓冲区。将此行更改为以下内容,您的问题应该得到解决:

'(initial-buffer-choice "c:/Users/Seb/Documents/Emacs/TODO_List.org"))