2011-10-27 40 views
5

Có lệnh nào trong Emacs để bật những gì có thể được mô tả là "caps lock minor mode" không? Tôi đang tìm cách làm một cái gì đó như M-x toggle-caps-mode, sau đó mọi chữ cái tôi gõ trong bộ đệm là một chữ cái viết hoa cho đến khi tôi làm lại M-x toggle-caps-mode.Mũ Emacs khóa chế độ nhỏ?

Lưu ý: Tôi KHÔNG tìm chỉ đường về cách hoán đổi mũ và kiểm soát. Trong thực tế, điều này là bởi vì tôi đã làm điều đó. Tôi thường khá hài lòng với nó, nhưng đôi khi tôi đang chỉnh sửa mã nơi có một loạt các hằng số có trong tất cả các mũ, và nó được là một căng thẳng giữ phím shift. Tôi biết về các hàm chuyển đổi upcase khác nhau; Tôi không muốn phải gõ từ, chọn nó, sau đó chạy upcase-region.

Nếu có vấn đề, tôi đang sử dụng Aquamacs 2.2 w/Emacs 23.3.1.

+0

Nếu yow đã đổi mũ và kiểm soát thì bạn có mũ khóa trên phím điều khiển, phải không? Tại sao bạn không sử dụng? – Tom

+0

Tôi đoán tôi đang chơi nhanh và lỏng lẻo với từ "đổi chỗ". Tôi thực sự có nghĩa là tôi đã remapped mũ để kiểm soát. Kiểm soát vẫn còn kiểm soát, nhưng tôi thực sự có thể trao đổi chúng. Vẫn còn tò mò nếu có một câu trả lời đơn giản cho câu hỏi này. – dantswain

Trả lời

4

Bạn không cần phải gõ từ sau đó chọn nó. Nếu bạn muốn nâng cấp từ cuối cùng, hãy nhấn M-b M-u hoặc ESC b u. Ok, bạn cần nhấn b nhiều lần nếu đó là word_with_underscores.

Nếu bạn thực sự muốn có chế độ nhỏ, hãy thử John Paul Wallington's lockcaps.el.

+0

Đó là một bó toàn bộ 'word_with_underscores's tôi đang làm việc cùng! lockcaps.el trông đầy hứa hẹn, mặc dù. – dantswain

+0

@dantswain Bạn chỉ cần nhập chúng một lần. Sau đó, bạn chỉ cần gõ vài chữ cái đầu tiên và sử dụng hoàn thành (ngữ nghĩa với 'M-TAB' hoặc động với' M-/'). – Gilles

+1

Tự động hoàn thành không bao giờ là phong cách của tôi, nhưng 'lockcaps.el' chỉ muốn tôi muốn. – dantswain

2

Bạn có thể thử một cái gì đó như thế này:

(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

Tôi đã tìm thấy điều này: http://lists.gnu.org/archive/html/gnu-emacs-sources/2004-08/msg00013.html và các câu trả lời khác nhau, kết quả là đưa ra một phiên bản nhỏ gọn hơn một chút. Tôi đã hy vọng cho một built-in, nhưng nếu đây là câu trả lời, thì đây là câu trả lời. Tôi sẽ cho nó một chút thời gian để xem liệu có ai khác có điều gì khác không. – dantswain

+0

Cảm ơn, đó là một chủ đề thú vị. Đặc biệt là về cách thay thế sơ đồ bàn phím dài bằng một chức năng duy nhất. –

Các vấn đề liên quan