Emacs重新绑定自插入键

Emacs重新绑定自插入键,emacs,Emacs,在Emacs(意大利键盘)上,我想要字母表1/!、上方的字母数字键!,2/, 3/£, 4/$, ... 插入移位字符,例如!单独按压时为1美元。 有办法吗 你可以写: (global-set-key (kbd "1") (lambda () (interactive) (insert "!"))) 等等。你可以写: (global-set-key (kbd "1") (lambda () (interactive) (insert "!"))) 等等。对于每个数字/字符对,您需要安装两个键

在Emacs(意大利键盘)上,我想要字母表1/!、上方的字母数字键!,2/, 3/£, 4/$, ... 插入移位字符,例如!单独按压时为1美元。 有办法吗

你可以写:

(global-set-key (kbd "1") (lambda () (interactive) (insert "!")))
等等。

你可以写:

(global-set-key (kbd "1") (lambda () (interactive) (insert "!")))

等等。

对于每个数字/字符对,您需要安装两个键绑定以交换它们,第三个键绑定以避免弄乱键盘,因为kp-0-kp-9键被转换为0-9,但我猜您不希望插入kp-1

以下是避免手动创建所有这些键绑定的宏:

定义宏交换键列表 `程序 ,@mapcar lambda键 让我把车钥匙给你 键2 cdr键 `程序 全局设置键,键1 lambda交互式插入,键2 全局设置键,键2 lambda交互式插入,键1 全局设置键kbd,格式键1 lambda交互式插入,键1 列表 交换钥匙1! 2 . \
对于每个数字/字符对,您需要安装两个键绑定以交换它们,第三个键绑定以避免弄乱键盘,因为kp-0-kp-9键被转换为0-9,但我猜您不希望插入kp-1

以下是避免手动创建所有这些键绑定的宏:

定义宏交换键列表 `程序 ,@mapcar lambda键 让我把车钥匙给你 键2 cdr键 `程序 全局设置键,键1 lambda交互式插入,键2 全局设置键,键2 lambda交互式插入,键1 全局设置键kbd,格式键1 lambda交互式插入,键1 列表 交换钥匙1! 2 . \
您可以设置一个自定义输入法,使这些键翻转

例如,对于我使用的布局,我在.emacs中有以下内容:

(eval-after-load 'quail
  '(progn
      (add-to-list 'quail-keyboard-layout-alist
     '("us-pgr-dvk" . "\
                              \
$~&%[7{5}3(1=9*0)2+4]6!8#`    \
  ;:,<.>pPyYfFgGcCrRlL/?@^\\|  \
  aAoOeEuUiIdDhHtTnNsS-_      \
  '\"qQjJkKxXbBmMwWvVzZ        \
                              "))
   ))
(quail-set-keyboard-layout "us-pgr-dvk")

您可以设置一个自定义输入法,使这些键翻转

例如,对于我使用的布局,我在.emacs中有以下内容:

(eval-after-load 'quail
  '(progn
      (add-to-list 'quail-keyboard-layout-alist
     '("us-pgr-dvk" . "\
                              \
$~&%[7{5}3(1=9*0)2+4]6!8#`    \
  ;:,<.>pPyYfFgGcCrRlL/?@^\\|  \
  aAoOeEuUiIdDhHtTnNsS-_      \
  '\"qQjJkKxXbBmMwWvVzZ        \
                              "))
   ))
(quail-set-keyboard-layout "us-pgr-dvk")

或者实际上是全局设置密钥kbd 1!;然而,其他答案更全面。或者说,全球设置关键kbd 1!;不过,其他答案更全面。谢谢弗朗西斯科!我设法在X-server级别重新映射,但您的代码似乎很有趣!谢谢弗朗西斯科!我设法在X-server级别重新映射,但您的代码似乎很有趣!