我不知道如何在另一個宏內部調用一個宏來避免內部宏的鈴聲停止,因爲這會停止外部宏。特別是,我必須進行兩次搜索,並且我已經定義了一個宏,另一個必須搜索一些文件夾並在每個文件夾中調用內部宏,但外部宏在內部鈴聲停止後無法繼續宏。在Emacs宏中調用宏
任何解決方案?
謝謝!
我不知道如何在另一個宏內部調用一個宏來避免內部宏的鈴聲停止,因爲這會停止外部宏。特別是,我必須進行兩次搜索,並且我已經定義了一個宏,另一個必須搜索一些文件夾並在每個文件夾中調用內部宏,但外部宏在內部鈴聲停止後無法繼續宏。在Emacs宏中調用宏
任何解決方案?
謝謝!
可能有辦法通過修改或研究isearch的行爲來做到這一點,但最好的辦法是在Lisp中編寫內部循環,並將外部循環作爲宏運行(或者將其寫入Lisp中) 。宏觀系統非常棒,但功耗有限,聽起來像你正在嘗試做比它能夠處理(更容易)更強大的功能。
根據你在做什麼,你也可以在正則表達式替換的替換字符串中使用Lisp表達式。從GNU Emacs 22開始,您可以使用替換字符串中的「\,」來轉義Lisp表達式。我相信有一種方法可以實現你所要求的(畢竟它是Emacs),但它可能比它的價值更麻煩。
我終於找到了一個解決方案:
我有一個宏「A1」調用宏「政變」,直到發現錯誤(與銅0)
(fset 'a1
[escape ?< ?\C-u ?0 escape ?x ?e ?t ?a ?t return ])
宏觀政變:
(fset 'etat
[?\C-s ?I ?n ?i ?t ?i ?a ?l ? ?S ?t ?a ?t ?e C-right C-left ?\C- ?\C-a ?\C-w ?< ?e ?t ?a ?t ?> return ?\C-s ?(left backspace ?\C-k ?\C-a ?\C-s ?I ?n ?i ?t ?i ?a ?l ? ?S ?t ?a ?t ?e ?\C-a return up ?< ?/ ?e ?t ?a ?t ?> ?\C-a down])
請從您的答案中刪除問題部分。問題也應該被問到。問題,而不是這裏的答案。 – ThiefMaster 2012-07-11 09:21:42