我也用ido-mode
了很多时间并训练了我的肌肉记忆力:)我认为这种ido
风格比这种helm
方法更直观。我搜索东西(输入一些字符)并提交给find(命中RET
),就像Web浏览器的搜索/地址栏一样。如果选择的是目录,则输入该目录,然后再次在该目录中搜索。这对我来说似乎很自然,所以我写了一个小建议helm-execute-persistent-action
来强迫这个机制。
(require 'helm)
(defun fu/helm-find-files-navigate-forward (orig-fun &rest args)
(if (and (equal "Find Files" (assoc-default 'name (helm-get-current-source)))
(equal args nil)
(stringp (helm-get-selection))
(not (file-directory-p (helm-get-selection))))
(helm-maybe-exit-minibuffer)
(apply orig-fun args)))
(advice-add 'helm-execute-persistent-action :around #'fu/helm-find-files-navigate-forward)
(define-key helm-find-files-map (kbd "<return>") 'helm-execute-persistent-action)
我也backspace
略微优化了密钥。如果我键入某些内容并想进行更正,则按退格键。这将删除一个字符。如果我位于目录的开头并再次按退格键,则向上导航一级。这样可以大大加快导航速度!
(defun fu/helm-find-files-navigate-back (orig-fun &rest args)
(if (= (length helm-pattern) (length (helm-find-files-initial-input)))
(helm-find-files-up-one-level 1)
(apply orig-fun args)))
(advice-add 'helm-ff-delete-char-backward :around #'fu/helm-find-files-navigate-back)
要删除无用.
,并..
在开始的时候,你可以把它添加到helm-boring-file-regexp-list
配置变量。
ido-mode
,在其中按<RET>
选择文件夹以在其中查找文件。我认为这是尝试查找文件时最一致的行为-发现文件打开后要执行的操作;找到文件夹后要做的是将其放入其中,以便可以找到文件。