Emacs - Helm

Helm1 is a framework to narrow selection. It can be installed by ELPA

M-x package-install
helm

After that, it should be configured accordingly. Without loss of generality, following configurations can be used.

(require 'helm-config)
(helm-mode 1)
(define-key global-map [remap find-file] 'helm-find-files)
(define-key global-map [remap occur] 'helm-occur)
(define-key global-map [remap list-buffers] 'helm-buffers-list)
(define-key global-map [remap dabbrev-expand] 'helm-dabbrev)
(define-key global-map [remap switch-to-buffer] 'helm-mini)
(define-key global-map [remap yank-pop] 'helm-show-kill-ring)
(define-key global-map [remap execute-extended-command] 'helm-M-x)

;; fuzzy match
(setq helm-M-x-fuzzy-match t
      helm-buffers-fuzzy-matching t
      helm-recentf-fuzzy-match t)

;; follow mode
(helm-follow-mode-persistent t)

Alternatively, package helm-ag can be installed to accelerate the match, which is a the-silver-searcher-based multithread counterpart of ack. Helm-ag and the-silver-searcher can be installed by

M-x package-install
helm-ag

and

pacman -S the_silver_searcher

Then, following two lines of configurations can be inserted to the configuration file of emacs.

(setq helm-ag-base-command "ag --nocolor --nogroup --ignore-case")
(setq helm-ag-command-option "--ignore *~ --ignore *html --ignore *o")
(setq helm-ag-insert-at-point (quote symbol))

(global-set-key (kbd "M-i") 'helm-do-ag-this-file)
(global-set-key (kbd "M-I") 'helm-do-ag-project-root)

Footnotes: