2012-06-20 22 views
5

Tôi thường viết ký tự ~ bằng cách nhấn Alt + N trên Mac OS X. Điều này không hoạt động trong Emacs. Phím Alt + N dường như được liên kết với lịch sử lệnh. Vì vậy, câu hỏi của tôi là làm thế nào để viết một nhân vật ~ trong Emacs trên Mac OS X?Làm cách nào để viết ký tự dấu ngã (~) trong Emacs trên Mac OS X?

EDIT: Tôi đang sử dụng Aquamac.

+0

Bạn đang sử dụng bố cục bàn phím và bàn phím nào? Tiếng Anh ít nhất có nó trên backtick '\' '. – Ryan

+0

Tôi đang sử dụng Bàn phím Apple có bố cục kiểu Đức. –

Trả lời

2

Bạn luôn có thể mở 'trình xem ký tự', chọn 'Dấu câu', tìm '~' (dấu ngã), và sau đó nhấp đúp vào nó. Điều đó sẽ chèn nó vào điểm Emacs. (Các 'người xem nhân vật' là dễ dàng truy cập sau khi kiểm tra 'Show Keyboard & Người xem nhân vật trong thanh menu' từ cửa sổ Bàn phím trong cửa sổ System Preferences.)

Bạn cũng có thể xác định một chức năng emacs-lisp như:

(defun tilde() (interactive) (insert "~")) 

và sau đó gọi nó bằng M-x tilde để chèn dấu ngã. Sau đó, có thể chỉ định chức năng đó cho tổ hợp phím bạn chọn là

(global-set-key "\M-\C-!" 'tilde) ;; you choose the combo 

và thêm tất cả điều này vào tệp 'emacs init' của bạn.

+0

Giải pháp này hoạt động trong khi trong trình soạn thảo, tuy nhiên nó hoạt động trong bộ đệm mini. Bất kỳ ý tưởng làm thế nào để làm cho nó hoạt động trong nó? Chúng ta có thể gọi như một chức năng từ bộ đệm mini bất kỳ đặt kết quả trong bộ đệm mini (tôi khá mới để Emacs)? – pbernery

+0

IMHO, đây không phải là câu trả lời. Vấn đề gốc bắt nguồn từ Emacs tắt Alt để nhập các ký tự trên OS X. Xem câu trả lời của tôi bên dưới. – fpbhb

0

quoted-insert nên giải quyết vấn đề này.

C-qAlt-N

+0

Không làm việc cho tôi, tôi chỉ nhận được "î". Bàn phím của tôi là belgian-french, nhưng tổ hợp phím cho dấu ngã cũng là Alt-N bên ngoài các emacs. – Norswap

0

Aquamacs: Options -> Options Commands Meta Key -> Meta và Pháp?

7

Mặc dù câu hỏi này khá cũ, không có câu trả lời nào đáp ứng được yêu cầu cho số Emacs for OS X (lựa chọn phổ biến nhất trong những ngày này). Vì vậy, đối với độc giả tương lai ...

Plain Emacs cho OS X sử dụng cả Alt phím như Meta theo mặc định. Khi nhiều ký tự được nhập bằng cách sử dụng Alt trên bàn phím tiếng Đức của Mac (dấu ngã, dấu ngoặc ôm, dấu ngoặc nhọn, v.v.), tôi khuyên bạn nên đặt ns-right-alternate-modifier thành nil, cho phép gõ dấu ngã (Alt-n) và các ký tự khác bằng cách sử dụng đúngAlt chủ chốt, trong khi trái ai có thể được sử dụng như Meta (như cho M-x).

Hoặc Cmd có thể được tùy chỉnh thành Meta. Tất cả các tùy chọn có thể được tùy chỉnh tương tác theo M-x customize-group ns.

0

Thật không may câu trả lời bằng fpbhb không hoạt động khi chạy các emacs trong thiết bị đầu cuối (emacs -nw).

Tôi đã có thể đưa ra giải pháp cho vấn đề này hoạt động trong cả hai tình huống (độc lập và trong thiết bị đầu cuối). Ngoài ra, tôi có một bàn phím quốc tế và tôi cũng có thể khắc phục sự cố không thể nhập các ký tự đặc biệt khi chạy các emacs trong thiết bị đầu cuối.

Đoạn mã này liên kết chính xác phím tùy chọn bên trái với "META" khi chạy các emacs dưới dạng ứng dụng (ví dụ: không có trong thiết bị đầu cuối).Nó không liên kết khóa tùy chọn phù hợp, có thể được sử dụng để nhập các ký tự đặc biệt:

(setq mac-command-key-is-meta nil 
     mac-command-modifier nil) 
(setq mac-option-key-is-meta t 
     mac-option-modifier 'meta 
     mac-right-option-modifier nil) 

Tất cả những điều trên không có tác dụng khi chạy các emacs trong thiết bị đầu cuối. Để có được những tổ hợp phím cùng trong Terminal, bạn phải:

Preferences Terminal -> Keyboard -> Sử dụng tùy chọn như Meta key

Thật không may, sau khi làm điều này, bạn sẽ không thể sử dụng phím tùy chọn để gõ các ký tự đặc biệt trong bàn phím quốc tế. Đặc biệt tôi đã bỏ lỡ dấu ngã, dấu gạch chéo ngược và @.

tôi giải quyết vấn đề cuối cùng này bằng cách thêm các bản đồ chính thiếu để emacs của tôi:

(define-key key-translation-map (kbd "M-ñ") (kbd "~")) 
(define-key key-translation-map (kbd "M-º") (kbd "\\")) 
(define-key key-translation-map (kbd "M-2") (kbd "@")) 

Voila.