Клавиатурная навигация иерархии группировки ячеек? - PullRequest
2 голосов
/ 26 сентября 2011

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

Клавиши со стрелками (или Ctl-F, B, P, N a la emacs) будут перемещать курсор между отображаемыми ячейками и Ctl-. выберет вмещающие группы, по существу продвигаясь вверх по иерархии групп, как я хочу. И Cmd- 'откроет / закроет группу. Однако я не нашел способа иначе перемещаться по группировкам - в первую очередь, скажем, перемещая выделение вперед и назад на том же уровне, но, возможно, также вниз на уровень. Я пропустил ярлык или есть лучший способ навигации по иерархии?

Конкретная проблема, которую я имею в виду, заключается в следующем:

Предположим, у меня есть коллекция ячеек, сгруппированных в разделы A, B и C с подразделами в каждом A1, A2, B1, B2, с ячейками A1a, A1b и т. Д. Если я нахожусь в ячейке A1a, я могу использовать ctl -. выбрать последовательно более высокие группы - например, от А1а до А1. Теперь я выбрал весь раздел А. Я хотел бы перейти к разделу C. Если я использую клавиши со стрелками, я перейду к следующей отображаемой ячейке на любом уровне после выбранного A (чередуя с точками вставки между этими ячейками). Но то, что я хотел бы сделать, - это перейти на том же уровне (Раздел) - к разделу В, затем к разделу С. И затем, возможно, опустить выбор до уровня подраздела - С1 - и перейти к С3.

Это не имеет большого значения, но я расположил свои более длинные блокноты иерархически, чтобы отразить логическую организацию в моем сознании, и было бы очень удобно ориентироваться в блокноте, как будто я думаю о проблеме.

Ответы [ 2 ]

1 голос
/ 03 ноября 2011

Мне не совсем ясно, что именно вы хотите, но это может вам помочь.

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

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

Если вы хотите переместить выделенную ячейку в другое место:

  1. выберите скобку ячейки
  2. введите ctrl / cmd -X, чтобы вырезать ячейку и поместить ее в буфер обмена
  3. перемещаться со стрелками или иным образом в другое место на nb (между ячейками)
  4. введите ctrl / cmd -V, чтобы вставить вырезанную ячейку в новое место

Таким образом, вы можете быстро изменить иерархию ячеек и порядок

0 голосов
/ 13 ноября 2011

Вы можете добавить хотя бы часть нужной вам функции путем редактирования MenuSetup.tr или KeyEventTranslations.tr. Это важные системные файлы, поэтому будьте осторожны. Начните с копирования файла, который вы собираетесь редактировать, из $InstallationDirectory в $UserBaseDirectory в том же дереве. Это должно выглядеть примерно так:

\ AppData \ Roaming \ Mathematica \ SystemFiles \ FrontEnd \ TextResources \ Windows \ MenuSetup.tr

Теперь, редактируя файл в новом месте, вы можете добавлять пункты меню и ключевые команды. В разделе Menu["&Cell",, соблюдая скобки и запятые, я добавляю:

MenuItem["Next Cell",
  FrontEndExecute@{FrontEnd`SelectionMove[FrontEnd`SelectedNotebook[], Next, CellGroup]},
  MenuKey[".", Modifiers->{"Control"}]            
]

Это добавляет новый пункт меню в ячейку и новую команду клавиатуры для перехода к следующей ячейке группы: Ctrl + . . Это должно позволить вам перейти от одной выделенной группы ячеек, такой как раздел, к следующей группе на том же уровне. Это самая простая команда для реализации. Я могу вернуться к этому, чтобы попытаться реализовать некоторые другие команды, или вы можете поэкспериментировать с аргументами SelectionMove, чтобы посмотреть, что можно сделать.

...