emacs - emacs中的附加修饰键?

标签 emacs customization key-bindings

我最近一直在修改我的 Emacs 设置,但我遇到了一个开始让我烦恼的问题。我希望能够引入额外的修饰符,如键。为了让事情更清楚,我想要做的是当我处于 dired-mode 时(不接受文本输入,因此可以反弹普通字母)我希望这样当我按住字母 s 时并按 jl光标分别移动到下一个和上一个目录行。有效地制作s键就像一个修饰符。

我已经研究过制作 s应用修饰符,例如 superhyper但这些都用于全局性的事情。这可能吗?如果不是,那就太可惜了。

编辑:

我所追求的似乎有些困惑。如果我定义一个正常的键序列,例如
(define-key map (kbd "s j") 'dired-next-dirline)
然后我必须一直按s每次按 j 之前的键移动到下一个目录行。这是不是 我在寻找什么(不要听起来很生气 :P)我想要 s充当修饰符,我可以保留 s按住键并继续点击j向下移动。

我希望我已经更清楚地说明了这一点。谢谢。

最佳答案

我在代码中挖掘并想出了这个。它绑定(bind) s jmy-dired-next-dirline ,但在你完成之后,只需j再做一次就足够了。任何其他键都会重置临时绑定(bind)。

注意函数set-temporary-overlay-map在 Emacs 24.2 中添加,在撰写本文时尚未发布,因此您需要构建 Emacs from git .

(defun my-dired-next-dirline ()
  (interactive)
  (dired-next-dirline 1)
  (set-temporary-overlay-map
   (let ((map (make-sparse-keymap)))
     (define-key map [?j] 'my-dired-next-dirline)
     map)
   nil))

(eval-after-load "dired"
  '(progn
     (let ((prefix-map (make-sparse-keymap)))
       (define-key prefix-map "j" 'my-dired-next-dirline)  
       (define-key dired-mode-map "s" prefix-map))))

关于emacs - emacs中的附加修饰键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11939243/

相关文章:

c++ - 自定义 Win32 的保存文件对话框

visual-studio-2012 - 安装 Emacs 模拟键绑定(bind) - 无效的 VSIX 包

eclipse - 无需移动双手即可在 Eclipse 中导航菜单

emacs - 将 s 表达式包裹在 slime 中 (emacs)

python - 使用 emacs-jedi 自动导入模块

javascript - 新的网络打印解决方案

ios - 一个应用程序为不同的客户提供多种外观? (苹果规则)

emacs - 设置键无操作的最佳方法

emacs - 如何在 Emacs 中实时预览 Markdown?

emacs - 我可以将 swank-clojure 与 clojure 1.2 master 分支一起使用吗?