2011-10-27 14 views
5

¿Hay algún comando en Emacs para activar lo que podría describirse como "bloqueo de modo menor"? Estoy buscando hacer algo como M-x toggle-caps-mode, luego cada letra que escribo en el búfer es una letra mayúscula hasta que vuelva a M-x toggle-caps-mode.¿Bloquea Emacs el modo menor?

Nota: NO estoy buscando instrucciones sobre cómo cambiar las mayúsculas y el control. En realidad esto es porque ya lo hice. En general estoy bastante contento con eso, pero ocasionalmente estoy editando código donde hay un montón de constantes que están en mayúsculas, y se vuelve una presión presionando la tecla Mayús. Conozco las diversas funciones de conversión upcase; Prefiero no tener que escribir la palabra, seleccionarla, luego ejecutar upcase-region.

Si es importante, estoy usando Aquamacs 2.2 con Emacs 23.3.1.

+0

Si ya has cambiado las tapas y el control, entonces tienes el bloqueo de mayúsculas en la tecla de control, ¿no? ¿Por qué no usas eso? – Tom

+0

Supongo que estoy jugando rápido y suelto con la palabra "intercambiar". Realmente quiero decir que he reasignado las mayúsculas para controlar. El control sigue siendo el control, pero en realidad podría intercambiarlos. Todavía tengo curiosidad si hay una respuesta simple a esta pregunta. – dantswain

Respuesta

4

No es necesario escribir la palabra luego seleccionarla. Si desea recuperar la última palabra, presione M-b M-u o ESC b u. De acuerdo, necesitará presionar b varias veces si es word_with_underscores.

Si realmente desea un modo menor de bloqueo de mayúsculas, intente John Paul Wallington's lockcaps.el.

+0

¡Estoy trabajando con un montón de 'word_with_underscores's! lockcaps.el parece prometedor, sin embargo. – dantswain

+0

@dantswain Solo necesita escribirlos una vez. Luego, simplemente escriba las primeras letras y use la terminación (semántica con 'M-TAB' o dinámica con' M-/'). – Gilles

+1

Autocompletar nunca ha sido mi estilo, pero 'lockcaps.el' solo quería lo que quería. – dantswain

2

Usted puede intentar algo como esto:

(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 
    )) 
+0

Encontré esto: http://lists.gnu.org/archive/html/gnu-emacs-sources/2004-08/msg00013.html y las diversas respuestas, que terminan dando una versión un poco más compacta. Esperaba un built-in, pero si esta es la respuesta, entonces esta es la respuesta. Le daré un tiempo para ver si alguien más tiene algo diferente que ofrecer. – dantswain

+0

Gracias, es un hilo interesante. Especialmente sobre cómo reemplazar el mapa de teclas largo con una sola función. –