İDO'dan Helm'e taşınırken iş akışımı nasıl değiştirmeliyim


44

Bir Emacs acemi olarak, IDO'yu buldum ve dosyaları çok daha hızlı aramaya başladığından beri çok sevdim. Bu sitede biraz zaman geçirdikten sonra Helm hakkında daha fazla şey okudum ve geçiş yapmayı planlıyorum. Sorularımdan bazıları:

  1. En büyük farklar nelerdir?
  2. Özellikle, dosyaları bulurken, arabellek değiştirirken veya yeni komutları çağırırken iş akışım nasıl değişmeli?

Ben kullanılan bu yazı Helm kurmak, ama benim dosya arar ( C-x C-f) ve tampon anahtarları ( C-x beskisi gibi) hemen hemen aynı görünüyor.

İşte benim config:

(require 'helm)
(require 'helm-config)

;; The default "C-x c" is quite close to "C-x C-c", which quits Emacs.
;; Changed to "C-c h". Note: We must set "C-c h" globally, because we
;; cannot change `helm-command-prefix-key' once `helm-config' is loaded.
(global-set-key (kbd "C-c h") 'helm-command-prefix)
(global-unset-key (kbd "C-x c"))

(define-key helm-map (kbd "<tab>") 'helm-execute-persistent-action) ; rebihnd tab to do persistent action
(define-key helm-map (kbd "C-i") 'helm-execute-persistent-action) ; make TAB works in terminal
(define-key helm-map (kbd "C-z")  'helm-select-action) ; list actions using C-z

(when (executable-find "curl")
  (setq helm-google-suggest-use-curl-p t))

(setq helm-quick-update                     t ; do not display invisible candidates
      helm-split-window-in-side-p           t ; open helm buffer inside current window, not occupy whole other window
      helm-buffers-fuzzy-matching           t ; fuzzy matching buffer names when non--nil
      helm-move-to-line-cycle-in-source     t ; move to end or beginning of source when reaching top or bottom of source.
      helm-ff-search-library-in-sexp        t ; search for library in `require' and `declare-function' sexp.
      helm-scroll-amount                    8 ; scroll 8 lines other window using M-<next>/M-<prior>
      helm-ff-file-name-history-use-recentf t)

(helm-mode 1)

1
Daha önce fark ettiğiniz gibi, hisse senetleri Emacs komutlarını değiştirmek için Helm'e özgü komutları bağlamayı unuttun. Her bir belirli Helm komutu için kılavuzları okumaya devam ederseniz, (mümkünse) anahtar bağlamaları yaptığımı ve her bölüme ayarları yaptığımı göreceksiniz. Yine de, Helm :) tadını çıkarın
Tu Do

Yanıtlar:


29

GÜNCELLEME (Helm değişiklikleri, kişisel yapılandırma değişiklikleri ve Tu Do yorumları).

Birkaç yıl önce İDO'dan Helm'a geçtim ve bir daha arkama bakmadım.

  • Sunumu, örneğin ido-vertical-mode diyelimden daha temiz buluyorum.
  • Helm yine de esnek eşleşmeye sahip değil.
  • Smex'e ihtiyacınız yok, vs. Helm hepsini yapıyor.
  • Tu do makalesi, Helm'in yapabileceklerinin güzel animasyonlu ekran görüntülerini sağladığı için iyidir.

Helm mermi, Helm baskın, Helm anlam, Helm ag ve bazı Helm etkileşimli komutlarını kullanıyorum. Ödeme Melpa sayfa ilginizi çekebilecek Helm ilgili paketleri.

Helm ile ilgili kurulumlarımdan bazıları:

(setq helm-ff-transformer-show-only-basename nil
      helm-adaptive-history-file             "~/.emacs.d/data/helm-history"
      helm-yank-symbol-first                 t
      helm-move-to-line-cycle-in-source      t
      helm-buffers-fuzzy-matching            t
      helm-ff-auto-update-initial-value      t)

(autoload 'helm-descbinds      "helm-descbinds" t)
(autoload 'helm-eshell-history "helm-eshell"    t)
(autoload 'helm-esh-pcomplete  "helm-eshell"    t)

(global-set-key (kbd "C-h a")    #'helm-apropos)
(global-set-key (kbd "C-h i")    #'helm-info-emacs)
(global-set-key (kbd "C-h b")    #'helm-descbinds)

(add-hook 'eshell-mode-hook
          #'(lambda ()
              (define-key eshell-mode-map (kbd "TAB")     #'helm-esh-pcomplete)
              (define-key eshell-mode-map (kbd "C-c C-l") #'helm-eshell-history)))

(global-set-key (kbd "C-x b")   #'helm-mini)
(global-set-key (kbd "C-x C-b") #'helm-buffers-list)
(global-set-key (kbd "C-x C-m") #'helm-M-x)
(global-set-key (kbd "C-x C-f") #'helm-find-files)
(global-set-key (kbd "C-x C-r") #'helm-recentf)
(global-set-key (kbd "C-x r l") #'helm-filtered-bookmarks)
(global-set-key (kbd "M-y")     #'helm-show-kill-ring)
(global-set-key (kbd "M-s o")   #'helm-swoop)
(global-set-key (kbd "M-s /")   #'helm-multi-swoop)

(require 'helm-config)
(helm-mode t)
(helm-adaptative-mode t)

(global-set-key (kbd "C-x c!")   #'helm-calcul-expression)
(global-set-key (kbd "C-x c:")   #'helm-eval-expression-with-eldoc)
(define-key helm-map (kbd "M-o") #'helm-previous-source)

(global-set-key (kbd "M-s s")   #'helm-ag)

(require 'helm-projectile)
(setq helm-projectile-sources-list (cons 'helm-source-projectile-files-list
                                         (remove 'helm-source-projectile-files-list 
                                              helm-projectile-sources-list)))
(helm-projectile-on)

(define-key projectile-mode-map (kbd "C-c p /")
  #'(lambda ()
      (interactive)
      (helm-ag (projectile-project-root))))

(define-key org-mode-map (kbd "C-x c o h") #'helm-org-headlines)

@Ryan Varsayılanın helm-boring-file-regexp-listburada sunulandan daha fazlasını içerdiğine dikkat edin . Remiro'nun kurulumunu kullanıyorsanız, bu noktaya dikkat edin. Muhtemelen bu onun tercihi. helm-input-idle-delayve helm-idle-delay defaultmümkün olan en hızlı yanıtı vermek için 0.01 ay önceydi. Genel olarak, kurulum iyi.
Tu Do

Uyumun gerçekten çok hoş! Bunu nasıl ayarladın?
fommil,

Teşekkürler @fommil, Ben sadece 'align' ile '#' ile regexp 'kullanın ve arada sırada multiple-cursors.
rimero

Cevabınız çok güzel. Bununla birlikte bir sorum var - Projectile + Ido'yu kullanarak projectile-find-fileve ekranın altında sadece tek bir satır açacağım, Helm + Projectile tam bir pop-up olacaktır. Bu davranışı değiştirmek için bir seçenek var mı?
Ven,

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.