Sử dụng DeskTop để quản lý dự án cơ bản


12

Tôi muốn sử dụng DeskTop để quản lý dự án cơ bản, tức là mở một bộ đệm và khôi phục lịch sử tùy thuộc vào dự án tôi đang làm. Điều này là có thể, tức là có một tệp máy tính để bàn trong một thư mục dự án và làm thế nào tôi có thể đạt được điều này?

Câu trả lời:


13

Tôi cần phải quản lý các tập tin máy tính để bàn giống như bạn; có một tệp máy tính để bàn riêng cho từng dự án và lưu bộ đệm, biến Emacs, v.v ... độc lập cho từng dự án.

Tôi đã có thể đạt được điều đó bằng cách sử dụng một gói được gọi là bookmark+.

đánh dấu +

Thư viện Bookmark + quản lý các loại dấu trang khác nhau, một trong số đó là Dấu trang để bàn .

Sau khi cài đặt gói,

  • Bạn cần phải có (require 'bookmark+)tronginit.el
  • Để tạo dấu trang cho từng dự án, hãy thiết lập bộ đệm bạn muốn cho từng dự án và thực hiện M-x bmkp-set-desktop-bookmarkhoặc C-x p K. Điều đó sẽ hỏi bạn nơi bạn muốn lưu tệp máy tính để bàn và bạn có thể chọn lưu nó trong thư mục của dự án đó.
  • Khi bạn đã đặt dấu trang trên máy tính cho tất cả các dự án, bạn có thể chuyển sang các dấu trang khác bằng cách sử dụng M-x bmkp-desktop-jumphoặc C-x j K.

Tài liệu Bookmark + trên Emacs Wiki rất nhiều thông tin nếu bạn muốn tìm hiểu thêm về gói này.

máy tính để bàn

Ngoài ra, tôi có các cách sau để thiết lập desktopgói nơi tôi có thể chọn tất cả những gì tôi muốn lưu trên mỗi máy tính để bàn

(desktop-save-mode 1)

;; Source: https://github.com/purcell/emacs.d/blob/master/lisp/init-sessions.el
; save a bunch of variables to the desktop file
;; for lists specify the len of the maximal saved data also
(setq desktop-globals-to-save
      (append '((comint-input-ring . 50)
                (compile-history . 30)
                desktop-missing-file-warning
                (dired-regexp-history . 20)
                (extended-command-history . 30)
                (face-name-history . 20)
                (file-name-history . 100)
                (grep-find-history . 30)
                (grep-history . 30)
                (ido-buffer-history . 100)
                (ido-last-directory-list . 100)
                (ido-work-directory-list . 100)
                (ido-work-file-list . 100)
                (magit-read-rev-history . 50)
                (minibuffer-history . 50)
                (org-clock-history . 50)
                (org-refile-history . 50)
                (org-tags-history . 50)
                (query-replace-history . 60)
                (read-expression-history . 60)
                (regexp-history . 60)
                (regexp-search-ring . 20)
                register-alist
                (search-ring . 20)
                (shell-command-history . 50)
                tags-file-name
                tags-table-list)))

Tiết kiệm máy tính để bàn dành riêng cho dự án khi thoát khỏi emacs

Tôi thấy hữu ích khi liên kết các chức năng dưới đây để C-x C-cmáy tính để bàn được lưu tự động khi tôi thoát emacs.

(defun save-desktop-save-buffers-kill-emacs ()
  "Save buffers and current desktop every time when quitting emacs."
  (interactive)
  (desktop-save-in-desktop-dir)
  (save-buffers-kill-emacs))

Đôi khi, tôi không muốn lưu máy tính để bàn khi thoát emacs. Đối với những dịp đó, tôi sử dụng chức năng khác này và đã ràng buộc điều đó C-x M-c.

;; Kill emacs when running in daemon mode or not
;; Source: http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00348.html
(defun tv-stop-emacs ()
  (interactive)
  (if (daemonp)
      (save-buffers-kill-emacs)
    (save-buffers-kill-terminal)))

Cảm ơn - có vẻ RẤT hứa hẹn. Tôi đã tìm thấy sự kết hợp của bookmark + và DeskTop trước đây, nhưng không thể tìm thấy cách thực hiện ngắn gọn. Nghe thật tuyệt. Tôi sẽ dùng thử vào thứ Hai mới nhất!
Rainer

1
Lưu ý rằng, không giống như trường hợp của các lệnh máy tính để bàn vanilla Emacs, Bookmark + dấu trang trên máy tính để bàn được chuyển đổi giữa nhiều máy tính để bàn. IOW, bạn có thể có nhiều tập tin máy tính để bàn. Và tập tin máy tính để bàn của bạn có thể ở bất cứ đâu. Họ không cần phải ở trong các thư mục khác nhau. Sử dụng máy tính để bàn Vanilla giả định rằng bạn chỉ có một tệp máy tính để bàn cho mỗi thư mục.
vẽ

@kaushalmodi Cảm ơn - rực rỡ. Và bây giờ tôi có rất nhiều thứ để đọc về bookmark + - nhưng nó thực sự muốn tôi muốn.
Rainer

@Drew đây chính xác là những gì tôi đang tìm kiếm - và nó hoạt động như một sự quyến rũ.
Rainer

@kaushalmodi Tôi giả sử rằng bạn đang sử dụng chức năng thoát của mình để có thể thoát emacs mà không lưu máy tính để bàn - hoặc có một sự khác biệt, khi muốn luôn lưu máy tính để bàn, sử dụng biến desktop-evethành `` Ask-if-new`` `?
Rainer

0

Tôi có xu hướng sử dụng các thiết lập sau để lưu và tải / đọc tệp máy tính để bàn từ thư mục cục bộ của các dự án tương ứng:

 (require 'desktop)
 (setq desktop-path (list "./"))
 (desktop-save-mode 1)
 (desktop-read)

Đây không phải là không có vấn đề như chuyển đổi các dự án thông qua ví dụ, đạn hay các tiện ích quản lý dự án khác không tải bất kỳ tập tin máy tính để bàn nhưng tôi muốn người ta có thể sử dụng các projectile-after-switch-project-hookchức năng để gọi một chức năng riêng để làm cần thiết

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.