*对于问题 A***
在Icicles中,C-x C-f默认是一个多命令。这意味着当您完成一组文件名时:
对于其他 Icicles 文件命令也是如此,包括那些让您匹配绝对文件名的命令,这意味着您的 minibuffer 模式不仅可以匹配文件名的非目录部分,还可以匹配目录部分也是如此。
例如,带有前缀 arg 的 C-x C-f 匹配绝对文件名。 M-x icicle-locate-file 对给定目录下的所有文件执行相同的操作。
(您始终可以将多命令用作普通命令:如果您使用 RET 或 mouse-2,Cx Cf 会正常执行. 如果您不使用额外的键绑定来操作多个文件,那么您将永远不会知道其中的区别。)
见http://www.emacswiki.org/emacs/Icicles_-_File-Name_Input
*对于问题 B***
你想要的是Icicles搜索。
- 命令
icicle-search-file 搜索您指定的集合中的所有文件。
- 命令
icicle-search-buffer 搜索您指定的集合的所有缓冲区。
- 命令
icicle-search 两者兼而有之:带有负前缀 arg 的文件,带有非负前缀 arg 的缓冲区。
这些命令让您指定一个正则表达式来定义搜索上下文:您要搜索的文件或缓冲区的部分。例如,.* 表示搜索每一行。
定义搜索上下文后,您在 minibuffer 中键入一些文本,它会将候选搜索上下文缩小到与您的文本匹配的那些。你可以点击 M-SPC 来组合多个这样的模式。
然后您可以导航到选定的搜索命中:C-RET 或 C-mouse-2 进行访问,或使用 C-down 循环/访问。您甚至可以通过各种方式对匹配的候选进行排序,以便轻松比较它们或更改循环顺序。
见http://www.emacswiki.org/emacs/Icicles_-_Search_Commands%2c_Overview