Emacs 在微缓冲区中禁用paredit

Emacs 在微缓冲区中禁用paredit,emacs,paredit,Emacs,Paredit,我使用的是Emacs24.3.1,它在许多缓冲区中打开了paredit模式,包括minibuffer。当我进行regexp搜索时,这非常令人沮丧,因为paredit对regexp没有任何线索,也不允许我在某些地方输入某些字符。:) 我想对所有小缓冲区禁用编辑模式。根据,有一个小缓冲区设置挂钩,但使用(删除挂钩“小缓冲区设置挂钩”编辑模式)似乎不起作用。但是,paredit mode函数本身有一个可选参数,因此可以通过将以下内容添加到init.el,在微型缓冲区中禁用paredit mode: (

我使用的是Emacs24.3.1,它在许多缓冲区中打开了
paredit模式
,包括minibuffer。当我进行regexp搜索时,这非常令人沮丧,因为paredit对regexp没有任何线索,也不允许我在某些地方输入某些字符。:)

我想对所有小缓冲区禁用
编辑模式

根据,有一个
小缓冲区设置挂钩
,但使用
(删除挂钩“小缓冲区设置挂钩”编辑模式)
似乎不起作用。但是,
paredit mode
函数本身有一个可选参数,因此可以通过将以下内容添加到
init.el
,在微型缓冲区中禁用
paredit mode

(add-hook 'minibuffer-setup-hook (lambda () (paredit-mode 0)))
谢谢你的提示

当然,这有点像黑客。最好停止启用paredit。以下是[Immerr]在评论中的()建议:

C-h v minibuffer-setup-hook <RET>

minibuffer-setup-hook is a variable defined in `C source code'.
Its value is
((lambda nil
   (paredit-mode 0))
 ido-minibuffer-setup rfn-eshadow-setup-minibuffer minibuffer-history-isearch-setup minibuffer-history-initialize)
C-h v微型缓冲设置挂钩
minibuffer设置挂钩是在“C源代码”中定义的变量。
它的价值是
((λ零)
(编辑模式0)
ido微缓冲区设置rfn eshadow设置微缓冲区微缓冲区历史记录isearch设置微缓冲区历史记录初始化)

我怀疑
ido minibuffer setup
很可能是罪魁祸首。我会继续深入研究这个问题,一旦发现有用的内容,就会更新答案。

我在找到了解决方法后,继续发布了这个问题和答案,因为搜索堆栈溢出和谷歌搜索“禁用paredit minibuffer”并没有产生任何有用的结果。:)从您的消息中可以看出,您误解了emacs钩子,因为我不确定如何“使用remove钩子禁用钩子”。在emacs中,钩子是一个变量(实际上是一个简单的列表),其中包含要在某个事件中调用的函数,因此remove钩子应该用于删除附加到该钩子的函数之一。好的,术语fail,那么。某些东西(我假设某些东西是
starterkit lisp
)正在将
paredit模式
函数添加到
minibuffer设置挂钩
。有鉴于此,从逻辑上讲,
remove hook
应该能够从附加到该hook的函数列表中删除
paredit模式
。我现在拿到了吗?如果是这样,我将编辑问题以澄清。我现在想知道starter kit lisp是否真的在
minibuffer设置挂钩中添加了
paredit模式
。可能是添加了其他一些启用paredit的函数(可能是有条件的),这就是为什么我尝试删除
paredit模式
没有效果的原因。我浏览了初学者工具包lisp源代码,但并不清楚它是如何在微缓冲区中启用paredit的。为此,我将使用emacs内省,只需查看微缓冲区设置挂钩的值
(描述变量'minibuffer setup hook)
C-h v minibuffer setup hook
。从那里,人们可以试着一个接一个地禁用,看看哪一个有帮助。