           (unless (locate-library "dante")
             (add-hook 'haskell-mode-hook 'interactive-haskell-mode))))
 
-(use-package helm
-  :init (progn
-          (require 'helm-config)
-          (setq ido-use-virtual-buffers t
-                helm-mode-fuzzy-match t
-                helm-completion-in-region-fuzzy-match t))
-  :bind (("C-c h" . helm-command-prefix)
-         ("M-s o" . helm-occur)))
-
-(use-package helm-ag
-  :init (setq helm-ag-insert-at-point 'symbol)
-  :bind (("C-c /" . helm-ag)
-         ("C-c s" . helm-ag-project-root)))
-
-(use-package helm-git-ls
-  :bind ("C-x C-d" . helm-browse-project))
+(defvar ddb/hs-state nil
+  "Current state of hideshow ddb/hs-toggle-all.")
+
+  ;;;###autoload
+(defun ddb/hs-toggle-all ()
+  "Toggle hideshow all."
+    (interactive)
+    (setq ddb/hs-state (not ddb/hs-state))
+    (if ddb/hs-state
+        (hs-hide-all)
+      (hs-show-all)))
+
+(use-package hideshow
+  :commands hs-minor-mode
+  :init (add-hook 'emacs-lisp-mode-hook #'hs-minor-mode)
+  ;; could be bound specifically for the emacs-lisp mode map
+  :bind ("<C-tab>" . ddb/hs-toggle-all))
 
 (use-package hydra)
 

          (ace-window-display-mode)))

(use-package avy
  :bind (("C-=" . avy-goto-word-1)
         ("M-g g" . avy-goto-line)
         ("C-c W" . avy-org-refile-as-child))
  :init (progn

(bind-key "C-x M-k" 'home.d/delete-current-buffer-and-delete-file)
(bind-key "M-g M-g" 'home.d/goto-line-with-feedback)
(bind-key "C-c r" 'replace-string)
;; Make sure that the last letter of the keybinding does not
;; correspond to the letter of the XMonad binding called by ct, else
;; xdotool key does not seem to be called properly / there is an
