Как переопределить FrontEndEventActions?

Добрый день,

Этот вопрос возникает из вопроса об отмене оценки полной последовательности входных данных.

Я думаю, что возможно достичь желаемого поведения путем переопределения FrontEndEventActions для двух событий: "EvaluateCells" (или нажав Shift+Enter) и для нажатия Alt+., Это должно быть что-то вроде:

SetOptions[$FrontEndSession, 
 FrontEndEventActions -> {"EvaluateCells" :> Last$PreRead, 
   {{"Alt", "."} :> AbortAllNextInputs}}]

или же

SetOptions[$FrontEndSession, 
 FrontEndEventActions -> {{{"ShiftKey", "ReturnKeyDown"} :> Last$PreRead}
   {{"Alt", "."} :> AbortAllNextInputs}}]

куда AbortAllNextInputs а также Last$PreRead определяются следующим образом:

AbortAllNextInputs := AbortProtect[
   $new$PreRead = True;
   last$PreRead = ToString[Definition[$PreRead], InputForm];
   ClearAll[$PreRead];
   $PreRead := # &] /; ! TrueQ[$new$PreRead]
Last$PreRead :=
 $PreRead := AbortProtect[
    $new$PreRead = False;
    ClearAll[$PreRead];
    If[last$PreRead === "Null", #, 
     ToExpression[last$PreRead]; $PreRead@#]
    ] &

Но я не могу получить FrontEndEventActions за работой. Может кто-нибудь мне помочь?

1 ответ

Я считаю, что вам нужно изменить KeyEventTranslations.tr, как указано здесь и здесь.

Другие вопросы по тегам