9

我正在使用emacs前奏曲。

我最近决定从 ido 转向 helm。

所以我启用helmhelm-everywhere在 emacs prelude 中,

一切正常,除了默认行为helm-find-file

在 Ido 中,我可以点击ret进入选定的目录,但我必须点击rightc-j掌舵。此外,helm-find-files将列出每个目录...最顶部。ret ret ret这意味着在 ido 中,如果路径上没有太多目录,我可以一直点击直到到达最终目的地。

但是在 helm 中,我必须输入一些字符,点击c-j至少 1 个字符,点击c-j等等。我什至不能c-j连续击球。

我不想切换回 ido,因为我真的很喜欢 helm 在 find-file 中的 grep 功能。

无论如何我可以更改默认顺序以使其可能在底部列出.并进入目录而不是打开目录?..ret

4

1 回答 1

10

您要查找的函数是 (helm-execute-persistent-action),默认情况下绑定到 Cz。有些人喜欢用标签切换它:

(define-key helm-map (kbd "<tab>") 'helm-execute-persistent-action)
(define-key helm-map (kbd "C-z") 'helm-select-action)

如果您愿意,可以将其绑定到 ret,但它不会以您期望的方式打开文件。

至于你的另一个问题,我不知道 helm 是否有办法设置默认选择位置,但是要从顶部选择第一个项目,你可以这样做:

(define-key helm-map (kbd "C-j")
  (lambda ()
    (interactive)
    (helm-move-selection-common :where 'edge :direction 'previous)
    (helm-move-selection-common :where 'line :direction 'next)
    (helm-move-selection-common :where 'line :direction 'next)
    (helm-execute-persistent-action)))
于 2014-12-26T04:24:54.060 回答