【问题标题】:How to make speedbar list the C functions + Unable to use sr-speedbar+macro+command history如何让speedbar列出C函数+无法使用sr-speedbar+macro+command history
【发布时间】:2012-11-12 04:08:51
【问题描述】:

我是 Windows XP 上的 Emacs 新手,经过大量搜索后我无法找到/理解多个查询。

  1. 我知道speedbar 将支持显示C 函数列表。如 http://stackoverflow.com/questions/259364/how-do-i-configure-emacs-speedbar-for-c-sharp-mode 中所述,我将 .emacs 中的代码添加为
    (speedbar 1)
       (add-to-list 'speedbar-fetch-etags-parse-list
                    '("\\.c" . speedbar-parse-c-or-c++tag))
    
    我看到 speedbar 启动,但它从不显示功能。也许我需要安装 etags 但找不到它。我也找到了 gtags,但找不到二进制文件
  2. 我将 sr-speedbar.el 复制到 ~/emacs.d/ 目录中。我在.emacs中添加(需要'sr-speedbar),注释掉speedbar相关代码,重新加载M-x ~/.emacs但没有找到任何sr-speedbar。如果我取消注释 speedbar 代码并注释 sr-speedbar,它会在加载时显示 speedbar。 Emacs 能够在 ~/emacs.d/ 目录中找到 sr-speedbar.el,因为如果我更改文件名,它会显示错误:无法找到 sr-speedbar。
  3. 我想制作一个键盘宏,用于使用 tramp 和 ssh 进行日志记录。但是,当我录制宏时,我必须删除多个字符以提供从头开始的路径,即 emacs 自动显示最后一个路径,因此我必须删除所有字符,然后以 ssh:// 重新开始。键盘宏记录所有退格,如果退格超过当前路径的长度,则返回错误。有没有办法避免它
  4. 我配置了 linum 包。我希望它在 emacs 会话开始时通过键入 M-x linum 自动启动。我该怎么做?
  5. 有没有办法检索命令历史记录(不是 shell 命令)然后重播一些命令 再次感谢您耐心阅读直到重点:-)

【问题讨论】:

  • 我尝试修复您的一些格式。请将您的问题分成多个。要点在很大程度上彼此无关。

标签: emacs emacs-speedbar


【解决方案1】:

对于3,有两种选择:

  • 只需在预插入目录的末尾键入“/ssh:blabla”(此目录将被忽略,因为它会变成灰色)。

  • 执行C-a C-k 以擦除迷你缓冲区的内容。

对于 5,repeat-complex-command 绑定到 C-x ESC ESCrepeat 绑定到 C-x z

【讨论】:

  • 谢谢 1. 效果很好。对于 5. 我不断收到消息说“在自动填充破坏之前重复无法直观地知道您插入的内容”。 C-x z 不一定要重复。我做了 M-x 重复。另外,正如 pmr 正确指出的那样,这是一组不相关的问题,所以即使你给出了正确的答案,我也只能将其中一个海报标记为已接受。很抱歉,我可以发布单独的查询供您回复。对不起。感谢您的帮助。
  • 默认情况下,C-x z 至少从 Emacs-20 开始绑定到 repeat。如果您不是这种情况,则可能是由于本地配置。
【解决方案2】:
  1. 对于 CEDET/Semantic 支持的 C、C++ 和其他语言,Speedbar 能够显示函数和其他对象。但是需要正确设置 Semantic,例如可以在 CEDET 中使用my article

  2. 据我了解,要全局启用 linum 模式,您需要将 (global-linum-mode 1) 放入您的 ~/.emacs

【讨论】:

  • 感谢您的回复。 2 工作。然而,1 没有。 Speedbar 仍然显示目录。我在我的 .emacs 文件中有这个语义模式 1) (defun my-semantic-hook () (imenu-add-to-menubar "TAGS")) (add-hook 'semantic-init-hooks 'my-semantic- hook) (speedbar 1) (custom-set-variables '(speedbar-show-unknown-files t) custom-set-variables 的最后一部分来自stackoverflow.com/questions/2220005/…。另外,我确实看到了解析 C 文件的消息。功能不显示。请指教。谢谢
  • 你有哪个版本的 CEDET?
  • 谢谢。 CEDET 版本为 1.0。我现在正在阅读回复中文章的​​先前版本。我仍然看不到如何让 speedbar 列出功能,但会多次阅读以查看是否遗漏任何内容。由于我有带 emacs 的 WinXP,我认为我无法更新软件包
  • 我已经能够通过正确的解析获得emacs菜单栏上的标签菜单。我还在路径中下载了 ctags ctags.exe,以尝试从 speedbar 进行这项工作。但是,我无法做到这一点。这就是我的 .emacs 目前的样子(在另一条评论中)
  • require 'linum) (semantic-mode 1) (defun my-semantic-hook () (imenu-add-to-menubar "TAGS")) (add-hook 'semantic-init-hooks 'my-semantic-hook) (speedbar 1) (custom-set-variables '(speedbar-show-unknown-files t) ) (global-ede-mode 1) (autoload 'speedbar "speedbar") (setq speedbar-fetch -etags-command "C:\ctags\ctags.exe" speedbar-fetch-etags-arguments '("-f" "-")) (global-set-key [f8] 'speedbar-get-focus) (添加-to-list 'load-path "~/.emacs.d/") (global-linum-mode 1) /10/introduction-to-ido-mode/ (setq ido-enable-flex-matching t) (setq ido-everywhere t) (ido-mode 1)
猜你喜欢
  • 2014-09-07
  • 2015-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多