2011-10-27 15 views
5

Czy w Emacs jest polecenie włączenia czegoś, co można określić jako "caps lock minor mode"? Szukam czegoś takiego, jak M-x toggle-caps-mode, a następnie każda litera, którą wpisuję w buforze, jest wielką literą, dopóki nie powtórzę numeru M-x toggle-caps-mode.Czapki Emacsa blokują mniejszy tryb?

Uwaga: NIE szukam wskazówek, jak zamienić czapki i kontrolę. W rzeczywistości jest tak, ponieważ już to zrobiłem. Generalnie jestem z tego całkiem zadowolony, ale od czasu do czasu redaguję kod, w którym jest mnóstwo stałych, które są we wszystkich wersjach, i to staje się naprężeniem przytrzymującym klawisz Shift. Jestem świadomy różnych funkcji konwersji upcase; Wolałbym nie wpisywać tego słowa, wybrać go, a następnie uruchomić upcase-region.

Jeśli to ma znaczenie, używam Aquamacs 2.2 w/Emacs 23.3.1.

+0

Jeśli masz zamienione czapki i kontrolę, to znaczy, że masz blokadę na klawiaturze, prawda? Dlaczego tego nie używasz? – Tom

+0

Myślę, że gram szybko i luźno ze słowem "zamienione". Naprawdę mam na myśli to, że zmapowałem czapki do kontroli. Kontrola jest nadal kontrolowana, ale mógłbym je zamienić. Nadal ciekawy, czy istnieje prosta odpowiedź na to pytanie. – dantswain

Odpowiedz

4

Nie trzeba wpisywać słowo, a następnie wybierz go. Jeśli chcesz uzupełnić ostatnie słowo, naciśnij M-b M-u lub ESC b u. OK, musisz kilkakrotnie nacisnąć przycisk b, jeśli jest to word_with_underscores.

Jeśli naprawdę chcesz, aby czapki blokowały mniejszy tryb, spróbuj John Paul Wallington's lockcaps.el.

+0

To jest cała masa 'word_with_underscores's, z którymi pracuję! lockcaps.el wygląda obiecująco. – dantswain

+0

@dantswain Musisz je wpisać tylko raz. Następnie wystarczy wpisać kilka pierwszych liter i użyć uzupełnienia (semantyczne z 'M-TAB' lub dynamiczne z' M-/'). – Gilles

+1

Autouzupełnianie nigdy nie było moim stylem, ale 'lockcaps.el' po prostu chciałam, żebym chciał. – dantswain

2

Można spróbować czegoś takiego:

(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

Znalazłem to: http://lists.gnu.org/archive/html/gnu-emacs-sources/2004-08/msg00013.html i różne odpowiedzi, które ostatecznie dają nieco bardziej kompaktową wersję. Miałem nadzieję na wbudowane, ale jeśli to jest odpowiedź, to jest odpowiedź. Dam mu trochę czasu, aby sprawdzić, czy ktoś ma coś innego do zaoferowania. – dantswain

+0

Dzięki, to ciekawa nitka. Zwłaszcza o tym, jak zastąpić długą mapę klawiszy jedną funkcją. –