在Emacs中,我正在處理一個文本文檔,將unicode明文轉換爲LaTeX。如何定義爲特定字符串使用`replace-string`的Emacs命令
有,我想運行正則表達式的幾集,例如
M-x replace-string ± RET \pm RET
M-x replace-string µ RET \textmu
如何保存這些正則表達式,這樣我可以重複運行呢?
感謝
在Emacs中,我正在處理一個文本文檔,將unicode明文轉換爲LaTeX。如何定義爲特定字符串使用`replace-string`的Emacs命令
有,我想運行正則表達式的幾集,例如
M-x replace-string ± RET \pm RET
M-x replace-string µ RET \textmu
如何保存這些正則表達式,這樣我可以重複運行呢?
感謝
我一般喜歡寫自定義命令,這裏是一個爲你的第一個替換:
(defun replace-plus-minus()
(interactive)
(replace-string "±" "\\pm" nil (point-min) (point-max)))
基本上,你會怎麼做:
C-x (M-x replace-string ± RET \pm RET C-x)
然後你就可以將其命名,並將其保存到你的.emacs:
M-x name-last-kbd-macro
M-x insert-kbd-macro
謝謝。我很欣賞自定義命令howto。我用宏錄製的麻煩是,我不知道如何使用我的鍵盤輸入±字符。我只是從其他地方粘貼它。而且,從其他地方粘貼它會殺死宏的錄製,或者至少這樣做是因爲它沒有做到我想要的。 – stevejb 2011-04-30 20:29:48
只要Emacs接收*粘貼的*字符,而不是「粘貼這個」命令字符(或鼠標點擊),粘貼就可以工作。你如何做到這一點取決於你的環境(但在shell中運行'emacs -nw'可能會更容易)。 – phils 2011-05-01 22:13:44
或者更容易,只需輸入任何佔位符字符,而不是錄製宏時,然後鍵入'C-x C-k RET RET'來編輯宏,並將佔位符更改爲正確的字符。在編輯器中,您沒有錄製的限制,所以您可以愉快地插入或粘貼東西。 – phils 2011-05-01 22:18:32
謝謝。我確實嘗試了一個宏,但看到我的意見,爲什麼這不起作用的其他答案。 – stevejb 2011-04-30 20:31:00
您可能需要確保該文件支持unicode:http://www.emacswiki.org/emacs/UnicodeEncodingFind。然後找到正確的emacs組合鍵來獲得該角色(或者只是粘貼在應該工作中)。你也可以用一個臨時字符運行這個宏,用上面的方法將它保存到你的bash中,然後修改這個宏(一旦你保存,它就在你的.emacs文件的底部)。 – 2011-04-30 23:13:45
我不知道這裏的完整故事,但你有沒有考慮切換到支持unicode的TeX引擎?我發現XeLaTeX是一個很好的選擇。 – zdav 2011-04-30 20:06:49
我一直在使用xelatex,他們仍然沒有出現。例如,我試圖渲染 ±是$ \ pm $ 並且第一個沒有出現 – stevejb 2011-04-30 20:51:17
您使用的是什麼字體?可能只有你的數學字體有±字形。我用minion pro試過它,它工作正常,輸入爲unicode。 – zdav 2011-05-01 18:28:42