2014-02-22 56 views
8
結合

我在Ubuntu的工作,但由於插入Unicode字符的標準方式(按Ctrl ++ü,在這之後,Unicode代碼)不工作在Emacs,我已經在我的.emacs,一些擊鍵,我經常使用不同的Unicode符號,例如:主要用於§符號在Emacs

(global-set-key (kbd "C-c b") "☛") 

和每個符號工作正常,但符號§,這是通過簡單的更換破折號(「 - 」),當我使用相應的按鍵:

(global-set-key (kbd "C-c y") "§") 

的問題是,是什麼讓其他符號這個符號不同,我怎麼能解決我的問題?

回答

7

global-set-key通常需要一個功能,所以這應該工作:

(global-set-key (kbd "C-c y") (lambda() (interactive) (insert "§"))) 

但是你最好不要使用優秀insert-char功能:

(global-set-key (kbd "<f2> u") 'insert-char) 

據瞭解十六進制的Unicode以及文字說明(完成和所有)。 只要按下TAB 看落成。

+0

您的第一個解決方案正常工作。謝謝。 –

2

您可以通過執行C-XRET<unicode-hex>RET插入emacs的unicode字符。所以插入§C-XRET 00A7 RET

可以綁定insert-char,如果你想更簡單的密鑰(由CXRET運行命令),或定義自定義函數,並將其綁定到一個關鍵如下

(global-set-key (kbd "C-c y") (lambda() (interactive) (insert "§"))) 
+0

是的,我知道,但是當我需要經常寫這個符號時,這種方法太「刺激」了。 –

1

A 通用解決方案需要快速插入多個Unicode字符是爲每個定義一個命令,專用於插入它,並將該命令綁定到簡單的按鍵序列。

也就是說,實際上,什麼@ ABO血型ABO和@Iqbal已經給了你,在形式:

(lambda() (interactive) (insert "§"))) 

如果你有要創建這樣的命令多個這樣的字符,然後 庫ucs-cmds.el可以幫助 - 在兩個方面:

  • 它提供了一個宏觀ucsc-make-commands,可以讓你在一個一舉成名,爲Unicode字符的整個範圍定義命令。例如:

    • (ucsc-make-commands "^cjk")限定用於每個中國,日本,韓國和Unicode字符的插入炭命令。

    • (ucsc-make-commands "^greek [a-z]+ letter")也是一樣希臘文字母。

    • (ucsc-make-commands "arabic")也是一樣阿拉伯字符。

  • 它提供了一個替換命令ucsc-insert)爲C-x 8 RET,其作用完全一樣的香草命令(insert-char),不同之處在於,如果你給它一個負prefix參數那麼它不僅插入你選擇的字符,但它也爲它創建一個插入命令(即宏創建批量命令的種類)。

由宏ucsc-make-commands和命令ucsc-insert創建的命令的名稱是完全一樣的字符的Unicode名稱本身,不同之處在於它們是小寫字母和具有連字符(-)代替空間字符的。