Большое спасибо Джейби за ответ.Вот расширенное определение для всех чисел:
(define-minor-mode shifted-numbers-mode
"Toggle shifted numbers mode."
nil
" shifted"
'(("1" . (lambda () (interactive) (insert-char ?! 1)))
("2" . (lambda () (interactive) (insert-char ?@ 1)))
("3" . (lambda () (interactive) (insert-char ?# 1)))
("4" . (lambda () (interactive) (insert-char ?$ 1)))
("5" . (lambda () (interactive) (insert-char ?% 1)))
("6" . (lambda () (interactive) (insert-char ?^ 1)))
("7" . (lambda () (interactive) (insert-char ?& 1)))
("8" . (lambda () (interactive) (insert-char ?* 1)))
("9" . (lambda () (interactive) (insert-char ?( 1)))
("0" . (lambda () (interactive) (insert-char ?) 1)))
("!" . (lambda () (interactive) (insert-char ?1 1)))
("@" . (lambda () (interactive) (insert-char ?2 1)))
("#" . (lambda () (interactive) (insert-char ?3 1)))
("$" . (lambda () (interactive) (insert-char ?4 1)))
("%" . (lambda () (interactive) (insert-char ?5 1)))
("^" . (lambda () (interactive) (insert-char ?6 1)))
("&" . (lambda () (interactive) (insert-char ?7 1)))
("*" . (lambda () (interactive) (insert-char ?8 1)))
("(" . (lambda () (interactive) (insert-char ?9 1)))
(")" . (lambda () (interactive) (insert-char ?0 1)))))
В Perl скобки часто встречаются чаще, чем скобки, поэтому вам также может понадобиться:
("[" . (lambda () (interactive) (insert-char ?{ 1)))
("]" . (lambda () (interactive) (insert-char ?} 1)))
("{" . (lambda () (interactive) (insert-char ?[ 1)))
("}" . (lambda () (interactive) (insert-char ?] 1)))