;;; ravi-init-helm.el --- helm initialization -*- lexical-binding: t; -*- ;; Copyright (C) 2015 ;; Author: ;; Keywords: abbrev ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; Initialize helm instead of ido. The code in this file may steal ;; global keybindings that are currently used for ido-mode/smex. ;;; Code: (use-package helm :bind (("" . helm-command-prefix) ("M-x" . helm-M-x) ("" . helm-multi-files) ("" . helm-find-files) ("M-y" . helm-show-kill-ring) ("H-`" . helm-all-mark-rings)) :init (progn (require 'helm-config) (setq helm-candidate-number-limit 100) ;; From https://gist.github.com/antifuchs/9238468 (setq helm-idle-delay 0.0 ; update fast sources immediately (doesn't). helm-input-idle-delay 0.01 ; this actually updates things helm-quick-update t helm-M-x-requires-pattern nil helm-ff-skip-boring-files t) (setq helm-ff-file-name-history-use-recentf t) (helm-mode)) :config (progn (unbind-key "C-x c") ; default helm prefix key (bind-key "" 'helm-execute-persistent-action helm-map) (bind-key "H-" 'helm-select-action helm-map) (use-package helm-posframe :config (helm-posframe-enable) (setq helm-posframe-parameters '((left-fringe . 10) (right-fringe . 10) (width . 1.0))) (setq helm-posframe-poshandler #'posframe-poshandler-frame-bottom-center)) (use-package helm-proc :commands helm-proc :init (progn (bind-key "q" 'helm-proc helm-command-map))) (use-package helm-git-grep :commands (helm-git-grep-from-isearch helm-git-grep-from-helm) :init (progn (bind-key "C-c g" 'helm-git-grep-from-helm helm-map) (bind-key "C-c g" 'helm-git-grep-from-isearch isearch-mode-map))) (use-package helm-ls-git :bind (("C-x v j" . helm-ls-git-ls))) (use-package helm-ag :config (progn (setq helm-ag-insert-at-point 'symbol))) (use-package helm-dash :commands (helm-dash helm-dash-at-point helm-dash-install-docset helm-dash-install-user-docset) :init (progn (bind-key "d" 'helm-dash-at-point helm-command-map) (bind-key "D" 'helm-dash helm-command-map))) (use-package helm-xref :commands helm-xref-show-refs :init (progn (setq xref-show-xrefs-function 'helm-xref-show-xrefs)))) :if ravi/use-helm-instead-of-ido :diminish helm-mode) (use-package helm-swoop :bind (("M-i" . helm-swoop)) :commands helm-swoop-from-isearch :init (progn (bind-key "M-i" 'helm-swoop-from-isearch isearch-mode-map) ) :config (progn (bind-key "M-i" 'helm-multi-swoop-all-from-helm-swoop helm-swoop-map) ;; Save buffer when helm-multi-swoop-edit complete (setq helm-multi-swoop-edit-save t) ;; If this value is t, split window inside the current window ;; (setq helm-swoop-split-with-multiple-windows nil) ;; Split direcion. 'split-window-vertically or 'split-window-horizontally ;; (setq helm-swoop-split-direction 'split-window-vertically) )) (provide 'ravi-init-helm) ;;; ravi-init-helm.el ends here