1

Emacs のイタリア語キーボードでは、アルファベットの上の英数字キー (1/!、2/"、3/£、4/$、...) にシフト文字 (例: ! " £ $) を挿入したいと思います。一人で押した。それを行う方法はありますか?

4

3 に答える 3

4

数値/文字のペアごとに、それらを交換するために 2 つのキー バインドをインストールする必要があります。また、キーパッドを台無しにしないように 3 つ目のキー バインドをインストールする必要があります ( kp-0-キーは-kp-9に変換されるため、挿入したくないと思います)。)09kp-1!

これらすべてのキー バインディングを手動で作成することを避けるためのマクロを次に示します。

(defmacro swap-keys (list)
  `(progn
     ,@(mapcar
        (lambda (keys)
          (let ((key1 (car keys))
                (key2 (cdr keys)))
            `(progn
               (global-set-key ,key1 (lambda () (interactive) (insert ,key2)))
               (global-set-key ,key2 (lambda () (interactive) (insert ,key1)))
               (global-set-key (kbd ,(format "<kp-%s>" key1))
                               (lambda () (interactive) (insert ,key1))))))
        list)))

(swap-keys (("1" . "!")
            ("2" . "\"")))
于 2013-01-05T13:35:30.963 に答える
4

これらのキーを反転したカスタム入力メソッドを設定できます ( doc )。

ex私は私が使用するレイアウトのために私の.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")
于 2013-01-05T17:06:24.980 に答える
1

あなたは書ける:

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

于 2013-01-05T12:26:38.753 に答える