我正在尝试使用从内置 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
- 这种情况的前缀键是什么?
非常感谢所有的帮助,如果您需要更多信息请告诉我!
编辑:当我启动 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,我刚刚默认禁用了这些重新映射(我根本没有遇到这个问题)
致所有人:
- 最好在 Github 上发布错误
- (不是真正的借口)但请考虑一下,这个扩展取自实验分支,而且大部分代码不是我编写的。
- 如果你是一个优秀的 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>
!)