2014-10-08 29 views
2

正確的西班牙文寫作需要打開和關閉標記以進行訊問和感嘆。例如:¡Qué buena página!,¿Cómo cambiar emacs?如何匹配emacs中的詢問和感嘆號?

我想有與括號匹配相同的行爲:突出顯示一對或顯示一個不匹配。

這是如何實現的?

+0

您是否嘗試http://thinkinghard.com/spanish/spanish-emacs.html? – fghj 2014-10-09 00:02:53

+0

一種方法是使用字體鎖來定義一種顏色的單個字符(例如,詢問/感嘆號向上或向下) - 例如,字體鎖定警告面。如果找到匹配項,則開始/結束字符可能會更改爲匹配的顏色,或者僅返回到文本前景的標準顏色默認值。此方法不需要修改語法條目。你可以看中並在無與倫比的角色之前或之後突出顯示所有內容。 – lawlist 2014-10-09 01:12:58

+0

我的印象是,西班牙語模式只是寫西班牙語字符,我用國際英語鍵盤佈局完成。 @ user1034749 – Iker 2014-10-09 03:47:30

回答

2

在理論上得到匹配,例如 「<」 之間和 「>」 你應該寫:

(modify-syntax-entry ?< "(>") 
(modify-syntax-entry ?> ")<") 

但這並不適用於所有的Unicode符號工作, 看到http://projects.haskell.org/pipermail/haskellmode-emacs/2011-July/000107.html

+0

有沒有人針對Unicode語法表支持不足的問題提出Emacs錯誤?如果是這樣,請在這裏提及bug#(帶鏈接)。如果沒有,*請提交一個bug *(你可以指向上面鏈接的主題):'M-x report-emacs-bug'。 – Drew 2014-10-09 02:45:39

+0

**這應該是正確答案**,海事組織 - 正確的做法。你是否真的用OP的角色試過這個? (也許它適用於這種情況。) – Drew 2014-10-09 02:46:28

+0

它確實有效!我修改了'(修改語法條目?「(?」) (修改語法條目?? 「) ' – Iker 2014-10-09 03:40:53

1

這裏是第一個我在上面評論中提到的想法草案 - 它考慮用戶是在text-mode

(defun my-custom-keywords() 

    (font-lock-add-keywords nil (list 

    (list "\\(¡\\)\\(\\(.\\|\n\\)+?\\)\\(!\\)" 
     '(1 font-lock-keyword-face t) 
     '(2 'default t) 
     '(4 font-lock-keyword-face t)) 

    (list "\\(¿\\)\\(\\(.\\|\n\\)+?\\)\\([?]\\)" 
     '(1 font-lock-keyword-face t) 
     '(2 'default t) 
     '(4 font-lock-keyword-face t)) 

    (list "\\(¡\\|!\\|¿\\|[?]\\)" 
     '(1 font-lock-warning-face)) ))) 

(add-hook 'text-mode-hook 'my-custom-keywords) 
+0

這實現了一個非常好的結果,我從現在開始明確地實現。但它缺乏我已經有的並且期望從括號中得到的行爲。 – Iker 2014-10-09 03:50:34