Развернуть поддерево в режиме org с точкой после многоточия?

10

Мне нравится режим org, но одна из вещей, которые меня всегда раздражали, заключается в том, что, если точка находится после многоточия свернутого поддерева, нажатие TABне расширяет его. Например, если точка здесь (представлена |):

* Grandiose Plans
** Save the world...|
** Colonize Mars...

... и я нажимаю TAB, ничего не происходит. Вместо этого я должен поставить точку здесь:

* Grandiose Plans
** Save the world|...
** Colonize Mars...

... и тогда я могу расширить поддерево.

Обратите внимание, что использование C-eдля перемещения курсора в конец заголовка не исправляет это поведение, оно просто работает вокруг него. Например, посмотрите на это дерево:

* Long level one heading foo bar baz fizz buzz|...
** Shorter level two heading...

Дело в конце первого заголовка. Если я нажму стрелку вниз или C-nдля перемещения вниз по линии, точка будет здесь:

* Long level one heading foo bar baz fizz buzz...
** Shorter level two heading...|

... и нажатие TABне расширит заголовок второго уровня.

Идея состоит в том, чтобы исправить это TABтак, чтобы оно все равно расширило заголовок. Таким образом, вместо того, чтобы делать C-n C-e TAB, можно просто сделать C-n TAB.

Я не смог ничего узнать об исправлении этого поведения. Я что-то упустил или какой-то код должен быть написан? Спасибо.

blujay
источник

Ответы:

4

Попробуй это:

(setq org-special-ctrl-a/e t)

Затем C-eперемещается до эллипса, а не после.

scbagley
источник
1
Спасибо, но у меня уже есть этот набор, и он не решает проблему. Например, если заголовок первого уровня имеет длину 80 символов, а заголовок второго уровня - 40 символов, а точка находится в конце заголовка первого уровня, и я нажимаю стрелку вниз или C-nточка переместится в заголовок второго уровня за многоточием.
Блюджей
2
@blujay Установка этой опции заставит ваши примеры работать так, как мне нужно. У меня есть emacs 24.5.1, org 8.3.1, на OS X 10.10.5, если это поможет. Запустив emacs -Qи требуя org, я получаю версию 8.2.10, которая воспроизводит ваши примеры.
scbagley
Спасибо! Я все еще нахожусь на Org 8.2.4, версия упакована в моем дистрибутиве. Я думаю, что я должен идти вперед и обновить вручную. Я не смог найти в журнале изменений ничего, что могло бы вызвать изменение этого поведения в 8.3, но я верю вашему слову! :) Я сообщу после обновления.
Блюджей
3

орг-выявить

Когда вы находитесь справа от эллипсов, вы можете (в зависимости от того, что скрывают эллипсы) находиться внизу в дереве иерархии, а не в соответствующем заголовке. В этой ситуации вы могли бы напечатать, C-u C-c C-rи заголовок будет показан (но в итоге вы получите курсор в другом месте). Или вы должны сначала изменить позицию курсора, как вы показали в своем вопросе (я бы предпочел, C-aхотя).

Dieter.Wilhelm
источник
Под «за двоеточием» вы имели в виду «после многоточия», верно? Я знаю, что вы это имеете в виду, но использование слова «позади» заставляет меня истолковывать как «перед многоточием» или «слева от многоточия».
Каушал Моди
@kaushalmodi спасибо, что заметили эту глупость, было довольно поздно, когда я написал это и обновил сейчас.
Дитер. Вильгельм,
1
Спасибо, но идея состоит в том, чтобы избежать необходимости перемещать точку или использовать другую последовательность клавиш. TABс точкой после многоточия должно идти вперед и расширять поддерево.
Блюджей
2

Это можно решить, добавив хук, к org-tab-first-hookкоторому добавляется org-end-of-line. Каждый раз TAB, когда он используется, он переходит к последнему видимому символу org-line, но перед многоточием, а затем открывает / закрывает контейнер как обычно.

(add-hook 'org-tab-first-hook 'org-end-of-line)
Дэвид
источник