Оценить текущую ячейку, не покидая и не теряя в ней позиции в Mathematica

Я экспериментирую с дизайном логотипов в системе Mathematica (8 или выше), используя интерфейс записной книжки, и я хочу ОЧЕНЬ сильно изменить формулу генерации. Проблема в том, что я знаю только SHIFT + ENTER, что заставляет меня выпрыгивать за пределы моей текущей ячейки и терять свою позицию.

Есть ли способ оценить текущую ячейку, не покидая ее и не теряя своего положения в ней? Итак: оцените ячейку и приземлитесь обратно внутри той же ячейки в точную позицию, в которой я нажал SHIFT + ENTER на .

То, что я когда-то использовал, было примерно таким:

a = Exp[1.994 \[Pi]/(3 I)];

b = Nest[{#, a #, a\[Conjugate] #, #} &, 1, 5];

{Re[#], Im[#]} & /@ 
   Accumulate[
    Flatten[{0, a b, a\[Conjugate] b, -b}]] // {\[Rho]\[Chi], # // 
     Line} & // Graphics

NotebookFind[EvaluationNotebook[], "E" <> "xp", Previous];

но я надеюсь, что есть еще одна комбинация клавиш или что-то. что я не знаю.

Правка:

a = Exp[(*1*)1.994 \[Pi]/(3 I)];

b = Nest[{#, a #, a\[Conjugate] #, #} &, (*2*)1, (*3*)5];

{Re[#], Im[#]} & /@ 
   Accumulate[
    Flatten[{0, a b, a\[Conjugate] b, -b}]] // {\[Rho]\[Chi], # // 
     Line} & // Graphics

Do[NotebookFind[EvaluationNotebook[], "(*1*)", Previous], {2}];

- небольшое улучшение моего решения, частично предложенное Крисом Денгеном.

Edit 2:

NotebookFind[EvaluationNotebook[], "(*1*)", EvaluationCell]

Это решает:

  • они работают только с ячейками, которые производят одну или известное количество выходных ячеек.

EvaluationCell скудно документирован, так что его трудно найти на самом деле, я только что наткнулся на него. При использовании EvaluationCell поиск начинается сверху (исключая конструкцию Do two), поскольку мы не находимся из выходной ячейки дальше по экрану.

Что еще предстоит решить:

  • необходимо вручную вести учет ячеек (учет на уровне ячеек), чтобы приземлиться в местах, представляющих интерес
  • , используя основанные на комментариях маркеры посадки, загромождающие ячейки ввода

Примечание Этот вопрос касается того, чтобы не потерять текущую позицию при нажатии SHIFT + ENTER внутри ячейки записной книжки Mathematica. Это не о содержании или манипулировании. Извините за то, что не уточнил это вначале.

Временное примечание

Теперь пытаемся сделать следующее:

  1. использовать обработчики событий для определения альтернативной комбинации клавиш оценки
  2. при срабатывании, найти способ сохранить точное положение клавиатуры в текущей ячейке ввода
  3. оценить текущая ячейка ввода
  4. восстанавливает позицию в текущей ячейке ввода

Я внутренне надеюсь, что какая-то функция может просто позаботиться о сохранении / восстановлении случайно, будучи оптимистичной. Однако, если быть реалистом, я сначала надеюсь, что смогу даже найти способ добраться до текущей позиции клавиатуры. Я свяжусь с вами здесь, если что-то материализуется в результате моей попытки.

10
задан Cetin Sert 12 December 2011 в 20:41
поделиться