【问题标题】:Emacs: Rebind numbers (Editor of the Beast VI VI VI)Emacs:重新绑定数字(野兽编辑VI VI VI)
【发布时间】:2014-03-31 09:36:12
【问题描述】:

刚从 vi 来到 Emacs。

我想将键盘顶部的所有数字重新绑定到它们移动的对应项(即 1 映射到 !,2 映射到 @ 等),同时将数字键盘数字保持为简单的数字.

我很好地重新映射了数字,键盘顶部的数字正确映射到符号;但是,这也将键盘数字映射到符号。作为回应,我尝试再次将键盘数字重新映射回数字,但这不成功 - 它们仍然作为符号。

当我使用 vi 时,这很简单也很容易实现,但我更愿意继续使用 Emacs。谁有解决办法?

.emacs 示例:

(global-set-key "1" "!")
; etc...

(global-set-key [kp-1] "1")
; etc...

【问题讨论】:

    标签: emacs keyboard-shortcuts


    【解决方案1】:

    可能是这样的:

    (global-set-key (kbd "<kp-1>") "1")
    (keyboard-translate ?1 ?!)
    

    我实际上会使用xmodmap 来更改整个键 系统,而不仅仅是 Emacs。

    【讨论】:

    【解决方案2】:

    试试这个:

    (global-set-key "1" "!")
    (global-set-key [kp-1] (lambda () (interactive) (insert "1")))
    

    附:我经常在global-set-key 中使用 (lambda () (interactive) ...) 并为其创建别名:

    (defmacro ilam (&rest body)
      "Interactive lambda"
      `(lambda ()
         (interactive)
         ,@body))
    

    【讨论】:

      猜你喜欢
      • 2010-12-18
      • 2010-09-06
      • 2014-10-26
      • 2020-08-30
      • 2012-12-14
      • 2013-06-19
      • 2015-12-17
      • 2013-09-16
      • 2017-01-14
      相关资源
      最近更新 更多