Emacs Org-Mode: как сложить блок, не переходя в заголовок блока? - PullRequest
4 голосов
/ 22 декабря 2011

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

Ответы [ 3 ]

4 голосов
/ 22 декабря 2011

Создайте привязку клавиш, которая выполняет следующую функцию:

(defun zin/org-cycle-current-headline ()
  (interactive)
  (outline-previous-heading)
  (org-cycle))

Это вернется к предыдущему заголовку и затем переключится. Поскольку заголовок уже открыт, он закроет его. Он также помещает точку в начало заголовка.

Если вы заключите две команды в (save-excursion ), это сохранит точку, однако это может привести к вводу информации в многоточие без ее понимания. Также вы можете изменить команду для вызова неинтерактивной формы:

(defun zin/org-cycle-current-headline ()
  (interactive)
  (org-cycle-internal-local))

Это эквивалентно приведенному выше с (save-excursion ).

3 голосов
/ 22 декабря 2011

C-c C-p приведет вас к заголовку, TAB сбросит. Вы можете создать для этого макрос клавиатуры или эквивалентный ELISP:

(defun up-n-fold ()
  (interactive)
   (progn
     (outline-previous-visible-heading 1)
     (org-cycle)))

Редактировать: исправлено C-c p для C-c C-p, как отмечено многими ниже. Спасибо!

0 голосов
/ 22 декабря 2011

Я не уверен, существует ли такая функция, но ее нетрудно создать.Просто замените следующие нажатия клавиш функциями: CMr ^ * Введите вкладка .

...