Emacs caps lock次要模式?

Emacs caps lock次要模式?,emacs,capslock,Emacs,Capslock,Emacs中是否有一个命令来打开所谓的“caps lock次要模式”?我想做一些类似于m-x toggle caps mode,然后我在缓冲区中键入的每个字母都是大写字母,直到我再次执行m-x toggle caps mode 注意:我不是在寻找如何交换封顶和控件的说明。事实上,这是因为我已经做到了。我通常对它很满意,但偶尔我会编辑一些代码,在这些代码中,所有的大写字母中都有一堆常量,按下shift键会产生压力。我知道各种upcase转换函数;我不想输入单词,选择它,然后运行upcase reg

Emacs中是否有一个命令来打开所谓的“caps lock次要模式”?我想做一些类似于
m-x toggle caps mode
,然后我在缓冲区中键入的每个字母都是大写字母,直到我再次执行
m-x toggle caps mode

注意:我不是在寻找如何交换封顶和控件的说明。事实上,这是因为我已经做到了。我通常对它很满意,但偶尔我会编辑一些代码,在这些代码中,所有的大写字母中都有一堆常量,按下shift键会产生压力。我知道各种
upcase
转换函数;我不想输入单词,选择它,然后运行
upcase region


如果有必要,我使用的是Aquamacs 2.2 w/Emacs 23.3.1。

您可以尝试以下内容:

(define-minor-mode caps-lock-mode
  "caps-lock mode"
  ;;   The initial value.   
  nil   
  ;; The indicator for the mode line.   
  " CAPS-LOCK"   
  ;; The minor mode bindings.   
  '(("a" . (lambda () (interactive) (insert-char ?A 1)))
    ("b" . (lambda () (interactive) (insert-char ?B 1)))
    ;;etc 
    ("A" . (lambda () (interactive) (insert-char ?a 1)))    
    ("B" . (lambda () (interactive) (insert-char ?b 1)))    
    ;;etc
    ))

您不需要键入单词,然后选择它。如果要将最后一个单词的大小写提高,请按
M-b M-u
ESC b u
。好的,如果是带下划线的单词,您需要按几次
b


如果您真的想要大写锁定次要模式,请尝试。

如果您交换了大写和控制,那么您的控制键上就有大写锁定,不是吗?你为什么不用这个?我想我在玩弄“交换”这个词。我真的是说我已经重新映射了控制。控制仍然是控制,但我实际上可以交换它们。我仍然好奇这个问题是否有一个简单的答案。我发现了这个:以及各种各样的回答,最终给出了一个稍微紧凑的版本。我希望有一个内置的,但如果这是答案,那么这就是答案。我会给它一些时间看看是否有其他人有什么不同的东西可以提供。谢谢,这是一个有趣的线程。特别是关于如何用单个函数替换长键映射。我正在使用的是一大堆带下划线的
word\u!不过,lockcaps.el看起来很有前途。@dantswain您只需键入一次即可。然后你只需键入前几个字母并使用补全(语义与
M-TAB
或动态与
M-/
)。自动补全从来都不是我的风格,但
锁帽。el
只是我想要的。