helm如何不显示帮助信息?

如图上标记的地方,怎么能不显示,让helm有和ivy相似的界面?

既然在用 elm,很多东西可以直接问 helm,都不用麻烦 google:

  1. M-x describe-variableC-h v
  2. 输入 helm 空格 header 空格 line

答案很明显了,就是 (setq helm-display-header-line nil)


Update

底部红圈部分关键字:helm mode line string

可惜不起作用

(setq helm-display-header-line nil) 后第一个标记还是有

第二个标记我的意思是像ivy一样直接就不显示了,而不是 (setq helm-mode-line-string nil )后的效果

这些我之前试过,要不然我也不会来问了

Helm 不是 Ivy,所以它不会像 Ivy,不必强求。

第一个红框中的内容是 Helm Source Name,它存在除了是要显示帮助信息外,还起到区隔多个 Source 的作用,所以用户不能隐藏它。而 Ivy 不支持多个 Source。

第二个红框是 Helm Buffer 的 Mode Line,因为 Helm 用的是一个单独的 Buffer 显示补齐,自然就有个 Mode Line(设置 mode-line-format 应该能隐藏它,我没试过)。而 Ivy 压根就不需要一个单独的 Buffer。

(setq helm-display-header-line nil)
(defun turn-off-helm-mode-line ()
  (setq mode-line-format nil))

;; (add-hook 'helm-before-initialize-hook 'turn-off-helm-mode-line)
;; (add-hook 'helm-after-initialize-hook 'turn-off-helm-mode-line)
(add-hook 'helm-after-update-hook 'turn-off-helm-mode-line)
;; (add-hook 'helm-cleanup-hook 'turn-off-helm-mode-line)
;; (add-hook 'helm-select-action-hook 'turn-off-helm-mode-line)
;; (add-hook 'helm-before-action-hook 'turn-off-helm-mode-line)
;; (add-hook 'helm-after-action-hook 'turn-off-helm-mode-line)
;; (add-hook 'helm-exit-minibuffer-hook 'turn-off-helm-mode-line)
;; (add-hook 'helm-after-persistent-action-hook 'turn-off-helm-mode-line)
;; (add-hook 'helm-move-selection-before-hook 'turn-off-helm-mode-line)
(add-hook 'helm-move-selection-after-hook 'turn-off-helm-mode-line)
;; (add-hook 'helm-after-preselection-hook 'turn-off-helm-mode-line)
;; (add-hook 'helm-window-configuration-hook 'turn-off-helm-mode-line)
;; (add-hook 'helm-minibuffer-set-up-hook 'turn-off-helm-mode-line)
;; (add-hook 'helm-async-outer-limit-hook 'turn-off-helm-mode-line)
;; (add-hook 'helm-quit-hook 'turn-off-helm-mode-line)
;; (add-hook 'helm--temp-hooks 'turn-off-helm-mode-line)

M-x describe-variable helm-mode-line-string 最后一行说了,设为 nil 则改用原始的 mode-line-format

但是你不能直接在设置 (setq mode-line-format nil), 因为这只能隐藏当前窗口的,比如在 *scratch* 隐藏了,但是切换至其他窗口又出现了。

也不能设置 (setq-default mode-line-format nil),因为虽然所有窗口都没有了 mode-lien,但 helm 还是有。因为 helm 窗口都是临时创建的,在这个临时窗口中,它产生了新的 helm-mode-line-string/mode-line-format


提问之前最好说明你做了哪些尝试,不要等别人花时间回答了,才说无效。

谢谢回答,我有些明白了,主要是之前试用了一下ivy,对ivy比较简洁的界面有所好感,不过ivy在某些细节上不太好又回到helm,想看看helm能否配置成类似ivy的界面

求问你觉得Ivy哪些细节不好hhh想要一个试试helm的理由😂

我说一个,switch buffer 的时候没有路径等附加信息。打开多个相似/同名文件时,helm 显示的路径让我更快&准找到正确的 buffer。

ivy-rich和doom-emacs都解决了这个

  • counsel-find-file没有覆写默认的find-file(主要是因为这个),对counsel-find-file的特定设置在find-file不起作用,比如在dired对文件移动,重命名等 ;
  • 之前拷贝spacemacs的sudo-edit对ivy无效;
  • 新建文件我要记两个快捷键 ivy-immediate-done ivy-alt-done
  • tab我只想要补全,而不是 tab and done,比如我想把 aaaa.org 重命名为 aaaa.org.bak,helm就做得很好

虽然可以折腾一下,但我还是滚回helm了

1 个赞

新版ivy可以往上滚选择输入的文字作为picked candidate,然后回车就相当于immediate-done