Temel proje yönetimi için DeskTop'u kullanma


12

DeskTop'u temel proje yönetimi için kullanmak istiyorum , yani üzerinde çalıştığım projeye bağlı olarak bir dizi arabellek açmak ve geçmişleri geri yüklemek istiyorum. Bu mümkün, yani bir proje dizininde bir masaüstü dosyası olması ve bunu nasıl başarabilirim?

Yanıtlar:


13

Masaüstü dosyalarını sizin gibi yönetmem gerekiyordu; her proje için ayrı bir masaüstü dosyası bulundurun ve her biri için bağımsız olarak arabellekleri, Emacs değişkenlerini vb. kaydedin.

Bunu adında bir paket kullanarak başardım bookmark+.

imi +

Kütüphane Yer İşareti + farklı yer işaretlerini yönetir, bunlardan biri Masaüstü Yer İşaretleri'dir .

Paketi kurduktan sonra,

  • Senin (require 'bookmark+)içinde olması gerekirinit.el
  • Her proje için bir yer imi oluşturmak için, her proje için istediğiniz arabellekleri ayarlayın ve M-x bmkp-set-desktop-bookmarkveya yapın C-x p K. Bu, masaüstü dosyasını nereye kaydetmek istediğinizi soracaktır ve dosyayı bu projenin klasörüne kaydetmeyi seçebilirsiniz.
  • Tüm projeler için masaüstü yer işaretlerini ayarladıktan sonra, M-x bmkp-desktop-jumpveya tuşlarını kullanarak farklı yer işaretlerine atlayabilirsiniz C-x j K.

İmi + Daha bu paketle ilgili bilgi edinmek istiyorsanız Emacs Wiki üzerinde doc çok bilgilendirici.

desktop.el

Buna ek olarak, desktopmasaüstü başına kaydetmek istediğim her şeyi seçebileceğim paketi kurmak için aşağıdakilere sahibim

(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)))

Emac'lerden çıkarken projeye özgü masaüstlerini kaydetme

C-x C-cEmacs çıktıktan sonra masaüstü otomatik olarak kaydedilmesi için aşağıdaki işlevi bağlamak yararlı buluyorum .

(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))

Bazen, emacs çıkarken masaüstünü kaydetmek istemem. Bu durumlar için, bu diğer işlevi kullanıyorum ve bunu da bağladım 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)))

Teşekkürler - bu çok umut verici görünüyor. Daha önce yer imleri + ve DeskTop kombinasyonunu buldum, ancak bunu yapmanın kısa bir yolunu bulamadım. Kulağa harika geliyor. En son Pazartesi günleri deneyeceğim!
Rainer

1
Vanilya Emacs masaüstü komutlarının aksine, Bookmark + masaüstü yer işaretlerinin birden çok masaüstü arasında geçiş yapmak için tasarlandığını unutmayın. IOW, birden çok masaüstü dosyanız olabilir. Ve masaüstü dosyalarınız her yerde olabilir. Farklı dizinlerde olmaları gerekmez. Vanilla masaüstü kullanımı, dizin başına yalnızca bir masaüstü dosyanız olduğunu varsayar.
Drew

@kaushalmodi Teşekkürler - mükemmel. Ve şimdi yer imi + hakkında okuyacak çok şeyim var - ama tam olarak istediğimi istiyor.
Rainer

@ Bu tam olarak aradığım şeydi - ve bir cazibe gibi çalışıyor.
Rainer

@kaushalmodi Masaüstünü kaydetmeden emac'lardan çıkmak için çıkış işlevinizi kullandığınızı varsayıyorum - veya masaüstünü her zaman kaydetmek istediğinizde, değişkeni desktop-eve`` yeni sor '' olarak kullanmak için bir fark var `?
Rainer

0

İlgili projelerin yerel dizininden masaüstü dosyasını kaydetmek ve yüklemek / okumak için aşağıdaki kurulumu kullanma eğilimindeyim:

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

Projeler arasında geçiş, mermi veya diğer proje yönetimi yardımcı programları herhangi bir masaüstü dosyası yüklemez gibi sorunları olmadan değil, projectile-after-switch-project-hookbir ihtiyaç yapmak için özel bir işlevi çağırmak için işlevi kullanabilirsiniz

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.