Исключить несопоставленные деревья верхнего уровня при выполнении поиска по тегам в Emacs Org Mode - PullRequest
4 голосов
/ 30 сентября 2011

В течение последних полутора лет я поддерживал монолитный буфер в режиме Org для своих технических заметок с моим нынешним работодателем.Несмотря на то, что он содержит в основном указатели на другие документы, этот файл стал достаточно большим по человеческим стандартам (48 290 строк текста), оставаясь при этом обычным для поиска и редактирования программными средствами (читай: поиск по тегам grep и Org Mode).

Одна вещь беспокоит меня, хотя.Когда я выполняю поиск по тегу с использованием режима Org 6.33x , представление разреженного дерева Org сохраняет сложенное представление несопоставленных деревьев в буфере (то есть содержимое, которому предшествует одна звездочка, *).Это обычно полезно для небольших буферов или для тех, которые лучше организованы в одно дерево с несколькими ветвями.Однако это не очень хорошо работает с документацией, где каждое новое дерево генерируется в хронологическом порядке, по одному на каждый день, как я делал.

.

Прежде чем продолжить, я 'Отметим, что мой обходной путь присущ только что заданному мною, как и очевидные изменения в моих привычках документации с этим буфером.Однако остаются следующие вопросы:

1) Почему в режиме Org таким способом деревья организовываются при выполнении разреженного поиска по тегам?Технические детали очевидны, UX решает меньше.

2) Если бы я хотел исправить эту проблему с помощью скрипта, написанного на Emacs Lisp, какие хуки и команды я должен изучить более подробно, чтобы реструктурироватьпросмотр документа?Запись переопределений для стандартных команд (например, org-match-sparse-tree) уже самоочевидна.

.

Заранее спасибо.

1 Ответ

0 голосов
/ 20 ноября 2013

Как вы уже заметили, проблема затрагивает только заголовки верхнего уровня. Хорошо, что в режиме org вы можете легко удалять все заголовки с помощью простых нажатий клавиш. Таким образом, вы можете избежать проблемы. Кроме того, после очистки можно выполнить несколько простых нажатий клавиш.

Пошаговые инструкции:

  • Отметить полный буфер
  • Звоните М-вправо (для outline-demote)
  • Ввод * root\n в начале файла
  • Теперь создайте свое поддерево и делайте с ним все, что хотите.
  • По завершении вы можете удалить * root\n в начале файла и снова повысить заголовки с помощью M-left

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

...