thay thế màn hình giật gân với danh sách Recentf


18

Màn hình giật gân ban đầu rất hữu ích, nhưng bây giờ tôi muốn một cái gì đó hữu ích hơn: tôi muốn có danh sách các tệp được mở gần đây khi bắt đầu emacs nếu không có tệp được xác định trước để mở. Thậm chí tốt hơn, nếu nó có thể là helm-recentfcửa sổ (tôi sử dụng helmgói)


Tôi thấy rằng bạn đã tìm thấy một giải pháp, nhưng tôi chỉ muốn nhận xét rằng bạn không phải giới hạn bản thân mình với các phương pháp được thiết kế bởi nhóm Emacs trong startup.el. Bạn có thể vô hiệu hóa tất cả những thứ đó và sau đó có thứ tự khởi động của riêng bạn.
luật

Câu trả lời:


15

Hiện tại cũng có một gói trên MELPA: bảng điều khiển: https://github.com/rakanalh/emacs-dashboard . Gói cho phép bạn có một màn hình giật gân như trong hình dưới đây:

ảnh chụp màn hình bảng điều khiển

Đây là use-packageđoạn trích từ cấu hình của tôi để thiết lập nó với hình ảnh biểu ngữ và dòng văn bản tùy chỉnh, cũng như danh sách các tệp và dấu trang gần đây:

(use-package dashboard
    :ensure t
    :diminish dashboard-mode
    :config
    (setq dashboard-banner-logo-title "your custom text")
    (setq dashboard-startup-banner "/path/to/image")
    (setq dashboard-items '((recents  . 10)
                            (bookmarks . 10)))
    (dashboard-setup-startup-hook))

10

Manomagingly: D, sau khi đăng câu hỏi tôi đã có giải pháp làm việc bằng cách xóa một trích dẫn dưới đây trong tôi .emacs

(setq initial-buffer-choice '(helm-recentf)) ;; Does not work

Về điều này:

(setq initial-buffer-choice (helm-recentf)) ;; Works!!!
;; I still haven't tried doing with the built-in recentf only

Hoặc này:

(setq initial-buffer-choice 'helm-recentf) ;; Works!!!

Cập nhật

Nó vẫn không hoạt động với giải pháp trên thực tế. Tôi đã mở tập tin nhưng emacs chuyển sang scratchbộ đệm ngay sau đó. Tôi phải chuyển đến bộ đệm của tập tin tôi muốn. Vì vậy, vẫn cần thêm trợ giúp về điều này.

Cập nhật 2

Sau một vài cuộc vật lộn với elisp, tôi đã có được cái này thực sự hoạt động ngay bây giờ:

(require 'recentf) ;; Provided for the whole picture
(require 'helm)
(require 'helm-config)

(defun startwithrecentf()
 (buffer-name (find-file (car (helm-recentf))))
  )
(setq initial-buffer-choice (startwithrecentf)) 

Cập nhật 3

Sau đây là nhỏ gọn hơn. Nó cũng xử lý đại khái các trường hợp emacs được gọi với các đối số bổ sung, tức làemacs somefile

(require 'recentf) ;; Provided for the whole picture
(require 'helm)
(require 'helm-config)
(if (< (length command-line-args) 2) 
(setq initial-buffer-choice (car (helm-recentf)))
)

2
Tôi tin rằng nỗ lực ban đầu của bạn nên được (setq initial-buffer-choice 'helm-recentf). Có initial-buffer-choicethể có một chức năng như một giá trị, mà hình thức được trích dẫn mà không có phép so sánh sẽ cung cấp.
Tên người dùng có ý nghĩa

Rõ ràng là kỹ năng elbie mới của tôi.
biocyberman

Chúng ta ở đây để học :). Với hình thức đó, tôi nhận được helm-recentfbộ đệm khi bắt đầu, vì vậy không cần sử dụng giải pháp cập nhật 2 của bạn.
Tên người dùng có ý nghĩa

@MeaningfulUsername Tôi đã thực hiện Cập nhật 3 : D nó xử lý trường hợp bạn gọi emacs bằng tên tệp hoặc một cái gì đó đã có.
biocyberman

Và như bạn đã lưu ý, phiên bản được trích dẫn không chuyển sang bộ đệm, vì vậy có vẻ như (xe của bạn (helm-Recentf)) là giải pháp chính xác. (Tôi nghĩ rằng nó phải là một biểu thức lambda thay vì chỉ là một danh sách, nhưng nó không hoạt động ...)
Tên người dùng có ý nghĩa

2

Đây là gói hiển thị recentf-open-fileskhi bắt đầu Emacs mà không cần mở tệp: https://github.com/zonuexe/init-open-recentf.el

Cấu hình với gói sử dụng :

(recentf-mode 1)
(setq recentf-max-menu-items 25)

(use-package init-open-recentf
  :config
  (init-open-recentf))
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.