Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Emacs Haskell模式-Speedbar未更新_Macos_Haskell_Emacs - Fatal编程技术网

Macos Emacs Haskell模式-Speedbar未更新

Macos Emacs Haskell模式-Speedbar未更新,macos,haskell,emacs,Macos,Haskell,Emacs,我正在OSX上使用Emacs23.4(从)。我的~/.emacs文件包含: (加载“/path/to/haskell站点文件”) (添加挂钩“haskell模式挂钩”打开haskell文档模式) (添加挂钩“haskell模式挂钩”打开haskell缩进) (需要“speedbar”) (speedbar添加支持的扩展名“.hs”) (添加到列表“加载路径”/usr/local/share/ghc-mod-1.10.15) (setq exec path(追加exec path'(“/usr/l

我正在OSX上使用Emacs23.4(从)。我的
~/.emacs
文件包含:

(加载“/path/to/haskell站点文件”)
(添加挂钩“haskell模式挂钩”打开haskell文档模式)
(添加挂钩“haskell模式挂钩”打开haskell缩进)
(需要“speedbar”)
(speedbar添加支持的扩展名“.hs”)
(添加到列表“加载路径”/usr/local/share/ghc-mod-1.10.15)
(setq exec path(追加exec path'(“/usr/local/bin”))
(自动加载“ghc初始”ghc“无)
(添加hook'haskell模式hook(lambda()(ghc init)(flymake模式)))

当我使用
M-x Speedbar
调用Speedbar时,我会得到一个Speedbar框架,其中显示Haskell文件的变量、导入、实例和数据类型。但是当我编辑Haskell文件时,speedbar框架不会刷新以反映对文件的编辑。我试着调用
Speedbar>Update
菜单,但没有成功。如何更新speedbar帧?

speedbar在默认情况下使用imenu从缓冲区提取标记,而imenu在重新设置缓冲区时非常懒惰。此外,一旦speedbar有了标签列表,它就会一直使用该列表,直到您“关闭”该文件。下次打开文件时,如果希望查看标记,它将从imenu(或用于标记的任何工具)重新蚀刻标记


由于imenu甚至比speedbar慢,您可以使用speedbar shift单击重新打开文件,speedbar将强制imenu重新分析。

我不明白您所说的“speedbar shift单击重新打开文件”是什么意思。关闭缓冲区(C-x k),然后重新打开文件会刷新我机器上的speedbar,但是有没有更快的方法来强制执行此操作-比如使用一些elisp?在speedbar中,如果您关闭文件(即单击文件名附近的小图标折叠标记列表,使其不再存在),然后当您按下shift键并单击图标以查看标记时,它将重新分析缓冲区。这将是使用老式emacs键绑定的shift中键单击,我认为双击也可以。我忘记了不同的变体。按住shift键单击对我不起作用:(如果有必要,我使用的是OS X。我找到了一个解决方法。如果我使用
C-X C-v
重新加载缓冲区,重新打开时,speedbar会显示更新的功能列表。