emacs前缀密钥和工作组2


1

我正在尝试使用我从内置的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,我不需要任何这个......

Answers:


3

回答这个问题

亚伦是对的。该行负责前缀密钥:

(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,我刚刚默认禁用了这些重映射(我根本没有遇到这个问题)

对所有人:

  1. 它更好 发布Github上的错误
  2. (不是一个真正的借口)但请考虑这个扩展是从实验分支中获取的,大部分代码都不是由我编写的。
  3. 如果你是一个优秀的Emacs黑客 - 欢迎你修改代码并成为合作者(为了不重复原始回购的命运)

测试提示

如果您只想检查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)"

你应该看看我的其他帖子: superuser.com/questions/635013/...
CodeKingPlusPlus

2

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

配置

加载模块(如果您不是从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>!)


看看我的编辑。当emacs启动时,工作组未加载,我也无法弄清楚如何获得它...
CodeKingPlusPlus

@CodeKingPlusPlus考虑一下 这个答案来自类似的情况 - 显式调用通常很有用 (package-initialize) 在初始化期间的某个时刻,以便在init完成之前加载ELPA包,然后以通常的方式进行管理。
Aaron Miller
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.