回答问题

回答问题

我正在尝试使用从内置 emacs 包管理器 elpa 安装的 workgroups2。来自自述文件:

Most commands are bound to both <prefix> <key> and <prefix> C-<key>.

<prefix> <key>
<prefix> c    - create workgroup
<prefix> k    - kill workgroup
<prefix> v    - switch to workgroup
<prefix> C-s  - save session
<prefix> C-f  - load session

Help

Type <prefix> ? (Eval (wg-help)) for more help.

This will bring up a help buffer listing all the commands and their bindings.

See the customization section in the source for details, or use:

M-x customize-group RET workgroups RET

请注意,我使用 emacs 24.3 和 Ubuntu 12.04 LTS

  1. 这种情况的前缀键是什么?

非常感谢所有的帮助,如果您需要更多信息请告诉我!

编辑:当我启动 emacs 时,Workgroups2 未加载。它无法识别任何命令。只有在我启动 emacs 并且重新加载文件.emacs并且文件中包含以下内容时,它才会起作用.emacs

(autoload 'workgroups-mode "workgroups2")

如何让 emacs 自动加载工作组?我以为上面的内容就足够了。值得注意的是,我从 melpa 下载了 workgroups2,我不需要这些...

答案1

回答问题

Aaron 是对的。此行负责前缀键:

(setq wg-prefix-key (kbd "C-c z"))     ;; and it's by default now

例如,如果你想创建一个工作组,请按C-c z c

安装

最好编译扩展文件。

我让安装变得更简单 - 只需安装扩展并将这些行放在结尾“.emacs”。就这样。

(require 'workgroups2)
;; change some settings
(workgroups-mode 1)

请注意,如果您使用emacs --daemon- 禁用工作组的自动加载:

(setq wg-use-default-session-file nil)

并手动加载它们(创建框架时)。

笔记

我在 Ubuntu(来自 git repo 的最新 Emacs)和 Windows(Emacs 24.3)下检查了这个扩展

致 Aaron:
Aaron,我刚刚默认禁用了这些重新映射(我根本没有遇到这个问题)

致所有人:

  1. 最好在 Github 上发布错误
  2. (不是真正的借口)但请考虑一下,这个扩展取自实验分支,而且大部分代码不是我编写的。
  3. 如果你是一个优秀的 Emacs 黑客——我们随时欢迎你修复代码并成为合作者(为了不重复原始 repo 的命运)

测试技巧

如果您只想检查 workgroups2 扩展:

假设您已经~/.emacs.d/elisp/extensions/使用以下命令提取它:

emacs -Q -L ~/.emacs.d/elisp/extensions/workgroups2/src -l cl.el -l workgroups2.el --eval '(workgroups-mode 1)'

使用 ido.el:

emacs -Q -L ~/.emacs.d/elisp/extensions/workgroups2/src -l cl.el -l ido.el -l workgroups2.el --eval "(ido-mode t)" --eval "(workgroups-mode 1)"

答案2

前缀键由模块用户定义,而不是由模块作者指定。根据workgroups2 自述文件,设置自己的前缀键是配置模块的一部分:

配置

加载一个模块(如果您不是从 Melpa 安装的):

(add-to-list 'load-path "~/.emacs.d/extensions/workgroups2")
(require 'workgroups2)

并设置一些参数:

;; Settings:
(desktop-save-mode t)     ; save all opened files (or disable it)
(setq wg-prefix-key (kbd "C-c z")
      wg-restore-associated-buffers nil ; restore all buffers opened in this WG?
      wg-use-default-session-file nil   ; turn off for "emacs --daemon"
      wg-default-session-file "~/.emacs_files/workgroups"
      wg-use-faces nil
      wg-morph-on nil)                  ; animation off

;; Keyboard shortcuts - load, save, switch
(global-set-key (kbd "<pause>")     'wg-reload-session)
(global-set-key (kbd "C-S-<pause>") 'wg-save-session)
(global-set-key (kbd "s-z")         'wg-switch-to-workgroup)
(global-set-key (kbd "s-/")         'wg-switch-to-previous-workgroup)

(workgroups-mode 1)     ; Activate workgroups

这里特别有趣的是这一行:

(setq wg-prefix-key (kbd "C-c z")

这是定义前缀键的地方。您的 Emacs 初始化代码中是否有这样一行?如果没有,请在通过 激活 workgroups-mode 之前添加一行,(workgroups-mode 1)这样就可以了。

在 GNU Emacs 24.3 上全新安装 workgroups2 包进行测试。(我希望我没有这样做,因为这个愚蠢的东西劫持C-x C-<left>C-x C-<right>!)

相关内容