* helm Evil bindings for [[https://emacs-helm.github.io/helm/][helm]]. =M-= modifiers are preferred over =C-= so the help prefix (=C-h=) is left alone. =h= and =l= are reserved for minibuffer editing in =helm-find-files= and =helm-read-file-map=. ** Key bindings *** helm-map (insert and normal state unless noted) | Command | Original | Evil | |----------------------------------+----------+--------------| | =helm-previous-source= | =C-o= | =M-[= | | =helm-next-source= | =C-o= | =M-]=, =C-o= | | =helm-execute-persistent-action= | =C-j= | =M-l= | | =helm-next-line= | =C-n= | =M-j=, =C-n= | | =helm-previous-line= | =C-p= | =M-k=, =C-p= | | =helm-next-page= | =C-v= | =C-f=, =C-v= | | =helm-previous-page= | =M-v= | =C-b=, =M-v= | | =helm-maybe-exit-minibuffer= | =RET= | =RET= | *** helm-map (normal state only) | Command | Original | Evil | |--------------------------------+-----------+-------------------------------------| | =helm-select-action= | =TAB= | == | | =helm-previous-source= | =C-o= | =[[=, =gk= | | =helm-next-source= | =C-o= | =]]=, =gj= | | =helm-prev-visible-mark= | =M-(= | =(= | | =helm-next-visible-mark= | =M-)= | =)= | | =helm-next-line= | =C-n= | =j= | | =helm-previous-line= | =C-p= | =k= | | =helm-beginning-of-buffer= | =M-<= | =gg= | | =helm-end-of-buffer= | =M->= | =G= | | =helm-quit-and-find-file= | =C-x C-f= | =/= | | =helm-refresh= | =C-c C-u= | =gr= | | =helm-yank-selection= | =C-c C-y= | =yp= | | =helm-copy-to-buffer= | n/a | =yP= | | =helm-kill-selection-and-quit= | =C-c C-k= | =yy= | | =helm-toggle-visible-mark= | =C-SPC= | =SPC= | | =helm-previous-page= | =M-v= | =C-u= (when =evil-want-C-u-scroll=) | | =helm-next-page= | =C-v= | =C-d= (when =evil-want-C-d-scroll=) | *** helm-find-files-map / helm-read-file-map | Command | State | Original | Evil | |-----------------------------------+----------------+----------+--------------| | =helm-ff-run-switch-other-window= | normal | =C-c o= | =go= | | =helm-ff-run-switch-other-window= | insert, normal | =C-c o= | =S-= | | =helm-ff-run-find-sh-command= | normal | =C-c /= | =/= | | =helm-find-files-up-one-level= | insert, normal | =C-l= | =M-h= | *** helm-find-files-map (normal state) | Command | Original | Evil | |------------------------------------+----------+------| | =helm-ff-run-ediff-file= | =C-c = | === | | =helm-ff-run-query-replace-regexp= | =M-%= | =%= | | =helm-ff-run-delete-file= | =M-D= | =D= | *** helm-generic-files-map | Command | State | Original | Evil | |-----------------------------------+----------------+----------+--------------| | =helm-ff-run-switch-other-window= | insert, normal | =C-c o= | =S-= | | =helm-ff-run-switch-other-window= | normal | =C-c o= | =go= | *** helm-buffer-map | Command | State | Original | Evil | |----------------------------------------+----------------+----------+--------------| | =helm-buffer-switch-other-window= | insert, normal | =C-c o= | =S-= | | =display-buffer= | insert, normal | n/a | =M-= | | =helm-buffer-switch-other-window= | normal | =C-c o= | =go= | | =display-buffer= | normal | n/a | =gO= | | =helm-buffer-run-ediff= | normal | =C-c = | === | | =helm-buffer-run-query-replace-regexp= | normal | =M-%= | =%= | | =helm-buffer-run-kill-persistent= | normal | =C-c d= | =D= | *** helm-occur-map / helm-grep-map | Command | State | Original | Evil | |---------------------------------------------------------------------+----------------+----------+--------------| | =helm-occur-run-goto-line-ow= / =helm-grep-run-other-window-action= | insert, normal | =C-c o= | =S-= | | same as above | normal | =C-c o= | =go= | *** helm-occur-mode-map / helm-grep-mode-map (normal state) | Command | Original | Evil | |-----------------------------------------------------+----------+-------------| | =helm-occur-mode-goto-line= / =helm-grep-mode-jump= | =RET= | =RET= | | =...-goto-line-ow= / =...-jump-other-window= | =C-o= | =C-o=, =go= | | =...-forward= variant | =M-n= | =M-n=, =gj= | | =...-backward= variant | =M-p= | =M-p=, =gk= | | =helm-gm-next-file= | =M-N= | =M-N= | | =helm-gm-precedent-file= | =M-P= | =M-P= | ** Notes - =helm-minibuffer-history-key= is set to =M-p= via =custom-set-variables=. - =helm-default-prompt-display-function= is set so the evil cursor renders correctly in helm's header line when =helm-echo-input-in-header-line= is non-nil. - =evil-collection-helm-hide-minibuffer-maybe= is added to =helm-minibuffer-set-up-hook= to hide the minibuffer cursor in that case.