Skip to content

Instantly share code, notes, and snippets.

@ha2ne2
Last active January 3, 2016 00:09
Show Gist options
  • Select an option

  • Save ha2ne2/8380697 to your computer and use it in GitHub Desktop.

Select an option

Save ha2ne2/8380697 to your computer and use it in GitHub Desktop.
insert symbol instead of numeral
;;;; 2014-01-12
;;;; 数字キーを押した時に数字じゃなく記号が出るようになるelisp
;; キーボード最上段を押下時 !@#$%^&*()-=\` が出力されます
;; SHIFT押しながらだと    1234567890_+|~ が出力されます
;; US配列
(defvar alternate-chars
'(("1" "!")
("2" "@")
("3" "#")
("4" "$")
("5" "%")
("6" "^")
("7" "&")
("8" "*")
("9" "(")
("0" ")")))
(defvar insert-symbol-mode-map (make-sparse-keymap))
(defun convert-to-keymap (lst)
(mapcan (lambda (clause)
`((,(first clause) . (lambda () (interactive) (insert ,(second clause))))
(,(second clause) . (lambda () (interactive) (insert ,(first clause))))))
lst))
(defun update-insert-symbol-mode-map ()
(setq insert-symbol-mode-map (make-sparse-keymap))
(mapcar (lambda (x)
(eval `(define-key insert-symbol-mode-map (kbd ,(first x)) (rest x))))
(convert-to-keymap alternate-chars)))
(update-insert-symbol-mode-map)
(easy-mmode-define-minor-mode
insert-symbol-mode
"Insert symbol instead of numeral"
t "insert-symbol" insert-symbol-mode-map)
;; C-M-gで有効無効の切り替え
(global-set-key (kbd "C-M-g") 'insert-symbol-mode)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment