Emacs直接模式和Isearch

时间:2010-12-17 15:13:11

标签: emacs dired

我最近发现了一些Emacs的dired模式的强大功能和易用性。 但是在Krusader中,我刚开始按文件夹/文件的第一个字母,然后按回车键,然后我深入,然后搜索另一个文件夹,焦点,按回车直到找到我应该打开的文件。

我现在如何处理直播:

  • 按Ctrl + S for isearch
  • 按字母查找文件夹
  • 按一下(或其他组合)一次以逃避I-search
  • 按回车键进入文件夹或打开文件(打开文件,我知道我也有其他信件)

我真的需要让这更容易。 所以我想要的主要的东西就是当我按下一次输入时:

  • 逃离Isearch
  • 输入文件夹(或打开文件)

当然第二个主要的东西默认情况下是在某些isearch模式下使用dired,只是通过键入导航,并且只有当按ESC键才能处于单个字母所具有的直接模式时命令意义。我不确定这个第二个主要内容是否容易实现或推荐用于dired。 但是主要的东西我认为应该可以使用一些我不知道的智能Lisp线来实现:)

谢谢你们,

的Stefan

3 个答案:

答案 0 :(得分:3)

以下是执行主要内容的一种方法:

(add-hook 'isearch-mode-end-hook 
  (lambda ()
    (when (and (eq major-mode 'dired-mode)
           (not isearch-mode-end-hook-quit))
      (dired-find-file))))

答案 1 :(得分:1)

第二个主要内容:

(defadvice dired (after activate)
  (isearch-forward))

(ad-activate 'dired)


(defadvice dired-find-file (after activate)
  (isearch-forward))

(ad-activate 'dired-find-file)


(defadvice dired-up-directory (after activate)
   (isearch-forward))

(ad-activate 'dired-up-directory)

答案 2 :(得分:0)

小猪支持madalu的答案,你可以通过串联isearches来接近第二个主要的事情:

(add-hook 'isearch-mode-end-hook 
  (lambda ()
    (when (and (eq major-mode 'dired-mode)
               (not isearch-mode-end-hook-quit))
      (dired-find-file)
      (isearch-forward-regexp))))