emacsでは、キーボードの一番上の行を再バインドして[1...0]
、変更されていないキーを押すと、同等のシフトが行われるようにします。つまり、入力1234567890
すると!"£$%^&*()
バッファに挿入されます。
WindowsVistaでviper-modeを有効にしてemacs24.1.1を使用しています。私はスライムを使ってCommonLispプログラミングをしています。私はviperを使用しているので、CtrlキーとShiftキーを頻繁に使用しないようにしています。これは、emacs pinkie(RSI)を少し取得できるためです。lispでプログラミングを始めて、かっこを押したりS-9
、S-0
開いたり閉じたりすることは、その犠牲になり始めていることに気づきました。
スタートアップファイルに以下を含めることで、バインド9
し(
たり、その逆を行うことができます。
(defvar my-keymap
(let ((map (make-sparse-keymap)))
(define-key map (kbd "9") '(lambda () (interactive) (insert "(")))
(define-key map (kbd "(") '(lambda () (interactive) (insert "9")))
map))
(viper-modify-major-mode
'lisp-mode
'insert-state
my-key-map)
これは十分に機能し、行の残りの部分に簡単に拡張できます。ただし、Shiftキーを押したままにすることなく(たとえば、Caps Lockを切り替えることによって)2つのモードを切り替えることができます。
これを行う方法はありますか、それとも私はそれにすべて間違ってアプローチしていますか?