Org-Modus Standardmäßig Alt-Enter für Aufzählungszeichen


9

Ich möchte, dass der Organisationsmodus unter Aufzählungszeichen standardmäßig die Alt-Eingabe verwendet, sodass ich für Aufzählungszeichen einfach die Eingabetaste drücken kann, um ein neues Aufzählungszeichen zu erstellen.

Also zum Beispiel:

  • Banane
  • Apfel
  • Kiwi [MAUS CURSOR HIER]

Wenn ich die Eingabetaste drücke, möchte ich das folgende Verhalten (das passiert, wenn ich die M-Eingabetaste drücke):

  • Banane
  • Apfel
  • Kiwi
  • [MAUS CURSOR HIER]

Anstatt:

  • Banane
  • Apfel
  • Kiwi

[MAUS CURSOR HIER]

Dies ist die Standardeinstellung für die meisten anderen Anwendungen, aber warum nicht für den Organisationsmodus?

Dies würde meinen Workflow erheblich verbessern. Aber ich weiß nicht wie! Danke im Voraus.


1
Willkommen bei Emacs.SE! Es wäre hilfreich, wenn Sie erklären könnten, was Sie bisher versucht haben (und welche Referenzen Sie nachgeschlagen haben, die Sie stecken gelassen haben). Schauen Sie sich zunächst die folgende Beschreibung der Emacs-Tastenkombinationen an , um mit den Konzepten zu beginnen.
Dan

1
Ich denke, das erstere ist das Standardverhalten im Organisationsmodus. Können Sie Ihre Emacs nur mit geladenem Organisationsmodus starten und es erneut versuchen?
Leu_Grady

Wie würden Sie eine Liste beenden?
SabreWolfy

1
Nicht die Lösung, aber meiner Erfahrung nach M-RETist es viel vorteilhafter , sich daran zu gewöhnen. M-RETwürde das Richtige tun, wenn Punkt in (i) einer Liste (ii) einer Überschrift (iii) einer Org-Tabellenzelle (iv) steht ... Wenn Sie anfangen zu mögen M-RET, entdecken Sie C-u M-RET, und Sie mögen es noch mehr! :)
Kaushal Modi

Antworten:


3

Sie können diese Version ausprobieren. Es werden Elemente und Überschriften mit regulärer Rückgabe hinzugefügt, und mit doppelter Rückgabe bei einem leeren Eintrag wird die Liste beendet. Außerdem wird die Rückgabe in einer Tabelle geändert, um Zeilen hinzuzufügen oder eine Tabelle in einer leeren Zeile zu beenden. Es ist leicht getestet;)

(defun scimax/org-return ()
  "Add new list or headline "
  (interactive)
  (cond
   ((org-in-item-p)
    (if (org-element-property :contents-begin (org-element-context))
    (org-insert-heading)
      (beginning-of-line)
      (kill-line)
      (org-return)))
   ((org-at-heading-p)
    (if (not (string= "" (org-element-property :title (org-element-context))))
    (org-insert-heading)
      (beginning-of-line)
      (kill-line)
      (org-return)))
   ((org-at-table-p)
    (if (-any?
     (lambda (x) (not (string= "" x)))
     (nth
      (- (org-table-current-dline) 1)
      (org-table-to-lisp)))
    (org-return)
      ;; empty row
      (beginning-of-line)
      (kill-line)
      (org-return)))
   (t
    (org-return))))

(define-key org-mode-map (kbd "RET")
  'scimax/org-return)

Weiterentwickelte Antwort des gleichen Autors kitchingroup.cheme.cmu.edu/blog/2017/04/09/…
joelostblom


0

Sie können es so machen:

 (defun my/org-list-new-item ()
   (interactive)
   (if (org-in-item-p) (org-insert-heading) (org-return)))
 (define-key org-mode-map (kbd "RET") 'my/org-list-new-item)

Aber ich empfehle wirklich nicht, es so zu verwenden.


Und es hat kein msword-ähnliches Verhalten (doppelte Eingabe, um ein leeres Listenelement zu löschen und zum "normalen" Text zu wechseln). Natürlich könnte man einfach mehr Elisp hinzufügen.
Maxim Kim
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.