问题标签 [icicles]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
9576 浏览

emacs - Emacs:导航目录和打开文件的好策略是什么?

上周,我(再次)因不得不处理 R 和 Perl 的不同 IDE(我不喜欢或使用它们都不足以让我真正适应)而感到愤怒,我决定尝试 Emacs。做出这个决定时,我是带着某种恐惧的。我的主要用途是用于带有 cperl 的 Perl 和带有 ESS 的 R。我的环境是 Windows 7 Ultimate 64 位,我正在运行 v23.4.1,我认为这是 ESS 包代表我安装的。

近一个星期以来,到目前为止,它出奇地轻松,不比任何其他重要的软件更复杂。我已将我的 ctrl 键重新映射到大写锁定、更改默认文件夹、弄乱 .emacs 并添加了一些附加功能,例如自动安装、yasnippet、颜色主题、冰柱和其他一些。显然那里有一些非常复杂的东西。当然,基础 Emacs 的某些特性会立即变得非常强大和有用,例如向上和向下搜索。总的来说,我感到惊喜和放心。

比我预期的更粗糙的一件事是查找和打开文件的过程。在粗略阅读了各种教程后,我得到了这张准神奇的文件位置和文件名自动完成的图像。我设置中的主目录具有 g:/roaming/code/perl 或 g:/roaming/code/R/ 之类的路径,但我经常需要分支到完全不同的路径,例如 g:/pricedata/support files/sector/project01/等等。

目前,当我需要使用不同的分叉时,我会费力地删除文件路径,然后使用自动完成功能更深入地进入文件系统的该分支。这让我回到了二十年前在 Amiga 上运行 bash shell。

我期待什么?类似于(使用上面的示例)键入“project01”以立即跳到路径底部的文件夹中。出于某种原因,我想到 Emacs 会预加载目录。所以也许这不现实。

我的猜测是,我的困难可能源于我自己不熟悉,而不是 Emacs 的结构缺陷,并导致了我的问题。我不能抱怨没有足够的文件;而是有丰富的信息,它散布在相当随意的地方。冰柱也有类似的问题——如果有的话太多了。

1) 当尝试在 minibuffer 中打开文件或使用其他方法时,在文件树的不同分支中移动的最佳策略是什么?是否有别名可用于从一个地方到另一个地方的快捷方式,或者可以指定要预加载的目录?人们只是经常CD吗?或者我是从完全错误的角度出发,需要采取不同的策略?

2)通过额外的设置,是否可以使用自动完成功能在(比如)上面直接通过通配符等前缀的 project01 中查找文件?我应该关注什么才能在这里变得更有效率?我不是在利用诸如冰柱之类的附加组件的力量吗?

我意识到这些问题危险地接近了已弃用的没有明确答案的类别。我的辩护是,在我承诺养成坏习惯或糟糕的长期解决方案之前,在这个阶段的一些提示/指导会受到欢迎,我怀疑这些答案将使其他可能正在考虑转换的人受益。如果有问题,我很乐意撤回或改写。

0 投票
2 回答
464 浏览

emacs - Emacs:如何反转“加载路径”?

问题与将子目录添加到加载路径的问题有关。这是一个解决方案。不幸的是 - 它似乎恢复了加载路径。我试图自己修复它,但无法做到并且需要帮助。

所以我的问题是:我如何恢复一个load-path.

我试过(setq load-path (reverse load-path))但失败了——这表明这load-path不是一个列表......

编辑

反转加载路径确实有效 - 我不知道在发布之前尝试它时我做错了什么。

我正面临一个非常奇怪的simple.el阴影问题sunrise-commander.el- 虽然它应该在此之前加载。我想 - 问题在于我在加载路径中有目录的顺序 - 但是现在 - 当我反转load-path-progmodes目录在那个之前sunrise- 问题仍然存在。我很困惑。

然后我将重新提出我的问题:如何确保在核心 Emacs 代码之后加载给定的扩展?

编辑 2

如果影子并不意味着,我认为 - 我的实际问题是许多键绑定sunrise-commandericicles核心 emacs 函数。例如当我使用 iciclesM-p绑定到

虽然它应该是previous-history-element。同样,当我使用sunrise-commander M-u绑定到

虽然它确实应该是sr-history-next

编辑 3

哦,我解决了!在过去,我曾经通过突触包管理器在系统范围内安装 emacs 的东西。然后我提出了一个决议——这样就不可能随身携带我的定制。之后我维护了一个本地的 emacs 和 emacs 包。所以我所要做的就是删除所有系统范围的 emacs 东西。

** 编辑 4**:

不,不是这样。它的方式 ErgoEmacs 键绑定扩展。M-n在我评论它之后,我已经M-picicles. 尽管RET在 Sunrise 中,指挥官仍然调用 dired 函数——而不是 sunrise 函数。希望以后能解决。

0 投票
1 回答
1947 浏览

emacs - Emacs:我如何绑定到 Ms?

我要绑定

M-semacs中?我试过:

但它不起作用。问题是 -M-s是前缀键。

编辑 2

我把自己弄得很不清楚。我想绑定switch-to-next-frameM-s。我试过:

它没有用:M-s-当我按下时, emacs正在做M-s。我想 - 问题是M-s作为前缀键。我厌倦了解开它 - 但它没有成功。然后我来到这里问了这个问题。正如我后来发现的那样——问题出在我的身上.emacs——当我注释掉icicles它时,一切都开始按预期工作了。

编辑 3

实际上 dired 是真的使用M-s前缀键:

所以绑定女士是一个非常糟糕的主意。

0 投票
1 回答
436 浏览

emacs - Emacs:数字或标记-p错误

有时当我与冰柱、德雷德、日出指挥官或其他人发生冲突时——

错误弹出 - 它几乎阻塞了 emacs - 没有query-find-replace工作,不再ido有。唯一的方法- 是重新启动emacs。有没有人有办法让emacs忘记这个错误?

0 投票
3 回答
117 浏览

emacs - 正则表达式的扩展命令?

在 Emacs 中 - 有没有办法可以在 minibuffer 中通过正则表达式搜索扩展命令?那就是 - 我想通过正则表达式过滤命令,然后使用 IDO 或 Icicles 选择我需要的命令。

0 投票
2 回答
235 浏览

emacs - minibuffer中的空白模式?

有没有办法可以whitespace-mode在 minibuffer 中打开?我不确定我会坚持下去——但有时我需要它。我尝试了add-hook所有M-x apropos RET minibuffer hook RET

但它不起作用。

0 投票
2 回答
363 浏览

emacs - 默认情况下在启动时在 emacs 中加载 icicle-mode

我想配置 emacs 以便默认情况下启用 Icy 模式。正如“icicles-doc1.el”中所建议的,我在.emacs文件末尾添加了以下代码:

当我运行 emacs 时,我得到一个 *Warning* 缓冲区:

警告(初始化):加载“c:/Users/USER/AppData/Roaming/.emacs”时出错:

文件错误:无法打开加载文件,冰柱

为确保正常运行,您应该调查并删除初始化文件中的错误原因。使用 `--debug-init' 选项启动 Emacs 以查看完整的错误回溯。

当我执行调试选项时,*Backtrace* 缓冲区会显示如下内容:

调试器进入--Lisp 错误: (file-error "Cannot open load file" "icicles") require(icicles) eval-buffer(# nil "c:/Users/USER/AppData/Roaming/.emacs" nil t) ; 在缓冲区位置读取 5062 load-with-code-conversion("c:/Users/USER/AppData/Roaming/.emacs" "c:/Users/USER/AppData/Roaming/.emacs" tt) load("~/ .emacs" tt) #[0 "\205\262

无论有没有导致问题的那两条线,.emacs当我执行M-x icicle-mode.

0 投票
1 回答
62 浏览

emacs - 如何更改 Emacs3 icicles 中的 icicle-search-context-regexp 变量

我想使用icicle-comint-searchin shell-mode,但它曾经失败并出现这样的错误消息

当然,我的 shell 提示符zsh不符合那个正则表达式。乙

我试图通过更改icicle-search-context-regexpsetq满足我的zsh提示。但是当我发出icicle-comint-search错误消息时又出现了。当我检查 的变量值时icicle-search-context-regexp,它再次被重置为其默认值。

我怎样才能改变它以满足我的zsh提示?

0 投票
1 回答
133 浏览

emacs - emacs icicle dabbrev 完成

我想在 icicles 中使用 dabbrev 补全,如下页所述。

http://www.emacswiki.org/emacs/Icicles_-_Completion_in_Other_Buffers

如果用户选项“icicle-top-level-key-bindings”包含“dabbrev-completion”条目,则 Icicles 将通常绑定到命令“dabbrev-completion”的键重新映射到使用 Icicles 完成的命令“icicle-dabbrev-completion”每当有多个完成候选人时。然后,您可以使用任何 Icicles 功能,例如 apropos 完成和候选循环。此外,您可以完成一个空前缀,从头开始使用 apropos 完成。

但是我不明白如何在我的 .emacs 文件中设置“icicle-top-level-key-bindings”。我尝试了许多无效的步骤。'Mx describe-variable RET icicle-top-level-key-bindings' 显示了一个包含很多选项的列表。我怎样才能将“dabbrev-completion”添加到这个现有列表中。

我从http://www.emacswiki.org/emacs/Icicles_-_Libraries获得了冰柱库

我还在icicles-opt.el中看到了以下代码

这是否意味着 emacs2.4.3 不支持 dabbrev 模式?

0 投票
2 回答
622 浏览

search - 在 Windows 7 下使用 Emacs 中的 icicles 查找文件

icicles问题的简短版本:即使只给出文件名的部分匹配,我如何才能有效地搜索目录和子目录中的文件?

编辑:简短的回答是icicle-locate-file在目录的顶层使用并使用 S-Tab (shift-tab) 开始完成而不是普通选项卡。此答案中的更多详细信息。

作为附录,我icicles在此之后放弃了,因为每次使用icicle-locate-file. 可能有办法解决这种延迟,也许是通过创建和“收集”的文件集icicles,但我开始觉得潜在的好处正在被解决这个问题的前期成本和保持文件的成本所侵蚀。文件集更新。正如作者在icicles下面指出的,访问 *nix 的locate命令将允许我使用icicle-locate,这比icicle-locate-file. 但是,我在 Windows 上运行,并且 Everything 实用程序对我不起作用。所以,回到大量使用 IDO 和扩展到dired缓冲区的书签。

==========

更长的版本... 由于 Emacs (24.3.1) 现在是我的主要开发环境,我一直在探索提高效率的方法,特别是在文件名完成方面有一段时间了。对这个问题的几个很好的答案将我指向ido-modeand dired-x,这两个我现在都在使用。

另一个很棒的推荐是 Emacs 的书签。特别是,将dired缓冲区定义为书签并使用C-x r b mybook1甚至C-x r bC-x C-fminibuffer 调用(此页面很有帮助)跳转到它们是两个非常有用的策略。

有几个人提到anything了它的继任者helm。我一直无法获得在 Windows 7 上运行的任何一个包的文件位置部分。显然它们依赖于Everything的命令行版本,但这对我来说失败了,正如这个问题中所详述的那样,对此有一些有用的回应,但没有确定的答案。似乎它在 *nix 上运行顺利,但helm-locate在 Windows 上没有太多关于 etc 的讨论。所以这算在内helmanything用于文件名完成。

这让我想到了冰柱。在一个关于在子目录中进行查找文件搜索的问题中,提问者评论说他们已经查看了“ido 和 icicles,但它们似乎只在当前目录中工作很浅”。

作为对此的回应,出现了关于 icicles 的评论:“如果需要,您可以搜索系统上的任何文件,匹配文件名和路径的任何部分”,并带有指向Icicles 文件名输入页面的指针。虽然我很欣赏 icicles 帮助页面所付出的巨大努力,但我并没有发现这个很有用,因为它主要包含 icicles 功能的描述列表。对我有用的是一个指导您查找文件的教程。

让我们假设以下内容。

  • 我正在运行 Emacs 24.3.1 的 Windows 7 安装。
  • 我有一个包含一些文件和文件夹的顶级目录。在这种情况下,它是c:/iciclestest/
  • 我知道在树的这一部分某处有一个文件,其中有“grob”作为文件名的一部分。
  • 我想用 icicles 来找到这个文件。我已将(require 'icicles)and(icy-mode 1)放入我的 init 文件中。

所以,我们走吧。在暂存缓冲区中启动 Emacs。点击 Cx Cf。我收到一个File or directory提示,左侧有一个紫色加号,我认为这表明这是 icicles 的multi-commands之一。
冰

点击选项卡让我得到这个迷你框架,向我展示当前目录的内容。
冰

我点击folder1子目录上的选项卡,冰柱向我显示了其中的内容,正如人们所期望的那样。 冰

您可以看到几个名称中带有“grob”的文件。
对,Cg 清除所有内容,然后再次 Cx Cf。输入“格罗布”。我收到“无前缀完成”消息。这让我有点惊讶,因为我预计 icicles 会像 ido-mode 那样具有某种奇妙的模糊匹配。 冰

好吧,也许我需要一个不同的命令。Let's try M-x icicle-locate-file,它给了我这个提示: 冰

如果我输入“grob”并点击确认,我只会得到一个新文件,如下所示。 冰

回顾一下:我想做的是输入一个字符串,然后让冰柱去寻找包含该字符串的文件或文件夹。我的主开发文件夹有很多目录和数千个文件,所以在 Emacs 中快速查找将是天赐之物。

我意识到该locate命令在 Windows 上不存在,因此功能在某些方面会受到限制,但我认为基于用户输入的字符串从当前目录递归搜索文件和子​​目录会很简单。我错过了什么?我会以正确的方式解决这个问题吗?这可以在冰柱中完成吗?